Joint follow error

Odpovědět
lukin1156
Příspěvky: 579
Registrován: 7. 11. 2012, 8:42

14. 2. 2023, 11:19

Brother se už pomalu rozjíždí a narazil jsem na další problém.
Při pojíždění osami mi při rychlostech nad 1500mm/min mi osy padají do follow erroru.
Mesa karty jsou 5i25+7i76, servodrivery Delta ASDA B2. Řízení v polohovém režimu STEP/DIR.
Níže přikládám výpis z jedné osy.
Konfigurace byla vytvořena přes PNCconf. Jsou tam nasrané PIDky, jak už je nedobrým zvykem tohoto konfigurátoru. Našel jsem nějaké vlákna o tom jak je vyhodit, ale žádný úspěch to nepřineslo. Také vím že byly nějaké problémy s STEPGEN_MAXACCEL, ale rád bych aby to bylo popsané na jednom místě. Také se mi nedaří zvýšit STEPGEN_MAXVEL nad 25.
Myslím že je problém ve vysokém STEP SCALE, bohužel nevím jak změnit driver na nižší počet pulsů na otáčku.
Dále jsem něco našel o nastavení BASE_PERIOD, ale nevím jestli to má na to vliv.


[AXIS_X]
MAX_VELOCITY = 400
MAX_ACCELERATION = 2000
MIN_LIMIT = -192
MAX_LIMIT = 30

[JOINT_0]
TYPE = LINEAR
HOME = 0.0
FERROR = 10.0
MIN_FERROR = 10.0
MAX_VELOCITY = 300
MAX_ACCELERATION = 2000
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 400
STEPGEN_MAXACCEL = 4000
P = 1000
I = 0
D = 0
FF0 = 0
FF1 = 1
FF2 = 0
BIAS = 0
DEADBAND = 0
MAX_OUTPUT = 0
# these are in nanoseconds
DIRSETUP = 1000
DIRHOLD = 1000
STEPLEN = 1000
STEPSPACE = 1000
STEP_SCALE = -20000




# AXIS Y JOINT 1

setp pid.y.Pgain [JOINT_1]P
setp pid.y.Igain [JOINT_1]I
setp pid.y.Dgain [JOINT_1]D
setp pid.y.bias [JOINT_1]BIAS
setp pid.y.FF0 [JOINT_1]FF0
setp pid.y.FF1 [JOINT_1]FF1
setp pid.y.FF2 [JOINT_1]FF2
setp pid.y.deadband [JOINT_1]DEADBAND
setp pid.y.maxoutput [JOINT_1]MAX_OUTPUT
setp pid.y.error-previous-target true
# This setting is to limit bogus stepgen
# velocity corrections caused by position
# feedback sample time jitter.
setp pid.y.maxerror 0.012700

net y-index-enable => pid.y.index-enable
net y-enable => pid.y.enable
net y-pos-cmd => pid.y.command
net y-pos-fb => pid.y.feedback
net y-output <= pid.y.output

# Step Gen signals/setup

setp hm2_5i25.0.stepgen.01.dirsetup [JOINT_1]DIRSETUP
setp hm2_5i25.0.stepgen.01.dirhold [JOINT_1]DIRHOLD
setp hm2_5i25.0.stepgen.01.steplen [JOINT_1]STEPLEN
setp hm2_5i25.0.stepgen.01.stepspace [JOINT_1]STEPSPACE
setp hm2_5i25.0.stepgen.01.position-scale [JOINT_1]STEP_SCALE
setp hm2_5i25.0.stepgen.01.step_type 0
setp hm2_5i25.0.stepgen.01.control-type 1
setp hm2_5i25.0.stepgen.01.maxaccel [JOINT_1]STEPGEN_MAXACCEL
setp hm2_5i25.0.stepgen.01.maxvel [JOINT_1]STEPGEN_MAXVEL

# ---closedloop stepper signals---

net y-pos-cmd <= joint.1.motor-pos-cmd
net y-vel-cmd <= joint.1.vel-cmd
net y-output => hm2_5i25.0.stepgen.01.velocity-cmd
net y-pos-fb <= hm2_5i25.0.stepgen.01.position-fb
net y-pos-fb => joint.1.motor-pos-fb
net y-enable <= joint.1.amp-enable-out
net y-enable => hm2_5i25.0.stepgen.01.enable
Přílohy
BROTHER_TC_201.zip
(8.93 KiB) Staženo 73 x
SN320,SUI 32 CNC,Maho 700 CNC, Mikron UME 600, Boley BKN 100C, Brother TC 201
Uživatelský avatar
robokop
Site Admin
Příspěvky: 22395
Registrován: 10. 7. 2006, 12:12
Bydliště: Praha
Kontaktovat uživatele:

15. 2. 2023, 6:03

Pouzij osciloskop a vytahni si treba rychlost osy a error osy.
Nekde ti to neco limituje.
Zkontroluj si zda mas stejne nastavene max rychlosti a akcelerace osy a jointu. Joint by mel byt stejny nebo vetsi.
Koukni se na PID zda mas dostatecne P

Ta hlaska znamena ze pozadovana poloha z motion planeru a vracena poloha z citace vydanych kroku se prilis odchylila
Vsechna prava na chyby vyhrazena (E)
lukin1156
Příspěvky: 579
Registrován: 7. 11. 2012, 8:42

15. 2. 2023, 7:10

Není možné že by Mesa nestíhala takový počet pulzů?
SN320,SUI 32 CNC,Maho 700 CNC, Mikron UME 600, Boley BKN 100C, Brother TC 201
Uživatelský avatar
robokop
Site Admin
Příspěvky: 22395
Registrován: 10. 7. 2006, 12:12
Bydliště: Praha
Kontaktovat uživatele:

15. 2. 2023, 11:05

Nepravdepodobne ale nepocital jsem to
Ale ta konfigurace je zjevne nesmyslna. Viz ty limity.

Osa ma limit rychlosti 400 a pak joint ktery vykonava ten pohyb osy ma limit 300 to je samozrejme jeden z duvodu ktery dokaze vygenerovat tuto hlasku.
Ale v uryvku konfigurace neni uplne jasne zda to mas presne takhle blbe.

Pak samozrejme chybi nejaka ta analyza osciloskopem.
Tu sem pridej. A pripadne komplet configy
Vsechna prava na chyby vyhrazena (E)
Uživatelský avatar
zz912
Příspěvky: 1357
Registrován: 25. 5. 2008, 7:16

16. 2. 2023, 2:48

Zvetsi si i hodnotu STEPGEN_MAXVEL na dvojnasobek.

Chtel jsem, aby to opravili defaultne ve zdrojacich, ale taky me tlacili do toho osciloskopu. Ovšem s LCNC osciloskopem vždy bojuji a nedal jsem to. Tak to tema zapadlo v propadlisti dejin.
viewtopic.php?t=42427
LinuxCNC - MESA 7i96
zz912.webnode.cz
lukin1156
Příspěvky: 579
Registrován: 7. 11. 2012, 8:42

16. 2. 2023, 2:42

Právě mi to nechtělo moc dovolit tu hodnotu zvětšit a vždy to psalo nějakou hlášku o časování stepgenu. Nakonec jsem snížil v driveru rozlišení na 1000imp. na 1mm a jezdí to normálně. Resp. jsem teď na 20m/min.
SN320,SUI 32 CNC,Maho 700 CNC, Mikron UME 600, Boley BKN 100C, Brother TC 201
Uživatelský avatar
zz912
Příspěvky: 1357
Registrován: 25. 5. 2008, 7:16

16. 2. 2023, 2:54

Ono je to logické:
STEPLEN = 1000ns = 1us = 1e-6s
STEPSPACE = 1000ns 1us = 1e-6s
=>
1impuls / 2e-6s
=>
500 000 impulzů / 1s
=>
při 20 000 pulzů / mm
=>
25 mm/s = 1500mm/s
Naposledy upravil(a) zz912 dne 18. 2. 2023, 7:04, celkem upraveno 1 x.
LinuxCNC - MESA 7i96
zz912.webnode.cz
Uživatelský avatar
robokop
Site Admin
Příspěvky: 22395
Registrován: 10. 7. 2006, 12:12
Bydliště: Praha
Kontaktovat uživatele:

16. 2. 2023, 3:24

zkusim to rozvest
1. je treba nastavit delky pulzu, mezer a dalsi casove konstanty dle limitu ktere ma driver
ale je nezadouci je delat zbytecne dlouhe protoze dle toho vypoctu pak vychazi limitni rychlost toho driveru jak vypocetl zz
Vsechna prava na chyby vyhrazena (E)
Odpovědět

Zpět na „LinuxCNC - drive pod nazvem EMC2“