ATC pre cincinnati Arrow
posledné správy z bojiska sú o 14.08, potom som cestoval preč.
po zadaní M19 sa to niekedy roztočilo na max otážky (60/min - max pre orient), alebo sa to nepohlo vôbec.
trocu som skúšal nastavenie PID, bez nejakej zmeny, len som to strielal od brucha.
po zadaní M19 sa to niekedy roztočilo na max otážky (60/min - max pre orient), alebo sa to nepohlo vôbec.
trocu som skúšal nastavenie PID, bez nejakej zmeny, len som to strielal od brucha.
dnes som znova testoval. zatiaľ regulátor nereguluje.
Neviem ako má fungovať signál pos-pid.command. má sa meniť pri ručnom otáčaní vretena?
Inak: ktorý signál dá regulátoru povel, že už je v správnej polohe a má začať brzdiť? Lebo nebrzdí, ak sa roztočí, tak sa točí až do M5.
z orient mi lezie signál celkovo cca -1 do +1, a z enkodéru je jeho hodnota po každej otáčke o 1 vyššia. Po chvíli tam je niekoľko 100. ak by mal NEAR porovnať tieto hodnoty, tak by sa vreteno pri orient muselo "odtočiť" až do 0. (neviem, či mi rozumiete, neviem to napísať lepšie)
Neviem ako má fungovať signál pos-pid.command. má sa meniť pri ručnom otáčaní vretena?
Inak: ktorý signál dá regulátoru povel, že už je v správnej polohe a má začať brzdiť? Lebo nebrzdí, ak sa roztočí, tak sa točí až do M5.
z orient mi lezie signál celkovo cca -1 do +1, a z enkodéru je jeho hodnota po každej otáčke o 1 vyššia. Po chvíli tam je niekoľko 100. ak by mal NEAR porovnať tieto hodnoty, tak by sa vreteno pri orient muselo "odtočiť" až do 0. (neviem, či mi rozumiete, neviem to napísať lepšie)
- robokop
- Site Admin
- Příspěvky: 22386
- Registrován: 10. 7. 2006, 12:12
- Bydliště: Praha
- Kontaktovat uživatele:
command je vstup pozadovane hodnoty do pidky
v pripade orientace by mel byt staticky protoze se jedna o cilovy uhel natoceni
zadny povel jako M5 by tam byt nemel do te doby dokud orientaci vretena nevypnes
pidka jako takova je regulator
vstupem je uhel vystupem je rychlost otaceni
cim vzdalenejsi je aktualni poloha od cilove a cim dele to trva tim vetsi rychlosti by se mel snazit tam dojet
kdyz uz je blizko
tj. odchylka pozadovane a cilove rychlosti je mala a blizi se 0
tim mensi bude rychlost na vystupu pid regulatoru
kdyz se ty hodnoty sejdou na vystupu bude 0
to ze je uz naorientovano do polohy budes muset rucne nejak detekovat (nejaky komparator nebo tak neco)
a umoznit ATCcku jit o krok dal, tj zacit vymenovat
v pripade orientace by mel byt staticky protoze se jedna o cilovy uhel natoceni
zadny povel jako M5 by tam byt nemel do te doby dokud orientaci vretena nevypnes
pidka jako takova je regulator
vstupem je uhel vystupem je rychlost otaceni
cim vzdalenejsi je aktualni poloha od cilove a cim dele to trva tim vetsi rychlosti by se mel snazit tam dojet
kdyz uz je blizko
tj. odchylka pozadovane a cilove rychlosti je mala a blizi se 0
tim mensi bude rychlost na vystupu pid regulatoru
kdyz se ty hodnoty sejdou na vystupu bude 0
to ze je uz naorientovano do polohy budes muset rucne nejak detekovat (nejaky komparator nebo tak neco)
a umoznit ATCcku jit o krok dal, tj zacit vymenovat
Vsechna prava na chyby vyhrazena (E)
to práve nefunguje. orient dá polohu, napr. 0,8
enkodér dá aktuálnu polohu napr.0,5
keď ručne otáčam vretenom, tak okolo polohy 0,8 by výstup PID mal klesnúť na 0, ak to prebehnem, tak by mal ísť do mínusu. ALe to sa nedeje. takže kde je chyba?
enkodér dá aktuálnu polohu napr.0,5
keď ručne otáčam vretenom, tak okolo polohy 0,8 by výstup PID mal klesnúť na 0, ak to prebehnem, tak by mal ísť do mínusu. ALe to sa nedeje. takže kde je chyba?
ak to správne chápem, tak to robí NEAR.to ze je uz naorientovano do polohy budes muset rucne nejak detekovat (nejaky komparator nebo tak neco)
a umoznit ATCcku jit o krok dal, tj zacit vymenovat
M5 zadávam ručne, keď potrebujem zastaviť vreteno.
- robokop
- Site Admin
- Příspěvky: 22386
- Registrován: 10. 7. 2006, 12:12
- Bydliště: Praha
- Kontaktovat uživatele:
asi to bude pro zacatek chtit dat do Pcka neco vic nez 1
melo by to byt neco jako vystup = (zadana - skutecna) * P
dejmetomu P=10
takze 0.8-0.5 = 0.3 ot.
0.3 * 10 = 3 ot./min
melo by to byt neco jako vystup = (zadana - skutecna) * P
dejmetomu P=10
takze 0.8-0.5 = 0.3 ot.
0.3 * 10 = 3 ot./min
Vsechna prava na chyby vyhrazena (E)
roztočím vreteno a zastavím ho. enkoder.position je napr. -329.8
zadám M19
pospid.command nastaví na 329.99
spustí vreteno a začne ním otáčať
rozdiel sa zvyšuje
pospid.output je na max (60)
chyba bude asi v nastavení enkodéru, pri M3 mi klesá hodnota position a to bude asi chyba
zadám M19
pospid.command nastaví na 329.99
spustí vreteno a začne ním otáčať
rozdiel sa zvyšuje
pospid.output je na max (60)
chyba bude asi v nastavení enkodéru, pri M3 mi klesá hodnota position a to bude asi chyba
Tohle je zvláštní. Jestli se to po pár otáčkách zastaví, tak to znamená, že PID překmitla za požadovanou hodnotu, protože orientace by měla proběhnout max do jedné otáčky vřetena a tím pádem by se PID měl snažit to dotáhnout zase zpět. Takže by mělo cvaknout relátko a mělo by se to otáčet zase zpět.r4cv píše:zmena encoder.scale pomohla.
Pri M19 sa to už po pár otáčkach zastaví
zajtra pokračujem s nastavovaním PID.
Co ti leze z PID? zmenšuje se ta hodnota. Idelně si pust halscope (popis zde http://linuxcnc.org/docs/html/hal/tutorial.html )
a naklikej si do nej pos_pid.feedback a pos_pid.output a klidne i pos_pid.command, ale ten by se neměl měnit.
Z grafu je pak krásně vidět jak se to chová. Někdy prostě halshow nestačí a je potřeba to vidět v čase.
Až tohle vyladíš a vřeteno se ti zastaví tam kde chceš, tak nastav ten near.
je potřeba nastavit near.N.difference na požadovanou hodnotu. např pro jeden stupeň 1/360=0,002777 protože jedna otáčka odpovídá změně encoderu o 1.
tím ti bude near spínat v rozsahu +-1 stupeň od požadované hodnoty.
Ale jestli ti to překmitne, tak se může stát, že near vyhodnotí, že už je vřeteno v požadované poloze, ale protože se stále točí, tak se mu poloha ještě změní a dotočí se do pryč. Prostě je potřeba ten signal near prohnat něčím, co změní signal až po uplynutí nejaké doby, kdy už je jistota že to stojí. A na to slouží debounce, který čeka požadovany počet vzorků, než přepne vystupní pin do patřičného stavu.
Když se ti ale podaří naladit PID tak aby nepřekmitnul, tak ten debounc nebude potřeba. To záleží jak pomalu se to vřeteno dokáže točit.
Martin
Tak modří už vědí, proč ti to necvaká a netočí se to zpátky.
Ty používáš signal motion.spindle-speed-out-abs a k němu cw ccw, ale z PID smyčky ti leze jenom +-, takže se nemění směr rotace.
bude potřeba vystup z PID prohnat přes ABS a patřičně napojit signály tak aby pro zaporný čísla cvaklo relátko.
Idealne přes mux2 ovládaný rovněž spin.orient aby se signal z ABS dle potřeby odpojil a nedelal tam neplechu když se nebude orientovat.
Zkusim to nakreslit. Jeden obrázek za tisíc slov.
Martin
Ty používáš signal motion.spindle-speed-out-abs a k němu cw ccw, ale z PID smyčky ti leze jenom +-, takže se nemění směr rotace.
bude potřeba vystup z PID prohnat přes ABS a patřičně napojit signály tak aby pro zaporný čísla cvaklo relátko.
Idealne přes mux2 ovládaný rovněž spin.orient aby se signal z ABS dle potřeby odpojil a nedelal tam neplechu když se nebude orientovat.
Zkusim to nakreslit. Jeden obrázek za tisíc slov.
Martin
slíbený obrázek.
podle manualu by sel pouzit místo mux i or, když PID nebude mit signal enable, tak vystup bude 0 a pro nulu bude is-negativ taky nula, takže sem kecal, že by to dělalo bordel. můžeš je protě binárně sečíst. Ušetříš jeden drát pro select.
fungovat bude obojí.
M
podle manualu by sel pouzit místo mux i or, když PID nebude mit signal enable, tak vystup bude 0 a pro nulu bude is-negativ taky nula, takže sem kecal, že by to dělalo bordel. můžeš je protě binárně sečíst. Ušetříš jeden drát pro select.
fungovat bude obojí.
M
Naposledy upravil(a) fupe dne 14. 2. 2017, 9:11, celkem upraveno 1 x.