Незнаю может кому интересно будет... У меня возникла необходимость прикрутить к электроплитке регулятор мощности. И как бы всё просто решается и городить ничего не надо (схема в интернете димера есть) но пришла беда от куда не ждал😂 Война у нас и почта не работает а соответственно в интернете заказать что-то нельзя)) Не нашел я резистор на 500к . Ну вот порылся в интернете и нашел у Алекса Гайвера димер для нагревателей на пропуске полупериодов, ну и переписал его под Аttiny13 всё работает... Ну так я к чему? Раз уж я заморочился то пошел дальше, избавился в ПИД регуляторе от чисел с плавающей точкой, заменил ШИМ на код димера Алекса, добавил переключение между несколькими уставками и получил регулятор на копеечной Attiny13 и копеечном NTC терморезисторе для принтера для контроля трёх заданых значений темпратуры😊 По памяти в притык, по ножкам тоже...😅 По точности в протеусе в п🎉ределах трех значений АЦП (в метале не собирал но думаю в пределах 1-2 градусов температуру держать будет) 😊
А стабилизацию двигателя можно в протеусе посмотреть.?Тут наверное лучше использовать два таймера и одно прерывание по пину.И использовать аппаратно-программную задержку.А выражение a+=b*c можно трактовать как a=a+b*c?
У меня получились коэффициенты: float Kp = 0.1338; float Ki = 0.061; float Kd = 0.073; Так же работает в Proteus. Проблема есть когда например переключаешь уставку с 900 на 100, то температура падает до 0 и не включается/не растет несколько секунд. Но через несколько секунд растет до заданного значения 100. Пробовал ещё пару функций ПИД - везде проблемы.
Алгоритм кастрированный. Проблема в расчёте интегральной составляющей. Вклад интегральный составляющей берётся в учет только в определенном диапазоне времени, обычно 3... 6 периодов свободных колебаний регулятора. Тогда и вылета не будет такого.
Спасибо. В первой части дошло как работает каждое из звеньев. Смотрел до этого других, если с пропорциональной составляющей понятно и так, то с двумя другими нет токового объяснения.
"Интегральный" значит объединяющий, например интегральная микросхема; "дифференциальный" значит разностный, например дифференциальный вход усилителя, а вот регулятор "интегрирующий", т.е. вычисляющий интеграл, или "дифференцирующий", т.е. вычисляющий производную.
Не, ну если контроллер задействован, пусть уже и коефициенты считает и сохраняет.Можно на термопереключателе сделать тогда такой регулятор, а не на мелкосхеме.