ПИД регулятор для MESA плат
-
- Мастер
- Сообщения: 516
- Зарегистрирован: 21 янв 2012, 00:23
- Репутация: 32
- Откуда: Ивано-Франковск
- Контактная информация:
ПИД регулятор для MESA плат
Есть вопрос - где находится ПИД регулятор для MESA плат ? Непосредственно в прошивке - и синхронизацией движений и планировкой траектории занимается MESA плата - или эту функцию выполняет планировщик от LINUXCNC . Данный вопрос порожден желанием использовать 7I90HD в управлении через SPI - если ПИД регулятор в 7I90HD -то на неравномерность обмена данными в границах 0.5-0.9мс можна смотреть сквозь пальцы -ПИД регуляторы каждой оси своими временами задержек исправят ситуацию . Если ПИД сидит в компьютере - а по SPI будут идти данные на управления осями - задержки и неравномерность существенны .
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ПИД регулятор для MESA плат
"местонахождение" пид регуляторов (в принципе) можно "вычислять" по настроечным коэффициентамvmarkiv писал(а):где находится ПИД регулятор для MESA плат
(ведь без возможности настройки последних это уже не полноценный пид регулятор)
а в емс мы настраиваем только компонент PID в Hal
-
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: ПИД регулятор для MESA плат
такой вот вопрос возник по опции DEADBAND в компоненте pid:
когда ошибка (error) меньше по модулю DEADBAND ,то мы принимаем error = 0
разрешающая способность датчика fb не позволяет точней сделать вычисления и мы удовлетворяемся и_этим))
но в чем физический смысл каждый раз уменьшать(увеличивать) рассогласование на эту самую величину DEADBAND:
если цель - игнорировать ошибку меньше некоторой величины,то почему бы просто не :
когда ошибка (error) меньше по модулю DEADBAND ,то мы принимаем error = 0
разрешающая способность датчика fb не позволяет точней сделать вычисления и мы удовлетворяемся и_этим))
но в чем физический смысл каждый раз уменьшать(увеличивать) рассогласование на эту самую величину DEADBAND:
Код: Выделить всё
/* apply the deadband */
if (tmp1 > *(pid->deadband)) {
tmp1 -= *(pid->deadband);
} else if (tmp1 < -*(pid->deadband)) {
tmp1 += *(pid->deadband);
} else {
tmp1 = 0;
Код: Выделить всё
if ((tmp1 < *(pid->deadband)) || (tmp1 > -*(pid->deadband))) {
tmp1 = 0;
}
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: ПИД регулятор для MESA плат
Так в описании же про это написано в конце.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...