Luidspreker aansturing vanuit FPGA

Ik zoek wat hulp om vanuit mijn FPGA een vermogen luidspreker aan te sturen. Vroeger deed ik dit met een kleine oscillator (cmos blokgolf) maar nu wil ik dit vanuit mijn FPGA. De reden hiervoor is het perfect synchroon sturen vanuit een startsignaal. Ik heb een snelle op en neergaande beweging nodig die heel precies moet gecontroleerd worden. Daarvoor gebruik ik een luidspreker. Door de richting van de stroom te beheersen kun je exact bepalen dat de beweging eerst naar beneden toe gaat en daarna naar boven. Door de juiste vermogensturing kun je ook perfect de snelheid en versnellen bepalen en beheersen. Dit laatste is heel belangrijk om steeds dezelfde instellingen te kunnen realiseren. Voeger gebruikte ik hiervoor een gewone vermogen versterker maar deze is minder geschikt omdat ik eigenlijk puur DC wil sturen in de spoel. Ook heb ik een enable signaal die ik absoluut wil gebruiken als er geen stroom mag vloeien in de luidspreker.

De golfvorm wordt in een lookup tabel van 4096 punten opgewekt in de FPGA en via een weerstands ladderwerk omgezet naar een analoge spanning die ligt tussen 0V en 3.3V de resolutie hiervan is 8 bit omdat ik hiervoor 8 uitgangen van de FPGA gebruik.

Bij het ingeven van de golfvorm kan ik vrij specifieke vormen kiezen die gaan van zachte sinus vormen tot vertikale blokvormen. Hoe hoger de flankstijlheid hoe hoger sneller de bewegingen en versnellingen zullen zijn.

Maar ik heb minder ervaring in een eindtrap. ik ben niet zo analoog aangelegd maar zou die graag sturen met gewone standaard componenten zoals vermogen FET's. Ik moet de stroomrichting kunnen omschakelen in de luidspreker in functie van de spanning om zodoende neergaande of opgaande bewegingen te bekomen. De gebruikte frequentie voor deze toepassing ligt tussen 25Hz en 250Hz en wordt bepaald in de FPGA zonder dat de basis vorm van het signaal wijzig. ( prescaler voor de lookup teller/generator).

Omdat ik ook het vermogen moet kunnen instellen zijn 2 mogelijkheden. ofwel stuur ik het analoogsignaal minder uit door in de lookuptabel de waarden te gaan berekenen alvorens ze uitgegeven worden ofwel mag er een instelling gedaan worden van de 12V voor de luidspreker die vb kan ingesteld worden tussen 2 en 12V want hiermee is perfect het vermogen te regelen. Het gaat hier dus niet over audio geluiden maar puur over een magnetisch veld die gecontroleerd moet opgewekt worden. Een burst van het stuursignaal bevat trouwens doorgaans slecht 4 tot 8 golfjes op de ingestelde frequentie.

Een voorstelling van het princiep is hier:

http://users.skynet.be/fotoopa/fpga/hp_driver.png

Ik zou graag IRF fets of dergelijke gebruiken, zeker geen audio versterker. Ik zou ook de 8 bit FPGA digitale signalen kunnen beschikbaar stellen om direct een soort DAC op de vermogenfets toe te passen. Moeten daarbij kleinere hulpfets gebruikt worden dan is dit ook goed. Het gaat mij niet om een minimale schakeling maar wel om een betrouwbare.

Ik heb met een weerstand van 1 ohm in serie met de luidspreker (8 ohm impedantie) en direct pulsen met een 10V DC spanning reeds voldoende beweging om mijn doel te bereiken. ik weet ook dat je de DC spanning niet op een luidspreker spoel moogt laten staan maar daarvoor heb ik een enable signaal uit mijn FPGA die dat moet voorkomen.

Het midden van het signaal mag op 50 % van de analoog uitgang liggen maar als het beter past om een digitaal signaal te geven die van level veranderd tussen positief en negatief dan kan dit ook beschikbaar gesteld worden ( kan dan 1 van de 8 bits zijn die ik nu gebruik voor de DAC in de FPGA)

Wie kan mij hiermee wat helpen?

Je zoekt in principe dus een gewone H-brug die vrij snel schakeld, op school hebben we net een project afgerond van een klasse D versterker, deze maakt ook gebruik van een H-brug. De gebruikte schakelfrequentie lag bij ons op 270 KHz, ruim voldoende voor jouw project lijkt me.

Volume regeling deden wij door de spanning op de brug te veranderen.

Zoekt en gij zult vinden, vindt gij niet dan is het zoek

Klasse-D (PWM) kan een oplossing zijn. Ik weet niet in wat voor omgeving het gebeuren moet werken, maar een klasse-D versterker verspreid best wel veel HF storing.

Gezien de lage voedingsspanning is een LM4766 power opamp / audio amplifier wellicht een optie. Deze heb ik wel eerder in DC toepassingen gebruikt.

Ik zou trouwens 2 externe DACs gebruiken. 1 voor de referentiespanning en 1 voor het signaal. Dan hoef je niet met de voedingsspanning te 'rommelen' om volle resolutie te behouden.

Ik zou niet de hele klasse D versterker gebruiken maar alleen de H-brug, dan is de storing ook te verwaarlozen, ik meen gelezen te hebben dat het om iets 300 Hz max ging dus.

Zoekt en gij zult vinden, vindt gij niet dan is het zoek

Als ik het goed begrijp zal een H-brug alleen niet voldoende zijn. PWM sturing is hier niet geschikt. Door de voordurende sterke steile pulsen zitten veel te veel harmonisen in het laagfrequent signaal die voor mijn toepassing totaal ongeschikt is. Daarom heb ik het vrij zuivere analoog signaal dat ligt tussen 0 en 3.3V gemaakt. Om een idee te geven van de sampel frequentie, ik gebruikt 256 samples om 1 wave vorm te maken. Gezien ik de max frequentie vastleg op 250 Hz is de sample frequentie 250Hz*256 of 64 Khz. Bij de laagste frequentie is dit slecht 6.4Khz.

De stroom in de spoel moet wel degelijk evenredig zijn met de uitgestuurde wave vorm. bij 3.3V analoge spanning moet ongeveer 10V op de spoel komen.

De wave vorm loopt zachtjes aan omdat je onmogelijk een grote massa (die op een menbraam boven de luidspreker komt te liggen) oneindig snel in beweging kunt brengen. De juiste frequentie wordt bepaald door de resonantie van het geheel. Bij resonantie bekom je immers een grote slingerbeweging. De frequentie samen met de juiste golfvorm bepalen deze toestand.

Deze toepassing is voor mijn fotografie. Dit werkt nu al maar ik wil het stabieler bij de settings.

Als ik het goed voor heb is die H-brug enkel een schakelen tussen positief en negatief. Maar ik moet hiernaast ook nog een uitsturing bekomen die lineair is (of toch ongeveer) met mijn analoge wave vorm.

Ik heb de datasheet van die LM4766 even gedownload. Ik vermoed dat dit wel een oplossing is. Ik moet echter ook een soort volume kunnen inbouwen, hoewel zoals in mijn topic aangegeven ik dit desnoods kan doen door het berekenen van de wave output tov mijn lookup curve.

free_electron

Silicon Member

LT625 gebruiken ? van linear technologies.

hou wel rekening met het fazeverschil wat optreedt.
als je echt de uitslag wilt gaan regelen ben je best af met een stroomsturing.

das hetgeen we doen bij positionering van harddisk koppen.

als je gewoon een spanning op een spoel in ene magneetveld zet dan beweegt die spoel tot op het punt waar de velden in balans zijn.

gans dat systeem gedraagt zich als ene transformator waarbij de 'secundaire' vooral bepaald wordt door de massa die moet bewogen worden.

de wet van .. verdikke ik dacht lorenz. der is een wet die aangeeft hoe snel ( meter per seconde ) een stroomgeleidende draad in een magneetveld zich gaat verplaatsen. en daarbij is de STROOM van belang. niet de panning.

door ene current mode drive te gebruiken ben ja van al de complexe waveforms vanaf.

stel de dac in. en de spanning naar stroom convertor doet de rest. door de strom door de spoel te mten maak je dan een autonome regeling.

Professioneel ElectronenTemmer - siliconvalleygarage.com - De voltooid verleden tijd van 'halfgeleider' is 'zand' ... US 8,032,693 / US 7,714,746 / US 7,355,303 / US 7,098,557 / US 6,762,632 / EP 1804159 - Real programmers write Hex into ROM

Op 21 april 2007 18:16:22 schreef free_electron:
als je echt de uitslag wilt gaan regelen ben je best af met een stroomsturing.

Ja dat is echt wat ik nodig heb. Het gaat idd over de verplaatsing. Daarom was ik al begonnen met een opamp systeem met terugkoppeling. Door de spanning op die weerstand te meten weet je hoeveel stroom je door de spoel krijgt. Immers als de wave iets wijzigd van frequentie wordt ook de impedantie van het systeem anders. Maar ik heb wat last om tot een bruikbare schakeling te komen. Nu indien nodig ga ik een en ander uittesten maar het probleem ligt een beetjes dat ik zo weinig ervaring heb in dit analoog gedeelte en dat ik ook niet over komponenten beschik in voorraad. En zoals altijd, ik wil het goed bouwen. Prijs is niet zo heel belangrijk maar dit wil niet zeggen dat ik eerst 100 verschillende systemen wil uittesten om te zien wat geschikt is.

Het resultaat van zo een opstelling geeft deze foto's:

http://www.pbase.com/fotoopa/image/77378175/original.jpg

edit:

Is die LT625 juist? Google geeft mij precies nergens een .pdf file...

Stroomsturing en een spoel gaan niet samen (dat is inherent instabiel omdat de spanning die nodig is om op t=0 stroom X te laten lopen oneindig hoog is voor X/=0).

Als je (aan de foto te zien) pulsen wilt opwekken met een speaker, dan heeft het systeem laten resoneren geen zin. Voordat iets in resonantie komt, heb je vele periodes nodig.

Je hebt overigens helemaal geen fpga nodig. Een redelijk snelle microcontroller met een DAC is ruim voldoende.

De stroom door een spoel krijg je uit de volgende formule: I= U * t / L.
U is de voedinsspanning, t is de tijd en L is de zelfinductie. De uitslag van de spreekspoel is -min of meer- afhankelijk van de stroom. Als je e.e.a. heel precies wilt doen, dan zul je een correctietabel moeten toepassen.

Door de spanning en tijd te varieren, kun je de grootte van de uitslag en snelheid waarmee dit gebeurd controleren.

Het gaat natuurlijk niet om het zuivere theoretisch stroomverloop bij deze toepassing. Deze waterfiguren trekken zich hier weinig van aan. Het gaat om een constant systeem te ontwikkelen waarbij ik nog beter de figuren kan dwingen tot een bepaalde vormontwikkeling. Het huidige systeem zit al voor het grootste gedeelte in een FPGA en de duizende unieke beelden hiermee bekomen bewijzen dit.

Deze functie is maar eentje van de vele andere functie's die deel uitmaken van de besturing. Tientallen andere heel snelle functie's zijn nog nodig. Mijn keuze voor een FPGA is bepaald wegens de groote eenvoud om deze parrallele functie's heel snel en eenvoudig te kunnen implementeren. Je kunt alles in software oplossen maar een FPGA heeft enorme voordelen en geniet mijn absolute voorkeur. Ik heb momenteel reeds 2 volledige afgewerkte units op deze basis.

Met deze nieuwe aanpak wil ik nog meer dan vroeger inspraak hebben in de wave vorm, amplitudes en aantal waves nodig voor deze beeldvorming. ik weet nu reeds heel precies hoeveel golfvormen ik nodig heb maar binnen dit heel klein getal moet ik de amplitude bij het starten beter kunnen beheren.

Ik stelde vroeger heel veel de frequentie in op de resonantie omdat je dit visueel eenvoudig kon regelen gezien de amplitude van de beweging heel hoog was. Dit kon je visueel gewoon zien en dat was op deze manier een goede referentie om dezelfde frequentie te kunnen instellen. Nu zal die waarde een input op het klavier zijn en wordt daardoor prefect afstelbaar ( was vroeger een potmeter).

Vandaar dat de gevormde wave vormen bestaan uit (voorlopig) 4096 samples. Per wave zijn er 512 samples voorzien wat neerkomt op max 8 waves na elkaar. Maar binnen deze 4096 samples kan ik natuurlijk iedere amplitudes uitsturen die ik maar wil. En mijn flash is 4 Mb x 8bits daar kunnen onbeperkt aantal vormen in die ik terug via mijn klavier kan oproepen.

De vorm van de golf heeft wel degelijk enorme invloed op het resultaat. Daarom zal ik die flash gebruiken om de golfvormen op te slaan, samen met de amplitudes.

Bedoeling is om op deze manier veel meer experimenteer mogelijkheden te hebben. Met eenvoudige profiel aanpassingen wil ik de resultaten wijzigen, iets waar ik vroeger nauwelijks kon bij regelen.

Vandaar dat een FPGA zoveel eenvoudiger is bij dergelijke toepassingen waarbij nog heel veel andere kritische tijden in voorkomen. ( camera sturing, 6 flitsen, 2de externe highspeed shutter, laser sturingen, synchronisatie van deze trillingen met vallende vloeistoffen, enz...)

Free bedoelt misschien de AD625, die heeft software programmable gain en sense-lijnen die je achter de eventuele extra 'eindtrap' kunt hangen.

Op 21 april 2007 18:16:22 schreef free_electron:
(...) als je echt de uitslag wilt gaan regelen ben je best af met een stroomsturing. (...)

In een harddisk, akkoord. De kracht van de voice coil is recht evenredig met de stroom. Versnelling is recht evenredig met kracht.

Maar ik denk dat voor de toepassing van fotoopa een spannings-sturing toch beter geschikt is. Om water te doen opspatten, is niet de kracht/versnelling, maar de snelheid van belang. En dat is nu exact wat je met een spannings-sturing bereikt: als je een spanning aanlegt, loopt er initieel een hoge stroom waardoor de luidspreker begint te versnellen. Met de toenemende snelheid neemt ook de tegen-EMK toe waardoor de stroom afneemt, ta-da :)

Wat ik vooral nodig heb is een gecontroleerde versnelling. Als je te veel versneld dan is het een explosie en kun je geen figuren ontwikkelen. Maar anderzijds bekom je geen loskomen van de vloeistof als je niet een bepaalde drempel omverschrijd. En alles hangt dan nog eens af van de hoeveelheid vloeistof van iedere gram meer of minder heeft weer een heel sterke invloed.

Ik denk van 4 FET's te nemen als H-brug geschakeld. De onderste FET's ( N channel) zou ik volop in verzadiging sturen als switch ( 1 gelijktijdig volgens de polariteit). De bovenste P FET zou ik uitsturen in functie van de aangebodene wave vorm. De feedback voor de meting zou ik doen via een kleine weerstand in de onderste tak.

Omschakeling tussen positief en negatief kan ik perfect doen met de hulp van de FPGA want ik weet precies wannneer er een polariteits wissel voorkomt. Binnen 1 sample puls ( ongeveer 15 usec) kan ik deze indelen in 4 kleine zones zodat de overgangen veilig verlopen.

Dat de gevraagde spanning of stroom soms niet direct bekomen wordt speeld eigenlijk weinig rol want opdat ogenblik zal ik de maximale spannig die ik terbeschikking stel op de spoel brengen. Trouwens de wavevorm bij het starten is steeds zo opgebouwd dat het analoog signaal niet al te snel stijgt. Slechts op het einde toe na een paar waves zal mijn vorm sterk stijgen omdat ik de afstoot wens van de vloeistof druppels en dit moet gaan via een steile positieve puls gevolgd door een steile negatieve. Door de juiste amplitudes aan te geven in de waardes van de lookup tabel hoop ik op een voldoende regelings mogelijkheid. Zal de start eerder eensinus vormig signaal zijn, het einde zal ongeveer een driehoek/blokgolf zijn.

Omdat ik het vermogen moet kunnen regelen in een verhouding 1 tot 10 ( nu gebruik ik 1W tot 10W op een audio versterker) denk ik dit heel eenvoudig te kunnen doen met het instellen van de voedingsspanning op de H-brug tussen 5 en 12V. De keuze van de aangegeven FET's zijn types die ik hier in voorraad heb.

Ik vraag me zelfs af of ik ook voordeel kan halen door de beide bovenste FETS uit geleiding te trekken terwijl ik dan beide onderste FET's in verzadiging stuur. Dit zou erop neerkomen dat je het magneetveld in de spoel kortsluit waardoor de beweging brust kan gestopt worden. Of dit zinvol is weet ik momenteel nog niet maar vermoed dat er toch wel mogelijkheden zijn. Met de FPGA dit sturen is zeker geen probleem.

Hierbij het aangepast blokschema:

http://users.skynet.be/fotoopa/fpga/hp_driver1.png

free_electron

Silicon Member

Op 21 april 2007 22:08:25 schreef Nico.c:
Stroomsturing en een spoel gaan niet samen (dat is inherent instabiel omdat de spanning die nodig is om op t=0 stroom X te laten lopen oneindig hoog is voor X/=0).

Mag ik uw email adress doorgeven aan Seagate, western digital , fujitsu, samsung , toshiba, cornice ,excelstor ?
Blijkbaar kan jij uitleggen waarom de harde schijven die ze de laatste 20 jaar maken ( sedert dat ze van stappenmotoren zijn afgestapt voor koppenpositionering ) theoretisch niet kunnen werken ....

de VCM word in current mode gestuurd. een 4 kwadrant brug pompt stroom door de spoel. een feedback weerstand geeft de stroomwaarde. de Back-emf ( tegen-emk int schoon nederlands ) wordt ook gemeten.

een regelsysteem gemaakt met 6 opamps maakt dan dat je door middle van ene DAC ( 14 of 16 bit ) exact de snelheid van de koppenarm kan regelen.

een VCM is een spoel die in ene mageetveld hangt. ( flinke spoel : ding is 12 ohm in DC en de draad is dik genoeg om er 3 ampere te mogen door jagen ) en flink magneetveld. neodynium magneten: als je 2 van die magneten op ongeveer 3 centimeter van elkaar legt springen ze zo hard naar elkaar toe dat in stukken breken door de schok van het tegen elkaar slaan ) VCM staat trouwens voor Voice Coil Motor. Voice coile is ? juist ! spreek-spoel. dus niets anders dan een luidspreker.

als je de DAc in het midden zet loopt er geen stroom. hoger laat de spoel in een reichting uitslaan , lager in de andere. elke dac stap is een aantal inch per seconde. ( niet per seconde kwadraat het is geen vernelling die je programmeert maar snelheid. )

de controller programmeert de dac aan de hand van ene mechanishce curve die zo opgesteld is dat de verplaatsing van a naar b in de kortst mogelijk tijd gebeurt , maar binnen de mechanische limieten voor de torsie op de arm ( niet de axale torsie veroorzaakt door het verplaatsen maar de radiale door het gewicht van de kop op de arm. die laat de arm rond zijn as draaien. de kanten van de kop zouden tegen de platters slaan.
er wordt dus actief ge-accelereed en ge-deceleerd.

das misshcien ene idee.
sloop een ode harde schijf. zet de VCM op zijn kant , maak de arm vast aan een opgespannen mylar vel. en laat die driver chip het werk doen. gans dat analoog spul zit erin. al wat je moet doen is de dac programmeren. dat ding is ene schuif register. protocol is simpel.

chippie initialiseren ( wat bitjes zetten ) en dan gewoon de dac sturen.

Professioneel ElectronenTemmer - siliconvalleygarage.com - De voltooid verleden tijd van 'halfgeleider' is 'zand' ... US 8,032,693 / US 7,714,746 / US 7,355,303 / US 7,098,557 / US 6,762,632 / EP 1804159 - Real programmers write Hex into ROM

Fotoopa, volgens mij heb je ruim zat bandbreedte om "1 bit dac" te maken. Je moet dan FETs gebruiken die rond de 10MHz het nog leuk doen. Je spoel filtert de boel vanzelf tot wat je wilt hebben.

code:


    nextval = curval + dacval;
    curval := nextval[7..0];

    output = nextval[8];

(Ik ben een jaartje uit de roulatie geweest, en weet niet meer hoe je het in VHDL uitdrukt, maar met "=" bedoel ik: is constant, en met := bedoel ik: "Ieder clock". Dacval komt uit je lookuptabel, curval is 8bit, nextval 9.)

Clock dit op 10MHz, en je resolutie is binnen 25 microseconden bereikt, 40KHz, ruim voldoende. Als je een factor 10 terugzakt, dan nog haal je makkelijk de 270Hz halen die je wilde hebben.

In het geval van een H-brug denk ik dat je nog even moet nadenken over hoe je hem met "0x80" op de ingang precies uit krijgt, maar dat kan je zelf wel.... :-)

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

@ rew:
Die DAC is geen probleem. Dit is reeds klaar in mijn FPGA en werkt uitstekend. Enkel moet ik nog wat extra kurves uitrekenen en via de hexeditor in een file brengen. Enkele seconden later zit die dan in mijn flash naast de FPGA om te gebruiken. Een paar mooie vormen zitten daar nu al in en op de scoop zie ik mooi de wave kurves.

En zoals reed aangegeven, bijna de ganse tijd staat de uitgang zonder sturing, enkel als ik een foto neem moeten 4 tot max 8 golfvormen uitgestuurt worden. dit wil ook zeggen dat mijn voeding om die korte tijd ongeveer 10W max te geven heel heel klein kan zijn. Een goede elco zal wel zorgen om gedurende deze korte tijd (32 msec bij 250Hz of 320 msec bij 25 Hz) de nodige stroom te leveren.

Als ik het goed begrijp is die harddisk idd heel gelijkaardig. Maar opzich toch niet direct geschikt zonder zware ombouw. Ik gebruik nu immers die luidspeker beweging indirect. Er is een membraan gespannen boven de luidspreker en het is de lucht verplaatsing die zorgt voor het overbengen van de bewegingen. Het lucht volume tussen de cone en het membraan is een luchtkussen. Dit geef mij juist heel goede eigenschappen bij dit soort trillingen/bewegingen en het is zeker niet de bedoeling dit princiep te wijzigen gezien het zijn deugelijkheid reeds bewezen heeft.

De wijziging met mijn bestaande oplossing komt van de wens de membraam bij het starten direct vanaf tijd 0 de juiste beweging te doen maken terwijl in het huidig systeem dit random afhangt omdat de stuurpuls ( blokgolf) van de wavevorm niet synchroon liep tov mijn FPGA start signaal. Als je weet dat de meeste gebruikt golf 50Hz is komt dit overeen met een onzekerheid tussen 0 en 20 msec. Deze tijden liggen zo dicht bij de toegepaste opname tijden van een foto dat deze onzekerheid te veel invloed heeft. De foto zelf nemen duurt 250 usec. naast het perfect synchroon verloop wou ik ook vooral inspelen op de golfvorm om nieuwe experimenten te kunnen maken.

Ik ben nu bezig met het tekenen van de FET schakeling, terugkoppeling, enkele opamp's en de logische functie's die de overgangen korrect behandelen. Binnen enkele dagen hoop ik de eerste testen te kunnen uitvoeren maar ben reeds sterk overtuigd dat het perfect zal werken.

Ik heb nogs eens mijn FET voorraad doorlopen en heb zowel de P als de N versie's. Voeding moet ik voorlopig niet maken want er liggen er hier nog voldoende om te gebruiken. Ik heb hier nog een labo voeding staan van +5V 30A, +12V 5A, -12V 5A en +24V 4A.

De bereikte resultaten van dergelijke opnames kun je op deze link vinden

free_electron: analyseer het eerst eens wiskundig, dan zul je zelf zien dat de functie discontinu is en daarmee kun je niet regelen. Je kunt wel truken toepassen waardoor het lijkt alsof er een stroomregeling is (als je de karakeristiek kent) maar dan val je in principe terug op spanningsregeling.

free_electron

Silicon Member

Op 22 april 2007 21:23:56 schreef Nico.c:
free_electron: analyseer het eerst eens wiskundig, dan zul je zelf zien dat de functie discontinu is en daarmee kun je niet regelen.

Ik ben blij dat je me dat niet eerder verteld hebt.
Misschien zou ik dan thuisgebleven zijn in plaats van aan dat 'onmogelijke' systeem liggen sleutelen om het nog precieser te maken (compensatie voor de spoel temperatuur) , had ik 2 patenten en een bonus misgelopen, en had ik, en 19 anderen, ons 6 maanden zitten vervelen.

Er waren tijden waarin boze tongen beweerden dat het theoretisch onmogelijk was dat vogels konden vliegen...

En natuurlijk regel je spanning. maar je regelt de spannig zo dat de stroom door de spoel constant is. ( die meet je trouwens en gebruik je als de feedback voor de regelaar.) kijk hoe een stroombron gemaakt met opamp en transistor werkt. zelfde princiepe.

[Bericht gewijzigd door free_electron op maandag 23 april 2007 00:49:42

Professioneel ElectronenTemmer - siliconvalleygarage.com - De voltooid verleden tijd van 'halfgeleider' is 'zand' ... US 8,032,693 / US 7,714,746 / US 7,355,303 / US 7,098,557 / US 6,762,632 / EP 1804159 - Real programmers write Hex into ROM

We zijn het er dus over eens dat het regelen van een stroom door een spoel niet eenvoudig is.

En terwijl jullie aan het uitvechten zijt of het nu spannings of stroom regeling is ga ik via die 1 ohm de stroom regelen die door de spoel vloeit door de spanning te sturen op de H-brug via die FET's.

Het zou kunnen dat ik jullie volgende week een mooie waterbloem kan aanbieden als hulp bij mijn project :)

Gelukkig zullen vragen mijn waterfiguren die hoge precisie niet en kunnen ze zich toch mooi ontplooien.

Zopas mijn trakking nummer ontvangen voor een 2de DE1 terasic board + een extra afzonderlijke USB blaster programmer. Woensdag namiddag moeten die aankomen en kan ik de inbouw beginnen!

[Bericht gewijzigd door fotoopa op maandag 23 april 2007 09:58:37

@fotoopa: een vermogens-opamp a-la LM150 kan ook nuttig zijn, dan heb je eigenlijk alles al bij elkaar. of een op-amp met een halve brug eraan, doet het ook prima.

@Free-electron&Nico.C

Een spoel reageert traag op stroomveranderingen, als je een spoel die voorheen geen stroom voerde plotseling een spanning oplegt zal de stroom 'langzaam' toenemen. Immers U=L*di/dt, waarbij U de aangelegde spanning is, en L de zelfiunductie, di/dt de stroomverandering over de tijd.

In zoverre heeft Nico.C wiskundig dus gelijk dat je voor een 'plotselinge' stroomverandering ofwel een oneindig hoge spanning nodig hebt, ofwel een inductiviteit van 0, of gewoon een tijdje moet wachten. Analoog eigenlijk een condensator, neem zo'n grote van 1F, als die 0 volt spanning tussen de klemmen heeft, en je legt er plotseling 12 volt spanning op aan, zal er ook een oneindige stroom vloeien(voor zover de bron die laat stromen). Als de stroom begrensd is zal het enige tijd duren voordat de C 12 volt bereikt. Een kondensator reageert dus op spanningsveranderingen analoog een spoel op stroomveranderingen.

In de regeltechniek is het heel normaal, dat actuatoren een bepaalde tijd nodig hebben om op een verandering te reageren. De regelaar compenseert deze reactietijd van de actuator.

een stroomgestuurde regeling is dus gewoon mogelijk hoor, en werd zelfs in de buizentechniek al veelvuldig toegepast. er zijn buizenversterkerconfiguraties die stroomtegenkoppeling gebruiken ipv. spanningstegenkoppeling. Dit geeft een ander klankbeeld omdat de luidsprekeruitslag evenwel niet evenredig met de spanning, maar meer evenredig met de stroom door de spreekspoel is. (ik denk dat ons aller KT88 hier nog wel een boekje over kan opendoen)

Na wat wikken en wegen, wat data sheets doorgenomen te hebben, een paar test opstellingen te maken heb ik toch besloten alles met gewone standaard komponenten te maken.

Voornaamste voordelen:

- Goedkoop, ik heb alles in voorraad.
- Ik kan ieder gedeelte van de H-brug perfect beheersen/sturen.
- Geen probleem met timingen, ik kan zelfs de spoel kortsluiten tijdens een snelle beweging voor het afremmen.
- Ik heb een afzonderlijke extra FET regeling waar de stroom geregeld wordt in functie van de aangelegde stuurspanning.
- De stuurspanning ligt enkel in het positieve gebied van 0 tot 3.3V
- De polariteit komt uit mijn FPGA en is een digitaal signaal.
- Overgangen in polariteit zijn perfect te sturen.
- Zelfs als ik de H-brug door verkeerde aansturing kortsluit blijft de stroomregeling werken.
- Koppeling is DC, geen AC wat een heel belangrijke eis was voor mijn bewegingen.
- Alle stuursignalen zijn 3.3V low voltage en FPGA kompatiebel.
- Juiste nodige power kan ik instellen door de H-brug spanning van R5 en ook via de stroomregeling van R29. Ook kan ik nog eens mijn analooge uitgangs spanning aanpassen.

Het volledige schema, zij het voorlopig nog niet volledig getest staat hier in pdf file

Zopas is mijn 2de DE1 terasic board uit Taiwan aangekomen evenals een extra USB blaster. Ik kan nu de inbouw starten en proeven doen.

Ik zou de stroombegrenzing iets anders opzetten; zodanig dat Q9 een tijdje dicht blijft en een hysterese heeft. Zoals de schakeling nu is kan Q9 half in geleiding komen waardoor je de overige fets ook in hun lineare gebied drijft en waardoor die fets ook te heet kunnen worden.

Op 25 april 2007 18:05:08 schreef Nico.c:
Ik zou de stroombegrenzing iets anders opzetten; zodanig dat Q9 een tijdje dicht blijft en een hysterese heeft. Zoals de schakeling nu is kan Q9 half in geleiding komen waardoor je de overige fets ook in hun lineare gebied drijft en waardoor die fets ook te heet kunnen worden.

Het was de bedoeling de andere fets in saturatie te houden. Maar idd, het zou kunnen dat ze te weinig gestuurd worden. Maar nu gebruik ik 12V om de gates te sturen, ik zou wel iets hoger van de primaire voeding kunnen sturen en zo rond de 18V gaan, dus net beneden de 20V limiet.

Anderszijds is het wel zo dat de duty cycle enorm laag is. voor 99.99 % van de tijd is er niets gestuurd. Enkel als ik een foto neem wordt de schakeling actief voor 8 waves, dus nooit langer dan 320 msec. Daarna is alles gedisabled door de digitale signalen.

Maar ik ga zeker eens kijken tijdens de metingen als een kleine hysteresies bij U2 kan werken voor mijn toepassing.

Die IFU120 denk ik toch te vervangen door IRF520 versie, die heb ik hier nog in aantallen liggen en zijn in TO220 behuizing. Gewoon vastzetten met een schroef zal thermisch al voldoende zijn.

Ik ga ook eens foto's nemen om te zien hoeveel delay er ontstaat tussen het aanleggen van de analoge waarde en het ogenblik dat het membraan van de luidspreker naar beneden gaat. Omdat ik alles heel nauwkeurig kan instellen kan ik deze delay gemakkelijk bepalen. Het eerst naar beneden trekken van de luidsprekercone moet ik trouvens laagzaam doen, het naar bovenslingeren daarentegen mag dan eerder op de volle snelheid. Vandaar dat mijn stuursignaal eerder een soort zaagtand zal zijn naar beneden en een vertikaal positief level naar boven. Ik maak daarvan wel nog scoop foto's en live foto's met maataanduiding van beweging en delay's.

Ik begrijp iets niet. Uit fotoopa's uitleg leid ik af, dat het deel rond Q9 de stroom moet regelen. Maar als ik het schema volg, is het eerder een instelbare stroombegrenzing die bij het overschrijden van een drempel de ganse boel afknijpt en --met enige hysteresis-- dat blijft doen tot de stroom terug onder een bepaald peil gezakt is.
Nou ja, misschien heb ik gewoon te lang in de zon gefietst vandaag... :-)

Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)

Op 25 april 2007 20:19:26 schreef fotoopa:
Maar ik ga zeker eens kijken tijdens de metingen als een kleine hysteresies bij U1 kan werken voor mijn toepassing.

Naast een hysteresis bij U2 ook nog eentje bij U1? Ik mis blijkbaar iets...

Prosper, yop la boum, c'est le roi du macadam (aldus Maurice Chevalier)