Коэффициент при интегральной составляющей не может быть равным нулю, т.к. при этом будет деление на 0 (см. формулу ПИД).
Я думаю надо так делать. Если выход ПИД больше, например, 25%, то коэффициент при интегральной составляющей надо задать очень большим что бы не сильно копилась сумма. Когда выход ПИД становится меньше 25% можно задать коэффициенту значение 25...100.
Последний раз редактировалось IVM; 23.11.2023 в 19:02.
Вот мой макрос PID-регулятора.
Формула, не долго думая, была взята с руководства ТРМ10.
Кстати, визуально очень похож на вариант Dimensy, хотя друг у друга мы точно ничего не подсматривали
Безымянный.jpg
Деление на ноль в интегральных и дифф. коэффициентов тупо обойдено блоком fSEL
Тоже был подобный прецендент, правда давно, можно сказать во времена царя Гороха, тогда ещё вещественных SEL-ей не было, короче, намалевал макрос двустороннего ограничения вещественной переменной, Василий Кашуба говорит что раньше такой макрос придумал, так я и спорить не стал, может он раньше придумал, что это меняет?! Главное, что макрос такой появился!
И свою ложку дёгтя хотел добавить: ПИД-регулятор состоит из трёх составляющих, пропорциональной, интегральной и дифференциальной, регулятор настраивается под конкретный процесс, допустим в процессе настройки мне надо увеличить(уменьшить) только пропорциональную составляющую, в вашем варианте исполнения нет параметра(коэффициента) изменяющего только пропорциональную составляющую, короче, придется изменять в противоположную сторону другие коэффициенты, что крайне неудобно и затруднительно реализовать на практике, короче, мне кажется будет удобней сделать независимые коэффициенты для каждой составляющей!
Кстати, общий коэффициент, пропорционально изменяющий все составляющие я бы оставил!
Последний раз редактировалось Сергей0308; 23.11.2023 в 22:28.
Если проблему можно решить за деньги, это не проблема, это расходы. Бог каждому посылает проблемы по его силам. Так что одно из двух. Либо ты можешь-таки
справиться с проблемами, либо это не твои проблемы.