MOSFET driver
Ahoj
Prosim ta aky pouzivas osciloskop? Mohol by si dat aj priebehy z prudovej sondy ? Zaujima ma aj ako sa hreju tranzistory. Ak nemas velky krokac k dispozicii tak sa popytaj na skole (ak este studujes) mne na pokusy profesor pozical 8Nm motor (SX34-4280). Inak celkom dobra doska da sa nej realizoat riadenie pre vela typov motorov.
s pozdravom Jukos3
Prosim ta aky pouzivas osciloskop? Mohol by si dat aj priebehy z prudovej sondy ? Zaujima ma aj ako sa hreju tranzistory. Ak nemas velky krokac k dispozicii tak sa popytaj na skole (ak este studujes) mne na pokusy profesor pozical 8Nm motor (SX34-4280). Inak celkom dobra doska da sa nej realizoat riadenie pre vela typov motorov.
s pozdravom Jukos3
Kazdy raz nejako musel zacat ...
http://robotika.yweb.sk
http://ap.urpi.fei.stuba.sk/sensorwiki/index.php/Kráčajúci_mobilný_robot
http://robotika.yweb.sk
http://ap.urpi.fei.stuba.sk/sensorwiki/index.php/Kráčajúci_mobilný_robot
MYslim, ze timto to nebude. PWM jedu na 20kHz, pouzivam synchronous rectification a motor ma mozna 50mH (meraku moc neverim). Nejake drobne ruseni tam je, ale velmi kratke a spis zpusobene merenim, nez ze by lezlo do motoru. Problem s kroutakem se projevuje i kdyz krokovani zastavim v kriticke pozici.Jenda9999 píše:Zase jenom odhaduji.Ve statickem rezimu vse bude jeste horsi.Proste si myslim ze nekam tlacite spousty energie.Ta se tam nejaka spali na teplo,
nejaka se meni v mag. pole a transformuje.Cim je motor mene zatizen,
tim mene se odsava energie do mech. pohybu a vice transformuje.
No .. pokud muj driver bude fungovat, tak by vysledna cena mohla byt hodne zajimava. Vyhoda je, ze vetsinu resi XMega, neni treba zadne slozite OZ, filtry a tak. Chci vyzkouset tento plne integrovany pristup. Rozhodne nemam v umyslu konkurovat profi driverum, spis udelat kvalitni driver za primerenou cenu a zkusit si, ze to jde. A dobudoucna mit driver, ktery muzu prizpusobit tomu, co potrebuju.Co se tyce 3f krokace.Tak si myslim ze je potreba jit na vyssi napeti.
Drivery pro 80v jsou a levne.O moc levneji(spis draz) je nepostavite.
Cinani proste kupuji vse za 1/3
Je potreba jit na sitove napeti.Proste 5Nm pri 1000ot/min je 500W vykonu.
A 1000W prikonu! To je pri proudu 5A 200V.
Jsem celkem zvedavy, jak se Ti bude darit.Ja pouzivam procesor s o 2 rady vyssim vykonem a je to tak tak.Reagovat na vstupni impulsy s kmitoctem 1Mhz(zjistim kdy jiz zacinam brzdit).Zmerit jejich casovou vzdalenost.Spocitat kazdy cyklus proudu v PID.Zmerit nekolikrat za cyklus proud a prepocitat na okamzite napajeci napeti..atd. Ale mozna neco delam spatne.A pokud by to melo byt dokonale, tak asi na motor dat enkoder a udelat rizeni proudu v zavislosti na okamzite poloze rotoru mezi zuby.
Mam rucni 60MHz Owon, lepsi by se nezaplatil. V pripade nouze se dovedu dostat k lepsimu, ale vetsinou staci. Takze proudova sonda je luxus.. Na mereni proudu zatim pouzivam bocnik a pripadne odcitani kanalu .. Nejake obrazky muzu poslat..Jukos3 píše: Prosim ta aky pouzivas osciloskop? Mohol by si dat aj priebehy z prudovej sondy?
Zatim se nehreji vubec/neznatelne, budice jsou sotva znatelne ohrate (40kHz spinani, 2A stredni proud, 20V). Na vetsi proudy/napeti musim nekde ulovit zdroj. Zatim radeji postupuju pomalu, tranzistory by daly dost praci vymenit.Zaujima ma aj ako sa hreju tranzistory.
Studium uz mam nejakou dobu za sebou, ale kontakty zustaly, asi to zkusim. V teto fazi bych radeji experimentoval s nejakym srotem, u ktereho me nebude trapit, kdyz kvuli nejake hloupe chybe shori. Az budu mit nejaky rozumnejsi firmware a nejake zkusenosti, tak to budu resit ...Ak nemas velky krokac k dispozicii tak sa popytaj na skole (ak este studujes) mne na pokusy profesor pozical 8Nm motor (SX34-4280).
Diky. Univerzalnost byla jednim z cilu ;-). Doufam, ze rozchodim nejaky typ motoru a pak se s vyvojem firmware treba nekdo prida ...Inak celkom dobra doska da sa nej realizoat riadenie pre vela typov motorov.
Ta xMega jede na 32MHz, ale je to 8-bit. Uvidime.Jenda9999 píše:Jsem celkem zvedavy, jak se Ti bude darit.Ja pouzivam procesor s o 2 rady vyssim vykonem a je to tak tak.
Samotne pocitani pulzu za me udela snad citac. A pri trose stesti mi bude stacit kontrolovat stav citace pri kazdem PWM pulzu, mozna i mene casto.Reagovat na vstupni impulsy s kmitoctem 1Mhz(zjistim kdy jiz zacinam brzdit).Zmerit jejich casovou vzdalenost.
Zatim bych zkusil samplovat proud co to jde a pres DMA cpat do bufferu. Pri PWM pulzu zahodit vzorky poskozene spinanim a spocitat prumer, podle toho prepocitat PID pro proud. Bohuzel tim vznikne 1PWM cyklus zpozdeni, uvidime, jak bude regulace stabilni. Asi zkusim nejaky simulink. Napeti snad v mem pripade moc resit nemusim (aspon pro krokac), pripadne delat nejakou aproximaci. Zatim jsem se tak daleko nedostal ...Spocitat kazdy cyklus proudu v PID.Zmerit nekolikrat za cyklus proud a prepocitat na okamzite napajeci napeti..atd.
Nevim. Snazim se drzet pri zemi. Kdyz budu mit driver na krokac 80V/10A s mikrokrokem a kompenzaci mid-band nestability, tak budu spokojenej ...Ale mozna neco delam spatne.A pokud by to melo byt dokonale, tak asi na motor dat enkoder a udelat rizeni proudu v zavislosti na okamzite poloze rotoru mezi zuby.
mozna by stalo za to, na tu desku pridat 220V AC spinany zdroj co by napajeni
- s takovym driverem se pak nadherne pracuje - vse funguje a nemusis resit nejake problemy s napajenim
'kdybys chtel udelat verzi na 5-fazove KM s mikrokrokem - tak ti muzu rychlej 5-f KM pujcit na testovani - ale to bys musel pridat jeste jeden mustek /respektive 2
- s takovym driverem se pak nadherne pracuje - vse funguje a nemusis resit nejake problemy s napajenim
'kdybys chtel udelat verzi na 5-fazove KM s mikrokrokem - tak ti muzu rychlej 5-f KM pujcit na testovani - ale to bys musel pridat jeste jeden mustek /respektive 2
Tak jsem zas trosku pokrocil. Uz mi funguje pocitani prumerneho proudu pres PWM periodu. Zahodi se vzorky poskozene spinanim (2 samply na kanal/spinaci okamzik) a zbytek se secte. Bohuzel je realne zpracovat jen 500ksampl/kanal, 24 samplu na PWM periodu a kanal. Vicemene by to slo i na 48, ale je to totalne na hranici CPU (pres 70% zatizeni) a vznika pak uz problem s DMA.
V priloze je ozrazek s nasamplovanymi daty. PWM bezi na 20.8Khz, na obrazku je asi sekunda dat, proud je cca 200mA na vinuti, napeti asi 7V.
Filtrovani mi prijde hodne vpohode, sum mereni se jen 3mApp. A merici rozsah 10A. Mozna bude trosku problem s INL ADC prevodniku (errata od atmelu), ale v nejhorsim staci pockat na novou verzi kremiku.
Ted dopsat kompenzaci zahozenych vzorku+kompenzaci shuntu (jendo fixed-point nasobeni) a PID a mel by mi fungovat closed-loop current microstepping ;-)
V priloze je ozrazek s nasamplovanymi daty. PWM bezi na 20.8Khz, na obrazku je asi sekunda dat, proud je cca 200mA na vinuti, napeti asi 7V.
Filtrovani mi prijde hodne vpohode, sum mereni se jen 3mApp. A merici rozsah 10A. Mozna bude trosku problem s INL ADC prevodniku (errata od atmelu), ale v nejhorsim staci pockat na novou verzi kremiku.
Ted dopsat kompenzaci zahozenych vzorku+kompenzaci shuntu (jendo fixed-point nasobeni) a PID a mel by mi fungovat closed-loop current microstepping ;-)
S internim prevodnikem procesoru zadne zazraky nejde delat.Obycejny alespon prumerny A/D prevodnik stoji vic nez cely procesor s prevodniky.Uvnitr je spinane odporove pole jen nekolik mikrometru treba od rychle nasobicky.To se tam musi projevit.Ale asi to ani neni moc potreba.Myslim si, ze uvnitr v motoru je tolik nelinearit, ze nejake procento spatne zmereneho proudu nehraje roli.Dej treba vedet, jak jsi si poradil s nastavovanim maleho proudu v uzavrene smycce. Predpokladam, ze pokud budes met pri mikrokovani nastavit treba 50mA.Tak po sepnuti tranzistoru a nez zareagujes a vypnes, tak tam bude jiz mnohem vice.Tech vic nez 50mA tam bude uz pod vlivem spinaci a vypinaci doby tranzistoru.
Myslim, ze tady bych problem nehledal. Xmega ma 12bit prevodnik s celkovou INL 5lsb, bohuzel se jim kremik uplne nepoved, takze v mem modu 6lsb. Prevodnik je realizovany jako kapacitni pipeline, takze to s rusenim neni tak zle. Na toto pouziti je tam jeste nejaka rezerva.
Spinaci cas tranzistoru je snad celkem vpohode, momentalne pouzivam 0.5us dead-time, asi by mohl byt daleko nizsi. Budic do gate tlaci kolem 2A.
Vetsinu chyb by mela odstranit integracni cast PID.
Navic deska je navrzena na 10A, takze 1% je 100mA. Pro konkretni aplikaci staci zmenit shunt, pri mensim proudu nebude treba resit vykonove zatizeni a presnost pujde podstatne nahoru.
Ted musim napsat ten proudovy PID, pak zkusim zmerit nejake realne hodnoty.
Spinaci cas tranzistoru je snad celkem vpohode, momentalne pouzivam 0.5us dead-time, asi by mohl byt daleko nizsi. Budic do gate tlaci kolem 2A.
Vetsinu chyb by mela odstranit integracni cast PID.
Navic deska je navrzena na 10A, takze 1% je 100mA. Pro konkretni aplikaci staci zmenit shunt, pri mensim proudu nebude treba resit vykonove zatizeni a presnost pujde podstatne nahoru.
Ted musim napsat ten proudovy PID, pak zkusim zmerit nejake realne hodnoty.
Mozna se pletu.Ale uvazuji takto.Treba pro Irms=3A.Pro maly krucek motoru(treba 1/32) vychazi proud fazi 150mA.Pri malych otackach je potreba "duty" pro 3A treba jen 3%.Pro 150mA vyjde duty treba jen 0.05%.Takze sepnes tranzistor zmeris proud a nez vypnes, tak je uz treba 1/2 A.Takovy Trinamic ma treba stejny problem a jine IO taky.
Pro male proudy bude mozna potreba pocitat proud pro PID jako prumer za nekolik kmitu PWM.A nastavovat proud tak napr. kazdy 5 cyklus.
A 4 cykly PWM vubec nespinat.Jenom tak hadam....
Pro male proudy bude mozna potreba pocitat proud pro PID jako prumer za nekolik kmitu PWM.A nastavovat proud tak napr. kazdy 5 cyklus.
A 4 cykly PWM vubec nespinat.Jenom tak hadam....
Podle me by to nemel byt zas takovy problem. Proud se nastavuje PWM duty a pres celou periodu se pocita prumer. Na zaklade zmereneho proudu spocte PID PWM pro dalsi cyklus (technicky je nastaveni zpozdene o jednu periodu, snnad nebude problem se stabilitou). Integracni cast PID by mela vyrovnat priapdne chyby v nastaveni PWM (pokud je v jednom cyklu proud moc vysoky, tak se pak v dalsich cyklech nastavi nizsi)Jenda9999 píše:Mozna se pletu.Ale uvazuji takto.Treba pro Irms=3A.Pro maly krucek motoru(treba 1/32) vychazi proud fazi 150mA.Pri malych otackach je potreba "duty" pro 3A treba jen 3%.Pro 150mA vyjde duty treba jen 0.05%.Takze sepnes tranzistor zmeris proud a nez vypnes, tak je uz treba 1/2 A.Takovy Trinamic ma treba stejny problem a jine IO taky.
Pro male proudy bude mozna potreba pocitat proud pro PID jako prumer za nekolik kmitu PWM.A nastavovat proud tak napr. kazdy 5 cyklus.
A 4 cykly PWM vubec nespinat.Jenom tak hadam....
Nejsem si jisty, jestli si rozumime.Pokud bude motor stat a bude potreba pro mikrokrokovani nastavit do 1 faze proud 50mA.Tak bude potreba pro to sepnout transistor treba na 1ns.....To vyjde vypoctem z PID....Spis vyjde vypoctem pro dalsi PWM hodnota s opacnym znamenkem.
To samozrejme nejde.Takze mozna bude potreba sepnout na co nejkratsi dobu.Zmerit proud a prislusny pocet period vynechat.Tak aby prumer v case sedel.Zatim jsem mel v ruce asi jenom 1 desku, ktera presne mikrokrokovala.
To samozrejme nejde.Takze mozna bude potreba sepnout na co nejkratsi dobu.Zmerit proud a prislusny pocet period vynechat.Tak aby prumer v case sedel.Zatim jsem mel v ruce asi jenom 1 desku, ktera presne mikrokrokovala.
To nahodou docela dobre jdeSpis vyjde vypoctem pro dalsi PWM hodnota s opacnym znamenkem.
To samozrejme nejde.


Co se tyka minimalniho casu: Pro mikrokontroler neni problem ridit pulzem tak kratkym ze se tranzistor skoro ani neotevre, ale neco malo proudu zase do civky nacpe, tekze tohohle bych se taky nebal.
Jde pouze o to ze tohle neni ten primo-zpetnovazebni PWM s komparatorem kde se ceka a pak az teprve tranzistor zavira (tady je problem s minimalnim proudem docela casty). Ale tady se zavira jeste nez proud dosahne pozadovane hodnoty (tady se neceka na komparator) protoze jeste nejakou dobu kdy se zavira tranzistor proud tece nez se tranzistor uplne zavre. A spravne naladeny PID to musi relativne v pohode uregulovat. Zpozdeni jedne periody PWM vzhledem k casove konstante elmag systemu je v pohode. Indukcnosti jsou relativne velike.
Tak jsem zas trosku pokrocil. Uz mi funguje vypocet proudu vinutim a PI regulator (ale budu muset pridat anti-windup a nejak vymyslet, jak nastavit parametry PI). 12V maly krokac dovedu krokovat asi na 500kroku/s
Narazil jsem ale na jeden problem. Pokud je vystup kolem nuly, tak zacnu prepinat polaritu H-mustku a vystup ma tendenci zacit kmitat. Pravdepodobnou pricinou je nedostatecne kompenzovani offsetu mereni - pri zmene polarity se prepne shunt, na kterem se meri.
Nenapada nekoho, jak tento problem resit? ma cenu vymyslet nejake okenko neaktivity nebo filtrovani vystupniho signalu? Nebo mi pomuze nejaky maly offset?
Matematika bohuzel neni moje nejsilnejsi stranka a reseni metodou pokus/omyl je trosku zdlouhave ...
Narazil jsem ale na jeden problem. Pokud je vystup kolem nuly, tak zacnu prepinat polaritu H-mustku a vystup ma tendenci zacit kmitat. Pravdepodobnou pricinou je nedostatecne kompenzovani offsetu mereni - pri zmene polarity se prepne shunt, na kterem se meri.
Nenapada nekoho, jak tento problem resit? ma cenu vymyslet nejake okenko neaktivity nebo filtrovani vystupniho signalu? Nebo mi pomuze nejaky maly offset?
Matematika bohuzel neni moje nejsilnejsi stranka a reseni metodou pokus/omyl je trosku zdlouhave ...
Mozna jste narazil na to co jsem mel na mysli.Nejde tranzistor sepnout na tak kratkou dobu, aby se nastavil pouze maly proud.I velmi kratkym sepnutim se prehoupnem na druhou stran.Pak zase zpet.Atd.Myslel bych asi takhle.Na velkych rychlostech nema jemne mikrokrokovani smysl.Tak male proudy nenastavujeme.Na strednich otackam take velmi jemne mikrokrokovani take nema smysl.Takze male proudy ma smysl nastavovat pouze pri dojeti motoru na polohu a jeji drzeni.Takze bych sepnul transistor na velmi kratkou dobu.Zmerim proud.Pokud bude moc tak nasledujici periodu vynecham. Zmerim dalsi periodu.Pokud bude moc tak zase vynecham.A pocital bych z tech period prumer.Az bych byl prumerem na proudu co chci, tak znovu impuls.Jinak u krokoveho motoru pro velmi jemne krokovani jsou nelinearity.Takze je potreba oproti sin. tabulce u malych proudu pridat.
Menite velikost odporu shuntu podle rms ?
Ja kupuji odpory na ebay -CADDOCK MP816 0.1OHM, 1% 16W Non Inductive Resistor. 16 W odpor na chladic za dolar je zadarmo.A je hlavne bezindukcni, takze vime co merime.
Menite velikost odporu shuntu podle rms ?
Ja kupuji odpory na ebay -CADDOCK MP816 0.1OHM, 1% 16W Non Inductive Resistor. 16 W odpor na chladic za dolar je zadarmo.A je hlavne bezindukcni, takze vime co merime.