pozicio vezerles
Huszti Andras
kyrk at villamvadasz.hu
Sat Mar 17 23:02:01 CET 2007
Hali!
> >> Feladat, alaphelyzetben a dc-motor ne kusszon, esetleg ha elmozdul
> >> onnan, akkor visszaalljon a poziciora. Masik feladat, ha a
> >> szogjeladot, amelyik nem a motor tengelyen van, elforditom valamilyen
> >> iranyban, akkor a motor is ugyanarra, es ugyanannyit forduljon.
> HA> En ilyet csinaltam piciben es PIC-re.
> Erdekelne... persze nem a forras, hanem az elve - gyakorlatilag
> megoldva :D
Gyakorlatilag nalam ugy nez ki, hogy az alapjel 0-5V-os es az
ellenorzojel is. Ezt A/D -n keresztul olvassa be a PIC amiben fut a
PI(D) algoritmus. A kimenet pedig PWM jel. Tovabb reszletezni a
mukodeset szerintem nem lehet.
> HA> Elso problema amit le kell kuzdeni az a motor nemlinearitasa. Erre az az
> Ezzel szerencsere nem kell foglalkozni, mert a motormeghajto aramkor
> lekezeli a nyomatekot, csak nem tud pozicionalni.
Mazli :) Akkor a neheze megvan!
> Mint, ahogy mondtam, van ket jeladom, inkrementalisok. Van egy
> motorom, melynek a vegen rajta ul az egyik szogjelado.
Ezt PLC-vel vegulis rendesen fel tudod dolgozni? Irtad, hogy lassu
fordulatnal nem mukodik a dolog rendesen. Esetleg van erre a PLC-n kulon
bemenet? Ebben nem nagyon tudok segiteni, hogy mi lehet a baj ha baj
van. PLC-hez annyira ertek csak, hogy nehany fajtat programoztam mar.
> A plc pid-je vacak, igy szeretnem sk megoldani.
Ez biztos? Ugy ertem, hogy esetleg manualisan nem lehet belallitani?
Elso korben szerintem PLC-ben PID-et irni nem tul konnyu dolog. Ismerve
a PLC-k tulajdonsagait. Bar mintha lenne mar olyan PLC amit C-ben lehet
programozni.
> Van egy kepletem:
>
> Output= Kp * Perror - Kd * Derror + Ki * Ierror
Ez jo de bontsad ket reszre:
rendelkezo_jel = alapjel - ellenorzo jel;
output = rendelkezo_jel * Ap + Integral_rendelkezo_jel*Ai +
derival_rendelkezo_jel*Ad;
Az elso keplet kepzi a hibajelet. Az alap_jel a "poti" aktualis
pozicioja amit te tekergetsz, hogy hova akarod beallitani a poziciot.
Nyilvan van valami progi a PLC-ban ami az inkrementalis jelbol szamot
kepez. Az ellenorzo_jel a motor aktualis pozicioja. Megintcsak van
valami progi amit az inkrementalis jelbol poziciot kepez. A
rendelkezo_jel majd megmondja, hogy merre kell tekerni a motort es
mennyit. Lenyegeben ez felfoghato hibajelkent.
A plc-ben az inkrementalis jelet lehet, hogy neked kell feldolgoznod ha
nincs kulon erre dedikalt bemenet. Sejtem, hogy PLC-vel ez eleg maceras
dolog lesz mivel a feldolgozo resz ciklikusan fog majd lefutni ami egy
felso hatarfrekvenciat jelent majd. Ha gyorsabban valtozik a jel mint
ahogy a PLC kovetni tudja lepeskovetes lesz ami fals pozicioba allast
fog eredmenyezni. A megvalositasara neten sok peldalt talalsz szerintem.
Lenyegeben ha az egyik jel valtozik akkor meg kell vizsgalni a masik jel
allapotat. Ettol fuggoen leptel elore vagy hatra. Ez 8 esetet jelent,
hiszen 2 jel van es mind a ketto jel vagy posedge (0->1) vagy negedge
(1->0) valtozhat es a masik jel ami nem valtozik vagy 0 vagy 1 lehet.
PIC-ben irto konnyu ezt megcsinalni PLC-ben szerintem kinszenvedes lesz!
Ha csak P tagot akarsz akkor az igy fog kinezni:
output = rendelkezo_jel * Ap;
Itt jon egy kis digitalis matematika. Nem tudom PLC-ben hogy lesz, de
OVATOSAN A TULCSORDULASSAL! Szorozni, (osztani), kivonni es osszeadni
csak ugy szabad ha tulcsordulas vizsgalat van. Ha a rendelkezo_jel pl 8
bites es az ertek 255 es te megszorzod 2-el akkor az output 254 lesz. Ha
4-al akkor 252. Ugye a felso biteket levagod es az also 8 bit marad csak
ami hamis erteked ad. Na ezt PLC-ben megvalositani szerintem nem lesz
leanyalom. DE! Elso korben ezt kihagyhatod, hiszen kicsi az eselye, hogy
olyan ertekek keruljenek be ami miatt valami tulcsordulhat. Ha
tulcsordula akkor azt latod, hogy a motor "megorul". Pl ide-oda jar vagy
ossze-vissza megy a fordulatszam.
Az output-ot valahogy at kell alakitanod a motornak "ertheto" formara.
Pl ha van a PLC-ben motorvezerlo ami PWM-el megy akkor konnyu a dolgod
mert az output elojele az irany, mig az abszolut erteke a PWM kitoltesi
tenyezoje. Es innen fogja tudni a motor, hogy merre mennyivel kell
forognia. DE! Minel kozelebb van a poziciohoz annal lasabb lesz. Ne
feled pozicio szabalyzasrol van szo nem pedig palyakovetesrol. Az utobbi
jelenti azt, hogy adott palyat adott sebeseggel kovetsz.
Mielott barmit csinalnal PLC-vel szerintem nezd meg, hogy a PLC-d
tudja-e az alabbiakat:
- inkrementalis jeleket fogado modul (2db)
- motorvezerles lehetoleg PWM-el
Esetleg feltehetnel par kepet a netre, hogy hogyan allsz a dologgal.
Ertem itt, hogy a PID szabalyzot hogyan kototted be. Mar ha grafikus
feluleten vagy. Talan csak valami elvi hibat kovettel el. Ki tudja.
Vizualis tipus vagyok.
More information about the Elektro
mailing list