ПИД регулятор для MESA плат

Работа с платами MESA, подключение, конфигурация.
vmarkiv
Мастер
Сообщения: 516
Зарегистрирован: 21 янв 2012, 00:23
Репутация: 32
Откуда: Ивано-Франковск
Контактная информация:

ПИД регулятор для MESA плат

Сообщение vmarkiv »

Есть вопрос - где находится ПИД регулятор для MESA плат ? Непосредственно в прошивке - и синхронизацией движений и планировкой траектории занимается MESA плата - или эту функцию выполняет планировщик от LINUXCNC . Данный вопрос порожден желанием использовать 7I90HD в управлении через SPI - если ПИД регулятор в 7I90HD -то на неравномерность обмена данными в границах 0.5-0.9мс можна смотреть сквозь пальцы -ПИД регуляторы каждой оси своими временами задержек исправят ситуацию . Если ПИД сидит в компьютере - а по SPI будут идти данные на управления осями - задержки и неравномерность существенны .
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: ПИД регулятор для MESA плат

Сообщение nkp »

vmarkiv писал(а):где находится ПИД регулятор для MESA плат
"местонахождение" пид регуляторов (в принципе) можно "вычислять" по настроечным коэффициентам ;)
(ведь без возможности настройки последних это уже не полноценный пид регулятор)
а в емс мы настраиваем только компонент PID в Hal
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: ПИД регулятор для MESA плат

Сообщение nkp »

такой вот вопрос возник по опции DEADBAND в компоненте pid:
когда ошибка (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 плат

Сообщение Serg »

Так в описании же про это написано в конце. :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Ответить

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