Gå til innhold

Sammenlikne to frekvenser - firkantpulser


Anbefalte innlegg

Heisann, jeg vet dette kan bli litt vanskelig, men jeg spør nå likevel.

 

Er det mulig å lage en relativ enkel krets som sammenlikner to frekvenser? Dvs at man har to input og en output. At hvis frekvens1 er høyere enn frekvens2, så går utgangen logisk høy.

 

Jeg håper å slippe å måtte bruke komponenter som faselåst sløyfe, mikrokontroller. Helst begrense komponentene til transistorer, enkle digitale kretser som JK-vipper og logiske porter, opamper.

 

Bruksområdet som jeg har tenkt på er å styre en motor med optisk giver. Jeg vet at man kan bruke en frekvens til spennings-omformer og videre koble det opp mot en differanseforsterker som vil gjøre det samme, men jeg er ute etter å se om dette lar seg gjennomføre da det kan ha flere bruksområder.

Jeg antar også at en motorstyring som benytter en ren digital frekvens-sammenligner vil ha vesentlig raskere responstid enn en en tilsvarende analog som har en kondensator som må laddes opp. Og så blir den antakeligvis lettere å styre (kan bruke innsignal som frekvens istedet for analog spenning -les potensiometer-).

 

Har tegnet opp et lite bilde for oversiktens skyld.

post-87910-1180528291_thumb.png

Lenke til kommentar
Videoannonse
Annonse

Enkleste jeg ser for meg sånn med en gang må være å kjøre to tellere og sammenligne verdiene. Trigge/reset-kretsen vil se litt forskjellig ut avhengig av om det er fast dutycycle (slik du har tegnet opp) eller fast pulsbredde (pulsen flytter bare posisjon avhengig av frekvensen).

Lenke til kommentar

Så langt jeg kan skjønne har du funnet løsningen selv. Frekvens til spenning konvertering, og så benytte en opamp eller komparator for å forsterke differensialen her. Sjekket hos elfa om de hadde komparatorkretser der som var feridig for å sammenligne frekvenser, men det hadde de ikke.

Lenke til kommentar
Så langt jeg kan skjønne har du funnet løsningen selv. Frekvens til spenning konvertering, og så benytte en opamp eller komparator for å forsterke differensialen her.......

8743431[/snapback]

Jeg nevnte vel det med motorstyring i første posten. Problemet med å bruke en glatte-kondensator pluss motstander (som sansynligvis er løsninga) er som NorthWave sier, det tar for lang tid.

Og så glemte jeg å nevne i første post at det er ønskelig å kunne justere turtallet ned til kun en håndfull omdreininger i sekundet, og da ser jeg ikke for meg at denne løsninga blir brukbar. Motorturtallet vil antakelig ikke stabilisere seg. Så derfor ønsker jeg å bruke en styre-krets som inneholder kun digitale komponenter (bortsett fra siste ledd da).

Lenke til kommentar
Jeg nevnte vel det med motorstyring i første posten. Problemet med å bruke en glatte-kondensator pluss motstander (som sansynligvis er løsninga) er som NorthWave sier, det tar for lang tid.

Og så glemte jeg å nevne i første post at det er ønskelig å kunne justere turtallet ned til kun en håndfull omdreininger i sekundet, og da ser jeg ikke for meg at denne løsninga blir brukbar. Motorturtallet vil antakelig ikke stabilisere seg. Så derfor ønsker jeg å bruke en styre-krets som inneholder kun digitale komponenter (bortsett fra siste ledd da).

8744429[/snapback]

Du kan ikke benytte glattekondensator og motstander for å endre frekvens til spenning. Du vil da kun få en indikasjon på pulsbreddeforholdet, (eks: 30% 0v 70% 5V vil gi 3,5v) uansett frekvens. Du må benytte kretser som er beregnet på å konvertere frekvens til spenning. De har det hos elfa. Skjønte ikke helt hva NorthWave mente, men hvis han også mente forstår jeg at dere mente at det ville ta mange pulser å oppnå ett stabilt måleresultat.

 

Du finner dem her:

 

• Linjære kretser

•• V/F, F/V-omvandlere

Endret av Kong_Tom
Lenke til kommentar

Nå har jeg gått rundt og grublet på dette en stund. Det jeg tror, er at man kan klare å styre en motor på den måten jeg først tenkte, men metoden blir en helt annen.

 

Så følgende idé har jeg da klekt ut. Om den da vil kunne fungere i praksis vet jeg ikke.

72728.jpeg

 

1 - Binær teller. Velger å bruke en som kan telle til FF. Kluet er at klokkepulsen som denne teller opp med har en frekvens som er mye høyere (f.ex 100 ganger) enn frekvensen som takkogeneratoren leverer. Så for hver gang motoren har dreid noen få grader enten den ene eller den andre veien, så vil telleren ha talt opp til et binært tall, eller mao tatt tiden på en liten del av motorens omdreining.

 

2 - En and-gate med samme antallet innganger som antall bit som brukes for datatellinga. 8 burde være et brukbart valg i denne sammenhengen. Poenget med denne er at hvis motoren går veldig sakte rundt eller eventuelt står stille, så vil telleren rekke å telle helt opp til FF.

 

3 - Data-lås eller helst en serie med 8 ordentlige data-vipper. Denne aktiveres enten ved at telleren klarer å telle helt til FF eller at takkogeneratorens nivå skifter til logisk 1. SÅ på utgangen vil man alltid ha den binære "tiden" takkogeneratoren brukte på én periode. Tiden i denne sammenghengen er altså hvor langt telleren rakk å telle før takkogeneratoren var kommet i mål.

 

4 - Adderer. Eller rettere sagt, en logisk krets som trekker fra to tall (husker ikke hva den heter). På utgangen (til DA-omformer) så vil det stå et binært tall. Dette vil da indirekte representere forskjellen i ønsket motorhastighet og reéll hastighet utifra målingen av takkogeneratoren.

 

 

Men så begynte jeg å tvile på at dette vile fungere. Hadde liksom en misstanke om at motoren enten ville stå nermest stille eller at den raste opp til fult turtall. Eller det jeg kom fram til - nemlig at hvis signalet fra takkogeneratoren var nogenlunde stabilt, så ville binærtallet ut fra differanse-kretsen etterhvert falle mot null. Så det er mulig at motoren har begynt å oscillere, altså svinge kraftig i turtall. Så jeg utvidet blokkdiagrammet en smule:

72726.jpeg

 

Her har jeg lagt til to funksjoner til. En datalås og en binær addisjonskrets. Meningen med disse to er at hvis:

- Motorens turtall er veldig lavt i forhold til ønsket verdi, så vil den begynne å akselerere veldig raskt, for å så avta i akselerasjon intill ønsket hastighet er oppnådd. Samme gjelder hvis hastigheten er veldig høy, bare motsatt.

- Motorens turtall er kun litt forskjellig fra ønsket verdi, så akselererer den bare bittelitt.

- Motorens turtall er likt ønsket turtall så vil spenninga til motoren holdes konstant.

 

 

Det jeg håper å o ppnå er at kretsen i sin helhet skal være en vanlig analog motorkontroller helt overlegen. Noen positive egenskaper som jeg tenker den burde ha:

1 - Enkel å styre. Man kan enten styre turtallet vha klokkegeneratoren eller ved å endre binær-tallet til referansen.

2 - Respondere raskt. Siden den måler lengden til hver enkelte periode som takkogeneratoren produserer, så burde motorens turtall kunne justeres på svært kort tid. Husk at en takkogenerator kan levere alt fra 10 til over 40 pulser for hver gang motoren har dreid en gang rundt. Og hvis motoren kommer raskt opp i fart, så burde det være mulig å få ønsket fart før motoren har dreid en halv gang rundt.

 

 

Dette var min idé til eget spørsmål. Hvis noen har synspungter, andre forslag eller eventuelt ser en åpenbar logisk brist her som gjør at min lille krets ikke vil kunne fungere, så er jeg glad for å høre.

Endret av geir__hk
Lenke til kommentar

Du beskriver en PLL,

Det er definitivt mulig å gjøre den ustabil, du har feedback og med nok gain vil det selvsvinge på frekvensen der forsinkelsen rundt sløyfa er 360grader og gain er >1. (fasemargin)

 

Om du skal gjøre dette digitalt vil jeg anbefale å bruke en liten controller, de har gjerne innebygde tellere og kan lett gjøre latcing og beregning på differanse signalene dine. De mer avanserte har PWM utganger spesielt beregnet for kontroll av AC motorer direkte.

Om du gjør det analogt har du fått en link av Pingla over her som bør være et bra startpunkt.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...