вот , для тех , кому окажутся полезными разные настройки пид в зависимости от направления движения ...
(только попробовал прописать - так что проверить еще в работе надо
)
первое ,что необходимо сделать - поменять назначение пинов компонента pid
(исходный код в файле
pid.c)
делаем пин Pgain входом:
Код: Выделить всё
retval = hal_pin_float_newf(HAL_IN, &(addr->pgain), comp_id,
"%s.Pgain", prefix);
исправленый файл можно положить в домашнюю папку и в терминале выполнить:
в хал пропишем:
Код: Выделить всё
loadrt pid num_chan=1
addf pid.0.do-pid-calcs servo-thread
loadrt abs count=1
addf abs.0 servo-thread
loadrt mux2 count=1
addf mux2.0 servo-thread
setp mux2.0.in0 1
setp mux2.0.in1 2
net abs axis.0.joint-vel-cmd abs.0.in
net sel mux2.0.sel abs.0.is-positive
net pid_P mux2.0.out pid.0.Pgain
(в этом примере у нас пропорциональный коэфициент P равен 1 когда едем "вперед" , и равен 2,когда едем "назад")))):
https://www.youtube.com/watch?v=dPM3wr10hbE
подобным образом поступаем и с остальными коэфициентами пид...
Последний раз редактировалось
nkp 03 сен 2013, 23:02, всего редактировалось 4 раза.