AT_PID для автонастройки параметров PID servo

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
pkasy
Мастер
Сообщения: 1139
Зарегистрирован: 15 мар 2013, 09:39
Репутация: 45
Откуда: Владивосток

Re: AT_PID для автонастройки параметров PID servo

Сообщение pkasy »

Алексс писал(а):тогда замутим красивый интерфейс!
так винда построена и мак.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: AT_PID для автонастройки параметров PID servo

Сообщение Nick »

Алексс писал(а):- как настроить pid?
- да пес его знает.
- тогда замутим красивый интерфейс!
Черт насколько точно и емко все выразил! :hehehe: :lol:

но всетаки, интерфейс - сложная, нудная и чуть ли не самая важная задача. Надо продумать, как пользователь будет общаться с этой автонастройкой...
можно и через консоль сделать, гдавное, чтобы было понятно и удобно...
Аватара пользователя
Алексс
Почётный участник
Почётный участник
Сообщения: 2210
Зарегистрирован: 20 июл 2012, 15:49
Репутация: 266
Заслуга: IQ32
Настоящее имя: Алексей
Откуда: Прага
Контактная информация:

Re: AT_PID для автонастройки параметров PID servo

Сообщение Алексс »

Nick, я тебе помогу с дизайном.
вот смотри:
окно, большая часть занята textbox, внизу посередине кнопка "Сделать красиво". из спикера должна литься гнилостная миди мелодия.

жмем, в текстбоксе начинают бежать непонятные цифры, куски исходного кода на бейсике, надписи TOP SECRET и тп. при этом, изображение обязятельно должно еще проецироваться на офигевшую рожу оператора.

ты хакеров не смотрел чтоли :)

PS: извиняюсь, меня чето прет. перенедоработал наверное.
Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: AT_PID для автонастройки параметров PID servo

Сообщение Serg »

Nick писал(а):Надо придумать интерфейс! Чтобы было удобно, чтобы можно было задавать различные входные функции и чтобы можно было корректировать начальные значения и пределы значений.
А еще надо бы придумать характеристическукю функцию - просто Ferror или что-то другое?
Как вам вот такой вариант интерфейса? :hehehe:
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Алексс
Почётный участник
Почётный участник
Сообщения: 2210
Зарегистрирован: 20 июл 2012, 15:49
Репутация: 266
Заслуга: IQ32
Настоящее имя: Алексей
Откуда: Прага
Контактная информация:

Re: AT_PID для автонастройки параметров PID servo

Сообщение Алексс »

где скачать ?!! очень надо!
Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: AT_PID для автонастройки параметров PID servo

Сообщение Serg »

Чуть выше ссылка есть: Модернизация 6720вф2 #171
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: AT_PID для автонастройки параметров PID servo

Сообщение Nick »

UAVpilot писал(а):Как вам вот такой вариант интерфейса?
Так там ничего нет... и hal к нему отдельный надо писать....
О кстати, там надо не оси тюнить а pid по номерам... Или с осями понятнее?
Алексс писал(а):где скачать ?!! очень надо!
Ты же его уже видел вроде?!?
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: AT_PID для автонастройки параметров PID servo

Сообщение Serg »

Nick писал(а):Так там ничего нет... и hal к нему отдельный надо писать....
О кстати, там надо не оси тюнить а pid по номерам... Или с осями понятнее?
Вот config.hal для AG400 (5i25+7i77), очень сложный? Попробуй найти там номера осей. :)

Код: Выделить всё

loadrt threads name1=servo-thread period1=1000000
loadrt pid num_chan=1

loadrt hostmot2
loadrt hm2_pci config=" num_encoders=6 num_pwmgens=0 num_3pwmgens=0 num_stepgens=0 sserial_port_0=000xxxxx "
setp     hm2_5i25.0.watchdog.timeout_ns 10000000

loadrt siggen
loadrt line4to2 count=2
loadrt mux4 count=2
loadrt toggle
loadrt passthru count=8
loadrt reciprocal
loadrt logic personality=0x203
loadrt tristate_float names=xen,yen,zen

loadusr -Wn gui0 pyvcp -c gui0 servo-tuning-gui.xml

# ################################################
# THREADS
# ################################################

addf hm2_5i25.0.read servo-thread
addf line4to2.0 servo-thread
addf line4to2.1 servo-thread
addf mux4.0 servo-thread
addf mux4.1 servo-thread
addf pid.0.do-pid-calcs servo-thread
addf hm2_5i25.0.write servo-thread
addf hm2_5i25.0.pet_watchdog servo-thread
addf siggen.0.update servo-thread
addf toggle.0 servo-thread
addf passthru.0 servo-thread
addf passthru.1 servo-thread
addf passthru.2 servo-thread
addf passthru.3 servo-thread
addf passthru.4 servo-thread
addf passthru.5 servo-thread
addf passthru.6 servo-thread
addf passthru.7 servo-thread
addf reciprocal.0 servo-thread
addf logic.0 servo-thread
addf xen servo-thread
addf yen servo-thread
addf zen servo-thread

# ################
# Siggen
# ################

net period <= gui0.period-f => reciprocal.0.in

net amplitude <= gui0.amplitude-f => siggen.0.amplitude
net frequency <= reciprocal.0.out => siggen.0.frequency

net square-signal <= siggen.0.square => mux4.0.in0
net triangle-signal <= siggen.0.triangle => mux4.0.in1
net sine-signal <= siggen.0.sine => mux4.0.in2

net square-select <= gui0.waveform-selection.Square => line4to2.0.in0
net triangle-select <= gui0.waveform-selection.Triangle => line4to2.0.in1
net sine-select <= gui0.waveform-selection.Sine => line4to2.0.in2

net mux0-select-0 <= line4to2.0.out0 => mux4.0.sel0
net mux0-select-1 <= line4to2.0.out1 => mux4.0.sel1

# ################
# Enable
# ################

net momentary-enable <= gui0.enable => toggle.0.in
net global-enable <= toggle.0.out => pid.0.enable

# ################
# PID
# ################

net p-gain-in <= gui0.Pgain => passthru.0.in 
net p-gain-out <= passthru.0.out => pid.0.Pgain

net i-gain-in <= gui0.Igain => passthru.1.in 
net i-gain-out <= passthru.1.out => pid.0.Igain

net d-gain-in <= gui0.Dgain => passthru.2.in 
net d-gain-out <= passthru.2.out => pid.0.Dgain

net pid-bias-in <= gui0.bias => passthru.3.in
net pid-bias-out <= passthru.3.out => pid.0.bias

net pid-ff0-in <= gui0.ff0 => passthru.4.in
net pid-ff0-out <= passthru.4.out => => pid.0.FF0

net pid-ff1-in <= gui0.ff1 => passthru.5.in
net pid-ff1-out <= passthru.5.out => => pid.0.FF1

net pid-ff2-in <= gui0.ff2 => passthru.6.in
net pid-ff2-out <= passthru.6.out => => pid.0.FF2

net pid-deadband-in <= gui0.deadband => passthru.7.in
net pid-deadband-out <= passthru.7.out => pid.0.deadband

setp pid.0.maxoutput 10.0000

net pid-command <= mux4.0.out => pid.0.command
net pid-output <= pid.0.output
net pid-feedback <= mux4.1.out => pid.0.feedback

net x-axis-feedback => mux4.1.in0
net y-axis-feedback => mux4.1.in1
net z-axis-feedback => mux4.1.in2

net x-axis-select <= gui0.axis-selection.X => line4to2.1.in0
net y-axis-select <= gui0.axis-selection.Y => line4to2.1.in1
net z-axis-select <= gui0.axis-selection.Z => line4to2.1.in2

net mux1-select-0 <= line4to2.1.out0 => mux4.1.sel0
net mux1-select-1 <= line4to2.1.out1 => mux4.1.sel1


net orout logic.0.or => hm2_5i25.0.7i77.0.1.analogena

# ################
# X Axis
# ################

setp   hm2_5i25.0.7i77.0.1.analogout0-scalemax  -10.0
setp   hm2_5i25.0.7i77.0.1.analogout0-minlim    -10.0
setp   hm2_5i25.0.7i77.0.1.analogout0-maxlim    10.0

net x-axis-select => logic.0.in-00

# encoder feedback
setp hm2_5i25.0.encoder.00.counter-mode 0
setp hm2_5i25.0.encoder.00.filter 1
setp hm2_5i25.0.encoder.00.index-invert 0
setp hm2_5i25.0.encoder.00.index-mask 0
setp hm2_5i25.0.encoder.00.index-mask-invert 0
setp  hm2_5i25.0.encoder.00.scale  1000

net x-axis-feedback <= hm2_5i25.0.encoder.00.position

net pid-output => xen.in
net pid-outx xen.out => hm2_5i25.0.7i77.0.1.analogout0
net x-axis-select => xen.enable

# ################
# Y Axis
# ################

setp   hm2_5i25.0.7i77.0.1.analogout1-scalemax  -10.0
setp   hm2_5i25.0.7i77.0.1.analogout1-minlim    -10.0
setp   hm2_5i25.0.7i77.0.1.analogout1-maxlim    10.0

net y-axis-select => logic.0.in-01

# encoder feedback
setp hm2_5i25.0.encoder.01.counter-mode 0
setp hm2_5i25.0.encoder.01.filter 1
setp hm2_5i25.0.encoder.01.index-invert 0
setp hm2_5i25.0.encoder.01.index-mask 0
setp hm2_5i25.0.encoder.01.index-mask-invert 0
setp  hm2_5i25.0.encoder.01.scale  1000

net y-axis-feedback <= hm2_5i25.0.encoder.01.position

net pid-output => yen.in
net pid-outy yen.out => hm2_5i25.0.7i77.0.1.analogout1
net y-axis-select => yen.enable


# ################
# Z Axis
# ################

setp   hm2_5i25.0.7i77.0.1.analogout2-scalemax  -10.0
setp   hm2_5i25.0.7i77.0.1.analogout2-minlim    -10.0
setp   hm2_5i25.0.7i77.0.1.analogout2-maxlim    10.0

net z-axis-select => logic.0.in-02

# encoder feedback
setp hm2_5i25.0.encoder.02.counter-mode 0
setp hm2_5i25.0.encoder.02.filter 1
setp hm2_5i25.0.encoder.02.index-invert 0
setp hm2_5i25.0.encoder.02.index-mask 0
setp hm2_5i25.0.encoder.02.index-mask-invert 0
setp  hm2_5i25.0.encoder.02.scale  -1000

net z-axis-feedback <= hm2_5i25.0.encoder.02.position

net pid-output => zen.in
net pid-outz zen.out => hm2_5i25.0.7i77.0.1.analogout2
net z-axis-select => zen.enable


# ################
# Let's Go!
# ################


net cnc-enable => hm2_5i25.0.7i77.0.0.output-00
sets cnc-enable true
net M6-non => hm2_5i25.0.7i77.0.0.output-02
sets M6-non true

start
loadusr halscope
waitusr gui0
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: AT_PID для автонастройки параметров PID servo

Сообщение Nick »

А это точно от того станка? У тебя всего одна ось? :)

Я думаю вот бы так сделать, чтобы на рабочем конфиге можно было просто отлинковать pid оси и управлять им из тюнера...
Аватара пользователя
Алексс
Почётный участник
Почётный участник
Сообщения: 2210
Зарегистрирован: 20 июл 2012, 15:49
Репутация: 266
Заслуга: IQ32
Настоящее имя: Алексей
Откуда: Прага
Контактная информация:

Re: AT_PID для автонастройки параметров PID servo

Сообщение Алексс »

This attachment is hidden for guests. Please log in or register to see it.
r u fkn kidding me ?!??!?
:(
Nick писал(а):Ты же его уже видел вроде
забыл наверное...
мне оно никогда не надо было.
Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: AT_PID для автонастройки параметров PID servo

Сообщение Nick »

специально для лиц без регистрации :hehehe:
Вложения
pid_tuning.zip
(2.52 КБ) 490 скачиваний
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: AT_PID для автонастройки параметров PID servo

Сообщение Serg »

Nick писал(а):А это точно от того станка? У тебя всего одна ось? :)
pid один, ибо крутилок один комплект. А в входы и выходы siggen и pid мультиплексируются на нужную ось - там в интерфейсе переключатель есть.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Алексс
Почётный участник
Почётный участник
Сообщения: 2210
Зарегистрирован: 20 июл 2012, 15:49
Репутация: 266
Заслуга: IQ32
Настоящее имя: Алексей
Откуда: Прага
Контактная информация:

Re: AT_PID для автонастройки параметров PID servo

Сообщение Алексс »

Nick, от лица без регистрации отдельное спасибо!
Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: AT_PID для автонастройки параметров PID servo

Сообщение Serg »

Nick писал(а):специально для лиц без регистрации :hehehe:
Без этого не будет работать. ;)
Вложения
pid_tuning-865580c9afe8b9d643729e5d46b8e241.zip
(1.93 КБ) 489 скачиваний
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Алексс
Почётный участник
Почётный участник
Сообщения: 2210
Зарегистрирован: 20 июл 2012, 15:49
Репутация: 266
Заслуга: IQ32
Настоящее имя: Алексей
Откуда: Прага
Контактная информация:

Re: AT_PID для автонастройки параметров PID servo

Сообщение Алексс »

еще, ЕЩЕ ! :)
ну вот, теперь не потеряется.
Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
pkasy
Мастер
Сообщения: 1139
Зарегистрирован: 15 мар 2013, 09:39
Репутация: 45
Откуда: Владивосток

Re: AT_PID для автонастройки параметров PID servo

Сообщение pkasy »

а нафига вообще интерфейс? вы на экран с тюнингом собираетесь каждый день пялиться?
разовое это дело.
прогнал пару раз и забыл.
я себе делаю без интерфейса.
pkasy
Мастер
Сообщения: 1139
Зарегистрирован: 15 мар 2013, 09:39
Репутация: 45
Откуда: Владивосток

Re: AT_PID для автонастройки параметров PID servo

Сообщение pkasy »

а что дает лучший результат:
1: P I D
2: P FF0 FF1 FF2
по какой системе лучше управляется серва?
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: AT_PID для автонастройки параметров PID servo

Сообщение Nick »

лучше все вместе!
FF могут дополнительно компенсировать силы инерции или например вес оси - ось Z обычно вниз идет легче, чем вверх...
pkasy
Мастер
Сообщения: 1139
Зарегистрирован: 15 мар 2013, 09:39
Репутация: 45
Откуда: Владивосток

Re: AT_PID для автонастройки параметров PID servo

Сообщение pkasy »

Nick писал(а):лучше все вместе!
да вроде в исходниках нарисовано, что раздельно
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: AT_PID для автонастройки параметров PID servo

Сообщение Nick »

В каком смысле раздельно?
Ответить

Вернуться в «LinuxCNC»