Цитата:
Сообщение от tvf
6. Библиотечный макрос регулятора не то что бы совсем не рабочий, но в ряде ситуаций ведет себя неадекватно. Возьмем к примеру такую ситуацию:
- Датчик=Уставка. выход регулятора 0, клапан стоит.
- Датчик<Уставка. Регулятор начинает открывать клапан.
- Датчик=Уставка. Регулятор продолжает открывать клапан. Причем до бесконечности, пока не настанет ситуация когда Датчик>Уставка. Это ошибка.
В принципе допилить библиотечный макрос до рабочего состояния возможно, но макрос защищен от редактирования. Надо то всего лишь:
- зафиксировать значение на выходе аналогового ПИД в конце периода ШИМ.
- сбросить ПИД.
Причем именно в такой последовательности. Только имеет ли это смысл?
Так что смотрите, сравнивайте, пишите отзывы.
|
Библиотечный макрос не имеет этой проблемы. Точнее имеет, но только в идеализированных матмоделях, не до конца учитывающих поведение живого объекта.
PS. Кстати, iReset - тот самый сброс, который вы предлагаете ввести в регулятор. Просто он работает чуть хитрее, чем банальный сброс в конце каждого цикла.
PPS. Попробуйте I=0, библиотечный регулятор станет работать понятнее для вас.