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

- Сообщения: 2210
- Зарегистрирован: 20 июл 2012, 15:49
- Репутация: 266
- Заслуга: IQ32
- Настоящее имя: Алексей
- Откуда: Прага
- Контактная информация:
Re: AT_PID для автонастройки параметров PID servo
Nick, я тебе помогу с дизайном.
вот смотри:
окно, большая часть занята textbox, внизу посередине кнопка "Сделать красиво". из спикера должна литься гнилостная миди мелодия.
жмем, в текстбоксе начинают бежать непонятные цифры, куски исходного кода на бейсике, надписи TOP SECRET и тп. при этом, изображение обязятельно должно еще проецироваться на офигевшую рожу оператора.
ты хакеров не смотрел чтоли
PS: извиняюсь, меня чето прет. перенедоработал наверное.
вот смотри:
окно, большая часть занята textbox, внизу посередине кнопка "Сделать красиво". из спикера должна литься гнилостная миди мелодия.
жмем, в текстбоксе начинают бежать непонятные цифры, куски исходного кода на бейсике, надписи TOP SECRET и тп. при этом, изображение обязятельно должно еще проецироваться на офигевшую рожу оператора.
ты хакеров не смотрел чтоли
PS: извиняюсь, меня чето прет. перенедоработал наверное.
Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: AT_PID для автонастройки параметров PID servo
Как вам вот такой вариант интерфейса?Nick писал(а):Надо придумать интерфейс! Чтобы было удобно, чтобы можно было задавать различные входные функции и чтобы можно было корректировать начальные значения и пределы значений.
А еще надо бы придумать характеристическукю функцию - просто Ferror или что-то другое?
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- Алексс
- Почётный участник

- Сообщения: 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
Чуть выше ссылка есть: Модернизация 6720вф2 #171
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: AT_PID для автонастройки параметров PID servo
Так там ничего нет... и hal к нему отдельный надо писать....UAVpilot писал(а):Как вам вот такой вариант интерфейса?
О кстати, там надо не оси тюнить а pid по номерам... Или с осями понятнее?
Ты же его уже видел вроде?!?Алексс писал(а):где скачать ?!! очень надо!
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: AT_PID для автонастройки параметров PID servo
Вот config.hal для AG400 (5i25+7i77), очень сложный? Попробуй найти там номера осей.Nick писал(а):Так там ничего нет... и hal к нему отдельный надо писать....
О кстати, там надо не оси тюнить а pid по номерам... Или с осями понятнее?
Код: Выделить всё
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
А это точно от того станка? У тебя всего одна ось?
Я думаю вот бы так сделать, чтобы на рабочем конфиге можно было просто отлинковать pid оси и управлять им из тюнера...
Я думаю вот бы так сделать, чтобы на рабочем конфиге можно было просто отлинковать pid оси и управлять им из тюнера...
- Алексс
- Почётный участник

- Сообщения: 2210
- Зарегистрирован: 20 июл 2012, 15:49
- Репутация: 266
- Заслуга: IQ32
- Настоящее имя: Алексей
- Откуда: Прага
- Контактная информация:
Re: AT_PID для автонастройки параметров PID servo
r u fkn kidding me ?!??!?This attachment is hidden for guests. Please log in or register to see it.
забыл наверное...Nick писал(а):Ты же его уже видел вроде
мне оно никогда не надо было.
Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: AT_PID для автонастройки параметров PID servo
специально для лиц без регистрации 
- Вложения
-
- pid_tuning.zip
- (2.52 КБ) 490 скачиваний
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: AT_PID для автонастройки параметров PID servo
pid один, ибо крутилок один комплект. А в входы и выходы siggen и pid мультиплексируются на нужную ось - там в интерфейсе переключатель есть.Nick писал(а):А это точно от того станка? У тебя всего одна ось?![]()
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- Алексс
- Почётный участник

- Сообщения: 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
Без этого не будет работать.Nick писал(а):специально для лиц без регистрации
- Вложения
-
- pid_tuning-865580c9afe8b9d643729e5d46b8e241.zip
- (1.93 КБ) 489 скачиваний
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- Алексс
- Почётный участник

- Сообщения: 2210
- Зарегистрирован: 20 июл 2012, 15:49
- Репутация: 266
- Заслуга: IQ32
- Настоящее имя: Алексей
- Откуда: Прага
- Контактная информация:
Re: AT_PID для автонастройки параметров PID servo
еще, ЕЩЕ ! 
ну вот, теперь не потеряется.
ну вот, теперь не потеряется.
Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
Re: AT_PID для автонастройки параметров PID servo
а нафига вообще интерфейс? вы на экран с тюнингом собираетесь каждый день пялиться?
разовое это дело.
прогнал пару раз и забыл.
я себе делаю без интерфейса.
разовое это дело.
прогнал пару раз и забыл.
я себе делаю без интерфейса.
Re: AT_PID для автонастройки параметров PID servo
а что дает лучший результат:
1: P I D
2: P FF0 FF1 FF2
по какой системе лучше управляется серва?
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
лучше все вместе!
FF могут дополнительно компенсировать силы инерции или например вес оси - ось Z обычно вниз идет легче, чем вверх...
FF могут дополнительно компенсировать силы инерции или например вес оси - ось Z обычно вниз идет легче, чем вверх...
Re: AT_PID для автонастройки параметров PID servo
да вроде в исходниках нарисовано, что раздельноNick писал(а):лучше все вместе!
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: AT_PID для автонастройки параметров PID servo
В каком смысле раздельно?
