Fórum témák

» Több friss téma
Fórum » DC motor/lámpa PWM szabályzása
 
Témaindító: redcar, idő: Márc 3, 2006
Témakörök:
Lapozás: OK   99 / 151
(#) ferci válasza ktamas66 hozzászólására (») Feb 23, 2015 /
 
Nem azt mondtam, hogy gond van az áramkorláttal, csak max terhelésnél, ahol már nem szeretnél rászabályozni, ott fogjon és akár le is kapcsolhat..
Attól függően, mit hajtasz vele, úgy válaszd meg a korlátot, hogy egy közepes terhelés kétszerese legyen. Term. ez motor függő, dehát a te kezedben van, te ismered.
Pl. egy 12 V 50.....60 wattos kis fúrógép felvesz kis terhelésnél 3 ampert, nyilván 6-7 köré állítanám a korlátot, hogy ne menjen tönkre pl. folyamatos 7 ampertől, addig viszont precíziós fordulattartáshoz 10 %-os esést nem engednék meg.
A szabályzás gyorsaságát és az erősítést kéne fokoznod.
(#) ktamas66 válasza ferci hozzászólására (») Feb 23, 2015 /
 
Az áram nem probléma, a kis kék/sárga trimmerrel tudom állítani, a szabályozásban nem vesz részt, csak tiltja a PWM jelet ha magasabb lenne (legfeljebb gyorsításkor is korlátoz, így lassabban pörög fel a motor), lehet érdemesebb magasra állítani, nem tudom hol égne le a motor.
A szabályozást inkább lassabbra kellett vennem, mert különben szépen lengette a motort. Valami PD szerűt alkalmazok, mindig korrigálom a kitöltést a különbség negyedével kb. 100ms-onként állítva a PWM-et. Így terhelés nélkül kb. 10%-on belül tartja a fordulatot. Lefogva szépen utána szabályoz, csak kézzel nem tudok egyenletes terhelést adni, de érzésre jól működne .
(#) (Felhasználó 46585) válasza ktamas66 hozzászólására (») Feb 23, 2015 /
 
Ennél azért sokkal pontosabb szabályozást is lehet csinálni. Még olyat is, hogy a motor szinkronban forog valamilyen jellel. Próbálj inkább analóg szabályozókörben gondolkodni, aztán ha már megy, átteszed digitálisra. Mondjuk a fordulatszám szabályozásnak alárendelt áramszabályozást javasolnám. Egyszerű, pontos és még az áramkorlátot is megoldja.

Ha nincs terhelésed a motorra és nem nagyon akarsz rá csinálni, akkor ellenőrizheted a tachogenerátor kimenetén levő jelből a működést. Nem az igazi, de azért több, mint a semmi. Fordulatszám alapjel ugratást csinálsz, nézed a tacho kimenetét, be kell állnia mindenféle túllendülés nélkül. Nyilván nem pótolja a terheléses üzemet, de több, mint a semmi. Ha jónak látod, akkorra már annyi tapasztalatod lesz, hogy az adott technológiai folyamatban tudni fogod, hogy mit kell csinálni a szabályozókörrel, ha a valóságban vannak mondjuk lengések, problémák.
(#) ktamas66 válasza (Felhasználó 46585) hozzászólására (») Feb 23, 2015 /
 
Éppen azon gondolkodom teszek rá terhelésnek egy másik motor, generátor üzemben, azt már tudom ellenállással terhelni, így állítható lesz (ugye jól gondolom).
A szabályozás is működik, úgy állítottam be, hogy ha lefogom és elengedem másodszor már ne lengjen túl (oszcilloszkópon néztem a PWM jelet, a fordulatszámot az elejére rakott opto tárcsával, van olyan frekvenciamérőm, ami tud min/max mérést is végezni). Persze tudom, hogy tökéletes nem lehet, hiszen a PIC csak 10 bites PWM-et tud.
Azért kérdeztem a motor dolgot, mert elsőre nagyon nem ment, de kicseréltem a tachoban az IC-t, így már sokkal jobb lett, De megmértem a motor fordulatát is labortáppal és ezeket az eredményeket kaptam. Itt látszik, hogy még az optoval mérve is ingadozik fordulat.

Motor.JPG
    
(#) Koncsar válasza ktamas66 hozzászólására (») Feb 23, 2015 /
 
Szia! Én a CNC- m marómotorjának egy kismértű mosógép motorját fogom talán használni. Ezt építettem hozzá Kedves Proli007 kollégánk jóvoltából. Hibátlanul működik. Az IRF 3205 ből elég 1 darab is. Én is így használom. A 3 darab elé már lehet, hogy kéne egy előfokozat. Azt nem építettem meg. Az egyik 51K rossz felé van fordítva, ki kell javítani.
A hozzászólás módosítva: Feb 23, 2015
(#) Koncsar válasza Koncsar hozzászólására (») Feb 23, 2015 /
 
Erre gondondoltam, ez így működik.
(#) Koncsar válasza ktamas66 hozzászólására (») Feb 23, 2015 /
 
Sajnos a 3 az 1 ben dolog nem fog működni. Itt szerintem egy jó megoldás van, ha kis feszültség alacsonyabb fordulat, nagyobb feszültség magasabb fordulat, de legyen meg minden feszültségre a megfelelő áramerösség. Ohm törvény ide vagy oda, az nem változik.
A hozzászólás módosítva: Feb 24, 2015
(#) Peter65 válasza (Felhasználó 46585) hozzászólására (») Feb 24, 2015 /
 
Szia!
A DC motorok fordulatszám szabályozása egy viszonylag kiforrott dolog. Több magyar nyelvű irodalom is van ebben a témában. A számodra legcélravezetőbb az lenne szerintem is, amit Katt ajánlott. A szabályzók topológiája rendszerint PI jellegű, ezek optimalizálásával elég jó szabályzók készíthetők. Az optimalizálást gyakran úgy történik, ahogy Katt leírta. A fordulatszám szabályzónak nem kell túl gyorsnak lennie, az még biztosan belefér a PIC-be, de az áramszabályozó már kérdéses.
A továbblépéshez szerintem előbb egy szabályozástechnikai hatásvázlatot kellene felrajzolnod, és utána kitalálni a megvalósítás útját.
(#) kala1982a hozzászólása Feb 24, 2015 /
 
Sziasztok, belekerestem ebben a témában található képekre, és láttam ezt a kapcsolást többször is felbukkani. Kérdésem az lenne, hogy 10kohm-os potival is működne ez a kapcsolás, esetleg az 1kiloohmos ellenállást nagyobbra cserélésével. Akksis behajtó gép motorját kellene szabályoznom, a fele teljesítménye bőven elég lenne, viszont nem kell neki nullára szabályozni (kis állványos panelfúró, motor teljesítménye-fordulata bőven elég lenne ha negyede lenne). A FET-ek régi alaplapból kitermelt PHB96NQ03LT lenne két db külön gate ellenállással. Szerintetek működne rendesen? Motor induláskor szinte rövidzár. A motorral párhuzamosan egy HER608-as dióda.
(#) ferci válasza kala1982a hozzászólására (») Feb 24, 2015 /
 
Szia!
Müködik persze 10 kohm-os potival, de ugyanerre a frekire a 100 nanós kondit 470 nanóra növeld.
A FET eléggé kritikus, csak 25 voltos...- meggondolnám. Inkább 50 voltost keress.
HER602-től felfelé már jó.
A hozzászólás módosítva: Feb 24, 2015
(#) ktamas66 hozzászólása Feb 26, 2015 /
 
Agyon teszteltem az egészet, azt hittem már ki sem találok a drótdzsungelből , mikor egy hirtelen ötlettel megfordítottam a motorvezérlést. A terhelő motorra kötöttem a tápot, a jeladó úgyis ugyanazon a tengelyen van. Így már majdnem tökéletesen működik, a fordulatszám ingadozás lement olyan 1-2%-ra. Most akkor az a kérdés mi a különbség a két motor között (ez a kisebb is valami nyomtatóból lehet). Mint írtam nem szabályozom az áramot, csak korlátozva van. Így most terhelve csak a max. beállított áramig tudom feltekerni a fordulatszámot (utána nem gyorsul tovább), ha pedig a gyorsan forgó motoron növelem a terhelést úgy csökken a fordulatot, hogy az áram ne nőjön a maximum fölé. Rajzoltam egy nem tökéletesen kidolgozott kapcsolási rajzot is, hátha van valakinek valami jobb ötlete. A program jelenleg kvarcról fut (mert gondoltam hátha ez lehet probléma), de letesztelem majd a belső órajelével is és van egy bemenet, amivel lehet jumperelni, hogy menjen-e a szabályozás, vagy csak simán adja ki a potival szabályozott PWM jelet. Ha valaki gondolja a programot is felteszem (bár most biztos van benne néhány logikai bukfenc a sok variálás miatt ).
(#) kala1982a válasza ferci hozzászólására (») Feb 26, 2015 /
 
Megépítettem. Első bekapcsolásnál teljes fordulaton ment a motor, akkor vettem észre az IC hiányzik. Beletettem. Egyik FET melegedett. Fordulat nem állítható. A melegedő FET-et kivettem utána szépen állítható is lett. Használtam jó pár percig és a motoron lévő dióda(HER608) forró. Nem száll el, csak éget. Jól van így? A többi alkatrész hideg.
(#) ferci válasza kala1982a hozzászólására (») Feb 27, 2015 /
 
Azért forró, mert kevés ehhez a motorhoz az árama. Tegyél bele nagyobb áramú diódát.
Beírtam már pár helyen, hogy a motoréhoz hasonlónak kell lenni, mert FET kikapcskor ugyanaz az áram folyik rajta tovább, max. rövidebben, lecsengésig.
(#) kala1982a válasza ferci hozzászólására (») Feb 27, 2015 /
 
A dióda a motor által gerjesztett áramot vezeti le magán, ez ok. Oda akkor nem lenne elég sima dióda? Motor gerjesztett árama nagyfrekvenciás? Nem próbálom ki azért, gondolom kinyírná a FET-et Ilyen gyors, HER608-asom van még egy ezt tudnám még rátenni párhuzamosan.
(#) ferci válasza kala1982a hozzászólására (») Feb 27, 2015 / 1
 
Gyors dióda célszerű, ha több kHz-es a freki.
Ha teszel 2-t párhuzamosan, nem fognak annyira melegedni.
Rosszul fogalmazol.. minden egyes FET bekapcsoláskor ( minden periódusban ) megindul az áram a motoron keresztül.
Amikor a FET kikapcsol, a pillanatnyi áram ugyanabban az irányban szeretne átmenni a motoron, ezt "engedi meg" a dióda, egyszerűen mondva. Ez másképp elnevezve a szabadonfutó dióda.
A hozzászólás módosítva: Feb 27, 2015
(#) kala1982a válasza ferci hozzászólására (») Feb 27, 2015 /
 
Akkor menni fog mellé párhuzamosan a másik dióda. Forró, de max 5-10 percig megy a motor egyszerre (panelfúró).
(#) Peter65 válasza ktamas66 hozzászólására (») Feb 27, 2015 /
 
Korábban Katt és én is írtam, hogy a DC motorok szabályozására vannak kiforrott topológiák. Ha jól értem te sima P (arányos) szabályozást csinálsz 100msec-enként. Ez nem a legkedvezőbb, és nagyon lassú. Az, hogy egy másik motorral jobb, annak számtalan oka lehet. Lehet kisérletezgetni, de szerintem hatékonyabb lenne, ha utána olvasnál, számolgatnál, és azt valósítanád meg. Lehet, hogy akkor értenéd is, hogy mi történik. A neten fent van a Halász: Villamos hajtások című könyv, abban a 382 oldaltól olvashatsz erről, és a megvalósításról. Még egy link, egy szabályozástechnika jegyzetrőln amiben szintén érintik a témát.Bővebben: Link
(#) ktamas66 válasza Peter65 hozzászólására (») Feb 27, 2015 /
 
Az elmélettel nagyjából tisztában vagyok (bár nálam a nem használt tudás felezési ideje hetekben mérhető , azért valami visszajött), a szabályozás pontosan úgy működik ahogy a nagykönyvben le van írva. A véletlenszerű ingadozást nem tudtam hova tenni (és a program sem), de lehet valami egyszerű oka volt (rossz csapágy, kefe, akármi). Tudom lehetne PID szabályzót is írni rá csak azt is be kell paraméterezni. A képen levő két motor sem ugyanott működik szerintem a legjobban (ennél 80ms a szabályozási érték), az eltérő mechanikai kialakítás miatt. Most a programban ezt egy változóban meg lehet adni 10ms-os lépésekben. A PID behangolása nem tudom mennyire lenne egyszerű feladat, ha valaki nem ért hozzá. A legtöbben itt sima PWM-et építenek, szabályozás nélkül.
(#) Peter65 válasza ktamas66 hozzászólására (») Feb 27, 2015 /
 
Ha sima PWM-et építesz, akkor a motor és a tápegység adta külső jelleggörbe mentén áll be a motor munkapontja a terheléstől függően. Ez a kisebb motoroknál kb. 10% fordulat esést jelent, ami sokszor tolerálható.
Ha legalább PI szabályzót használnál, akkor a statikus hibának 0-nak kellene lennie, azaz állandó terhelés mellett teljesen pontosra be kellene állnia a fordulatszámnak.
Az ingadozásoknak lehetnek olyan okai is amiket te írsz, de ez egyszerűen kiszűrhető; járasd fix PWM-mel a motort üresen; ha a fordulat ingadozik, akkor valami baj van, ha egyenletes, akkor a PWM képzés, az erősáramkör és a motor alapvetően rendben van.
A PI szabályzó behangolása nem egy rendkívüli feladat; Katt már írta: a szabályzónak adsz egy egységugrás jelet, és addig állítod, amíg a leggyorsabb aperiodikus beállás nem lesz.
A jelfeldolgozást akkor is lassúnak tartom; az ilyen kis motorok néhány tized másodperc alatt felfuttathatók névleges fordulatra, ehhez képest tartom lassúnak a 100msec nagyságrendű szabályzó lefuttatást. Ennek egy-két nagyságrenddel gyorsabbnak kellene lennie. Ehhez az is kell, hogy ilyen sávszélességgel érzékeljed a fordulatot, azaz tudni kellene, hogy mi a legkisebb még szabályozandó fordulat, és hány impulzus tartozik hozzá másodpercenként. Ezt a kódadók általában csak 1000-es nagyságrendű impulzusokkal szokták tudni, nem tudom, nálad mi a helyzet. Közbülső megoldás lehet, hogy IR kompenzált fordulatra szabályzol (a szűrt kapocsfeszt méred ADC-vel, és abból számolod vissza a fordulatot), és ennek értékét a lassabban, de pontosabban mért kódadóval korrigálod.
További hibaforrás lehet, ha a számábrázolás valahol elcsúszott. Jó lenne végig legalább 16 biten számolni. A 10 bites PWM-mel is finomabban lehet szabályozni, ha periódusonként állítod szigma-delta szerűen.
(#) (Felhasználó 46585) válasza Peter65 hozzászólására (») Feb 27, 2015 /
 
Egy kicsit még kínlódik a PIC-kel, aztán fog egy current mode controll ic-t, megcsinálja analógon...
(#) ktamas66 válasza Peter65 hozzászólására (») Feb 27, 2015 /
 
Igen, pontosan így mértem az ingadozást. Sima PWM-el (benne is hagytam a programban), sőt labortápról fix DC feszültséggel is ingadozott. Most majd több motort megmérek, csak tárcsát kell csinálnom 2,3-as tengelyre.
A programban a fordulatot periódusidővel mérem, jelenleg minden 16 élre (lehetne 1 vagy 4 is), hogy amennyire lehet átlagolja az ingadozást( 16MHz órajel 0,25us impulzusokat számol). A tárcsa 30 osztás/fordulat, a tacho jelét 1,2-vel kell szoroznom, hogy rpm-et kapjak (ez ugye azt jelenti, hogy kb. negyed fordulatonként van új mérési eredmény). Az A/D a potmétert 64 mérésből átlagolja ki 0-4095 értékre, mivel az rpm-et is kb. 0-4000-ig kapom ebből számolja a program az eltérést, amit osztok 4-gyel, és evvel módosítom a PWM értékét, ami 0-4096-ig szám és a negyedét írom be a CCP regiszterbe (0-1024). Persze figyelem a minimumokat és maximumokat, és jött-e új mérés az előző beállítás óta és hogy egyáltalán forog-e a motor. A szabályozást a multiplexelés közben végzi el kb. 10ms egy kör és egy számlálóval lehet állítani, hány körönként állítson PWM-et (persze, ha jött új mérés). Minden 32. körben kiírja az aktuális fordulatszámot.

Árammódút majd akkor csinálok ha tökéleteset szeretnék, most elég lenne egy nem túl rossz is . Tulajdonképpen egy fordulatszámmérő, kis plusszal.
(#) Peter65 válasza ktamas66 hozzászólására (») Feb 27, 2015 /
 
Ha a motor nem egyenletes járású, ott valami baj lesz. Meg kéne keresni a hiba okát, vagy az is jó, hogy másik motort keresel. Egyébként többé-kevésbé egyenletes járásúvá csak olyan szabályzóval tudod tenni, ami gyorsabb, mint a zavarás.
Ha jól értem, a max. fordulat 4000 1/min. Ekkor a jelenlegi algoritmusoddal ((4000/60)*2*30)/16=250 Hz-es frekvenciával lesz új mérésed. Ez nem túl gyors, de még jó lehet. A kérdés, hogy mekkora a legkisebb fordulat, amin szeretnéd használni, és ott milyen gyakran jutsz mérési eredményhez. A szabályozás csak akkor lesz korrekt, ha egyenlő időközönként futtatod le a fordulatszám szabályzót, és minden számításhoz új aktuális mérésed lesz.
A periódus idő mérés szerintem is jó választás a gyakoribb pontosabb mérés érdekében, de a reciprok számítás lefuttatása gondolom nem megy túl gyorsan a PIC-nek.
Ha jól értem, a számítás menetét, akkor a te szabályzód valójában egy integrátor. Ez egységugrásra mindig túl fog lendülni, és nehezen beszélhető le a lengésről, vagy nagyon lassú lesz, és akkor a rövid zavaró jelekkel semmit sem csinál. Be kellene tenni egy arányos tagot is.
Valahogy így: PWM=Ptag +Itag=(Kp*eltérés)+((Ki*eltérés)+előző Itag). Kp és Ki az arányos és integráló erősítés.
Ha már 12 bites az eredmény, a PWM állításnál is törekedhetnél erre. A PWM -eket négyesével kezelnéd, és a most eldobott töredék biteket érvényre juttatnád. Ez persze azt jelenti, hogy mindig állítgatni kell a PWM értékét.
(#) noris hozzászólása Márc 3, 2015 /
 
Szervusztok!

Egyenletesen növekvő kitöltésű pwm jelet szeretnék előállítani.
Magyarán bekapcsolás után 0 %-os kitöltésről kb 120sec alatt szépen felfut a kitöltés 100%-ra.és úgy marad.

Lehet 555-ös ic-vel ilyet összerakni?
Néhány óra olvasás után sem találtam megoldást.
Lehet, hogy figyelmetlen vagyok?
Köszönöm a segítséget:
Norbert
A hozzászólás módosítva: Márc 3, 2015
(#) ferci válasza noris hozzászólására (») Márc 4, 2015 /
 
Szia!
Ilyen megoldást kapásból ne is keress.
1., 1 db 555 kevés ide;
2., a frekvenciáról se írtál;
3., "egyenletesen" - itt nem mindegy, mit akarsz felfuttatni és mennyire legyen lineáris;
4., "0" kitöltés bekapcsoláskor megvan, a "100" előtt pedig át kell kapcsolni automatikusan direktbe;
5., pl. egy motor vagy izzó esetében a 0 %-ra nincs is szükség;
- elvileg és különböző engedmények árán megoldhatnád úgy, hogy két optó ellenütemű vezérlésével a töltő-kisütő kört söntölnéd, így bizonyos ( jóval kisebb ) határok között egy bizony feladatra jó;
- azt is csinálhatod, hogy egy astabil 555 indítgat egy másikat, ami monostabilként van bekötve és annak az RC tagjában az R egy tranyós áramgenerátor lenne, ahol a tranyó zárását soros RC (pl. tantál elkó ) taggal meg tudod oldani.
Konkrétabb felvetéssel többre jutnál talán.
(#) Massawa válasza noris hozzászólására (») Márc 4, 2015 /
 
Egy 555-l meg egy opamp-l aránylag könnyen megoldhatod.
Az 555-s adja az alapfrekit a kimenti 4szög jelet 3szöggé vátoztatod ( fix frekinél aránylag egyszerü RC taggal). Ezt a jelet egy komparátorra vezeted aminek a másik lábára egy lineárisan növekvö vagy csökkenö DC-t vezetsz (egy másik RC tag). A komparátor kimenetén egy vǎltozo szélességü PWM jelet kapsz.
(#) proli007 válasza noris hozzászólására (») Márc 4, 2015 /
 
Hello! Hogy legyen egy ilyen megoldás is..
(#) ktamas66 válasza Peter65 hozzászólására (») Márc 5, 2015 /
 
Legyártottam néhány tárcsát, hát ez sem olyan egyszerű. Miután eltörtem az összes 0,8-as marómat kipróbáltam tintasugaras nyomtatóval, lézerrel, sőt még a CNC csőtoll variációt is .
Megírtam az új számítási eljárást: PWMúj=PWMrégi+Hiba/2+(Hiba/16+Előzőhiba16). Beírtam egy excel táblába, tetszett amit rajzolt. Levettem a mérést 4 felfutó élre, így 1000-es fordulatnál 8ms-onként kapok mérést. Kipróbáláskor a végeredményben csúnyább lengések vannak mint eddig. Csináltam az excelben egy másik diagramot, ahol eltoltam a fordulat beállását 1 ciklussal, na pont úgy néz ki. Persze a ciklusidő növelésével javul a helyzet. Felteszem a táblát, hátha én gondolkodom félre valahol.
A számításokat egész számokkal végzem, így nem visz el sok időt (a 10ms ciklusidőben 4x2ms várakozás is benne van).
Most azon gondolkodom írok egy kis rutint ami felvesz egy egységugrásra adott fordulat/idő diagramot, csak hogy ilyet is lássak már egy igazi motoron .

MotorVez.xlsx
    
(#) solan98 hozzászólása Márc 5, 2015 /
 
Sziasztok. Tudnátok egy PWM-es kapcsolást küldeni motorhoz kellene?
A hozzászólás módosítva: Márc 5, 2015
(#) kadarist válasza solan98 hozzászólására (») Márc 6, 2015 /
 
Szia!
Egy nincs, csak nagyon sok van: Bővebben: Link.
(#) Ghoost válasza solan98 hozzászólására (») Márc 6, 2015 /
 
Szia
nem mindegy a motortipusa.
Simson vagy Riga?
A hozzászólás módosítva: Márc 6, 2015
Következő: »»   99 / 151
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem