Stránka 1 z 1

Joint follow error

Napsal: 14. 2. 2023, 11:19
od lukin1156
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

Re: Joint follow error

Napsal: 15. 2. 2023, 6:03
od robokop
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

Re: Joint follow error

Napsal: 15. 2. 2023, 7:10
od lukin1156
Není možné že by Mesa nestíhala takový počet pulzů?

Re: Joint follow error

Napsal: 15. 2. 2023, 11:05
od robokop
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

Re: Joint follow error

Napsal: 16. 2. 2023, 2:48
od zz912
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

Re: Joint follow error

Napsal: 16. 2. 2023, 2:42
od lukin1156
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.

Re: Joint follow error

Napsal: 16. 2. 2023, 2:54
od zz912
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

Re: Joint follow error

Napsal: 16. 2. 2023, 3:24
od robokop
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