Jump to content
Электронщик

Настройка реального ПИ(ПИД)-регулятора температуры

Recommended Posts

Делаю себе ПИ - регулятор(или ПИД-регулятор, впринципе и ПИ хватит) с пропуском периода на STM32 все прописал все работает использую термопару + max6675 + дисплей на ili9341+ MOC3041+ симистор, все бы хорошо но когда-то делал на ардуино и коэффициенты подобрал методом проб и ошибок, сейчас отстраиваю для другого устройства, и с ардуино давно перешел на STM32  все это на  утюге, так как по мощности и по параметрам приблизительно такой же и ТЭН будет, суть в чем самый простой базовый вариант это расчет по Методу Зиглера–Никольса по реакции объекта на ступенчатое изменение управляющего воздействия. Эту характеристику объекта обычно называют кривой разгона.( и не понял так метод по реакции объекта на ступенчатое изменение управляющего воздействия и метод по отклику объекта на единичный скачок, это одно и тоже?

Ок. Взял оставил только одну P-составляющую сделал уставку 90 градусов и начал подбирать Kp - коэффициент пропорциональности,  при 0.5 вышло такое Screenshot_19.jpg.329b87cef739736fda4668c26b6269d6.jpg

, при 0.8 такое  291267601_Screenshot_21-.jpg.99fcc988766f556ade78f0a96688581e.jpg

, следовательно 0.8 это нужный вариант Kp как я понимаю, но как теперь вычесть Ki-коэффициент интегрирования, из этой статьи https://www.bookasutp.ru/Chapter5_5.aspx высчитывается так Screenshot_23.jpg.37002b6118df0090944cce762438d233.jpg

Но не понятно где взять a? K-как я понимаю это коэффициент передачи, а Ti Td- это коэффициент интегрирования и диффиринцирования соответственно?

Из методички для универа найденной в нете(прилагаю эту методичку), формулы такие Screenshot_24.jpg.1cf1888de03d207ec839f7562be5d6b3.jpg

Вообщем не понятно какие формулы правильнее, и где взять данные для формул, и как посчитать? Из этой статьи понял https://www.bookasutp.ru/Chapter5_1_4.aspx#рис. 5.29 что нужно взять 63% от шкалы температуры по градусам, соответственно если у меня температура начинается с 25 градусов и до 90 градусов это 65, а 63% это 41+ начальные 25=66 градусов проводим прямую до нашей кривой графика и чертим прямоугольный треугольник, из этого находим T и t(обозначил так тау)826766273_Screenshot_21-.jpg.d36a29b17227c16d71cf9cedcbc22e32.jpg

, а где взять k? и почему в последней картинке рассчитывается kп, если мы его уже определили экспериментально?

-

06-labtau-2014.pdf

Edited by Электронщик

Share this post


Link to post
Share on other sites

Тут вообще написано что гипотенуза треугольника должна проходить через точку перегиба кривой должен http://my.elvisti.com/shov/tune1.html

Screenshot_25.jpg.07738532413dddb86330cd8903744ab5.jpg

Тогда вот по моему графику , думаю это самый правильный вариант 2009421731_Screenshot_21-(3).jpg.8b6a000e7efea4ef69d6ebb5bd5af0f9.jpg

Осталось понять где взять Коу-коэффициент усиления объекта? И Ti, Td - это коэффициенты интегрирования и дифферинцирования? Если да то тогда Ti=2.4*30, где 30, это по моему графику величина T, и тогда если это коэффициент интегрирования то он у меня аж 72, как по мне то это много? И зачем считать Kp, если он у меня известен как 0.8 при экспременте при котором я и получил такой график?

Edited by Электронщик

Share this post


Link to post
Share on other sites

Приглашаем на вебинар «Новинки и уникальные решения Molex. На что обратить внимание и почему»

7 апреля приглашаем на вебинар, который будет интересен разработчикам и инженерам-схемотехникам, интересующимся тенденциями рынка, новыми перспективными решениями для соединений «провод-провод», «провод-плата», «плата-плата». Для инженеров КИПиА и IT будут освещены уникальные решения Molex для «удлинения» интерфейсов HDMI, DisplayPort и USB даже в условиях сильного зашумления, а также семейство бесконтактных датчиков Contrinex. Помимо этого, будет уделено внимание дальнейшему развитию направления антенн, где Molex имеет ряд интересных и уникальных решений

Подробнее

Спасибо IMHO, вот только не понял как находится а на рисунке? Вести гипотенузу до оси температуры, при этом шкалу паралельно разбить до 1, это оно и будет? По времени интегрирования и диферинцирования, это хорошо что оно посчиталось, но в моей программе я не использую это время(хотя где-то в формулах по интернету находил), а только использую коэффициент пропорциональности и коэфициент интегрирования,  а как найти коэффициент интегрирования и дифееринцирования по этому графику? Или снова эксперементально и строя график?

Share this post


Link to post
Share on other sites
8 часов назад, Электронщик сказал:

 это оно и будет?

да.

 

9 часов назад, Электронщик сказал:

 а как найти коэффициент интегрирования и дифееринцирования по этому графику?

ну так я написал как , согласно таблице 27 (которую вы привели выше), найденные коэффициенты подставляются  в уравнение 5.36 (читаем прим. к таблице).

Share this post


Link to post
Share on other sites
                     

Измеряем мощность в режиме реального времени с помощью ИС регистратора потребляемой мощности

Одной из важнейших функций обеспечения работы системы управления питанием является измерение среднего значения потребляемой мощности критичных участков цепи питания в режиме реального времени. Микросхемы регистраторов производства Maxim Integrated имеют встроенную функцию накопления измеренных значений мощности и предоставляют на выходе данные, пригодные для вычисления ее среднего значения. В статье рассматриваются различные примеры использования регистраторов для проведения критичных измерений мощности в режиме реального времени.

Подробнее

Вот формула 5.36,

Screenshot_24.jpg.747da36718fe7fea570c744138149527.jpg

но по ней не возможно найти Ki и Kd 

Вот к примеру из книг программная реализация ПИД-регулятора 

// Параметры пропорционального звена
float kp = 10; // Коэффициент пропорционального звена
// Параметры интегратора
float ki = 0.001; // Коэффициент интегрального звена
#define iMin -0.2 // Минимальное значение интегратора
#define iMax 0.2 // Максимальное значение интегратора
float iSum = 0; // Сумма ошибок (значение, накопленное в интеграторе)
// Параметры дифференциатора
float kd = 1; // Коэффициент дифференциального звена
float old_y = 0; // Предыдущее значение сигнала
float PIDctl(float error, float y)
{ float up, ui, ud;
 // Пропорциональная компонента
 up = kp*error;
 // Интегральная компонента
 iSum = iSum+error; // Накапливаем (суммируем)
 if(iSum<iMin) iSum = iMin; // Проверяем граничные значение
 if(iSum>iMax) iSum = iMax;
 ui = ki*iSum;
 // Дифференциальная компонента
 ud = kd*(y-old_y);
 old_y = y;
 return up+ui+ud;
}

Тут нигде нет времени интегрирования Ti и времени диффиринцирования Td, а только коэффициенты интегрирования ki и диффиренцирования kd

Или вот тут да есть время интегрирования Ti и времени диффиринцирования Td

void computePID() {
  int ust=0;  
  readCelsius();  
  error = ust - k;           // ошибка регулирования
  float delta_input = prevInput - k;    // изменение входного сигнала
  output = 0;
  output += (float)error * Kp;                  // пропорционально ошибке регулирования
  output += (float)delta_input * Kd / Td;    // дифференциальная составляющая
  integral += (float)error * Ki * Ti;        // расчёт интегральной составляющей
  // тут можно ограничить интегральную составляющую!
  output += integral;                           // прибавляем интегральную составляющую
  output = constrain(output, pidMin, pidMax);   // ограничиваем выход

  prevInput=k;    // формируем придедущее значение

}

Но вот как рассчитать коэффициенты ki kd ?

Вот к примеру по тому же эмперическому Методу Зиглера–Никольса, когда мы пытаемся ловить колебания регулируя kp, и измеряя их период,9 но я то пользуюсь методом по отклику системы), так вот, хоть это и не мой случай 

Screenshot_23.jpg.289d6110193fd2f3b09f629ce7d75599.jpg

 

Edited by Электронщик

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...