AGC-fråga

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 8413
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

AGC-fråga

Inlägg av AndersG »

Gäller min Navtex-mottagare
20171020_220757_resized.jpg
Ingångssteget är ju en FET-kaskod och där behöver jag en negativ spänning för att strypa. Det har jag nu inte så jag tar en 200kHz jag ändå har (klockan till anti-aliasingfiltret) och genererar en negativ spänning. Sedan skapar jag en PWM-signal som är omvänt proportionell mot signalen. Dvs då signalen är noll är PWMen max, eller 5V och sedan avtar den med signalstyrkan:

Kod: Markera allt

                agc = (((hi_ave^0x8000)-32768)>>8) + (((lo_ave^0x8000)-32768)>>8);
                agc = (FCY/200000 + 1) - agc;
                if(agc<0) agc=0;
                OC2RS = agc;
Dvs jag summerar medelnivåerna för MARK och SPACE för att mäta nivån.

Är detta en bra eller dålig metod? Om dålig, vad skulle vara bättre?
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
Icecap
Inlägg: 26106
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: AGC-fråga

Inlägg av Icecap »

Om MARK & SPACE är fasta signaler som anger signalstyrkan är det nog en fungerande metod.

Nu vet jag inte hur snabbt AGC'n ska reglera men jag hade nog satsat på en PI-reglering, den är ju enkel att åstadkomma med an µC inblandad. Med en PI-reglering kan du få näst intill stabil nivå på signalerna.
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 8413
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

Re: AGC-fråga

Inlägg av AndersG »

Ja. Mark och Space är signaler ut från filtren. Antingen eller. Tidskonstanten bör vara ganska lång. Det är inte livsviktgt att nivån hålls jätteexakt dock. Vill bara kunna dra ned om innivån är jättestark.

Har du exempel på PI-kod så ser jag gärna på den, dock kan det ibland vara enklare/biligare/strömsnålare att göra analogt.
Användarvisningsbild
Icecap
Inlägg: 26106
Blev medlem: 10 januari 2005, 14:52:15
Ort: Aabenraa, Danmark

Re: AGC-fråga

Inlägg av Icecap »

Koden har jag inte exempel på, jag använder den förvisso i ett antal projekt men ingen kod som är "exemplarisk".

Funktionen är dock enkel:
Skapa variablerna "Diff", "Integrating" och "Sum", alla lik 0 till en början.

Med 'Mål' menas det önskade värde på slutsignalen.

Diff = (Mål - Signalstyrka) * P-faktor.
Intergrating += (Mål - Signalstyrka) * I-Faktor.
Sum = Diff + Intergrating.

Detta upprepas med lagom hastighet. P-Faktor och I-Faktor kan som utgångspunkt vara 20% och 3%.
Man bör såklart ha en begränsning på hur långt Intergrating kan stega, aldrig under 0% och aldrig över 100%.

Det går såklart att lösa analogt också, då med en op-amp med en rimlig hög förstärkning - men där motkopplingsmotståndet har ett motstånd i serie med en kondensator.

Med rätt balansering av komponentvärden kan det fungera bra, analogt är det dock svårt att justera värden utan en massa trimpotentiometer - vilka ju blir glappa efter ett tag.
Användarvisningsbild
AndersG
EF Sponsor
Inlägg: 8413
Blev medlem: 25 februari 2008, 17:10:58
Ort: Mariehamn
Kontakt:

Re: AGC-fråga

Inlägg av AndersG »

Tack. Jag skall testa. Finns en massa att labba med ännu före jag gör kort.
Skriv svar