Hi Vadim, hope you are having a nice day!
22 Hоя 03, Vadim Vysotskiy wrote to All:
VV> Hеобходимо поддеpживать темпеpатуpу инеpционного нагpевателя железкой VV> на 90S8515. Тpиггеpный способ не подходит из-за большой инеpционности VV> - пеpегpев. Подскажите способы pеализации, ссылки, _фоpмулы_ VV> (подходящие для микpоконтpоллеpа). В высшей математике не силен. Если VV> можно - фоpмулы попpоще и понадежней :)
PID-регулятор. Вряд ли можно предложить что-то проще.
Pout(t) = Kp * (e(t) + I(t) + D(t)), где
Pout - выходная мощность; Kp - пропорциональная часть (усиление); e(t) - ошибка с настоящий момент времени (Tуст - Т); I(t) - интегральная часть:
I(t) = I(t-1) + e * Th / Ti, где Ti - постоянная времени интегрирования, Th
- период дискретизации.
D(t) - диф-часть:
D(t) = Td * (e(t) - e(t-1)) / Th, где Td - постоянная времени диференцирования.
Выходная мощьность нормируется к какому-нибудь произвольному числу, например
100, т.е. 100 - полная мощность, 0 - нагреватель выключен. Промежуточные значения формировать можно ШИМом.
Коэффициеты Kp, Ti, Td в простейшем случае рассчитываются по Циглеру-Hиколсу.
Для рассчета необходимо знать Ku (ultimate gain). Для этого при настройке система включается в релейный (триггерный) режим с небольшим гистерезисом. Hужно зафиксировать амплитуду A и период Tk установившихся колебаний температуры нагревателя (объекта).
Ku = (4*d)/(Pi*A), где d - амплитуда колебаний выходной мощности (в нашем случае 50, т.к. полная мощность 100), А - амплитуда колебаний температуры (не перепутай с двойной амплитудой). Эта формула упрощенная, но дает неплохие результаты.
Тогда по Циглеру-Hиколсу:
Kp = 0.6 * Ku; Ti = Tk / 2; Td = Tk / 8;
Все приведенные выше формулы относятся к "классическому" регулятору и в чистом виде на практике почти не применяются, т.к.такой регулятор чувствителен к шуму и имеет побочный эффект в виде возможного насыщения интеграла (и как следствие большого вылета при включении). Как решать эти проблемы в общем-то тоже общеизвестно, но за этим лучше обратиться к литературе.
WBR, AVB
p.s. Писал все по памяти, т.ч. могут быть ошибки.
ICQ# 43835774 mailto: avb<at>dialup.etr.ru