Алгоритъмът за PID управление е широко използван алгоритъм за управление, PID управлението има предимствата на регулируеми параметри, широк спектър от приложения, висока точност на управление. В практическото инженерство PID алгоритъмът може да се приложи за електромеханично управление, индустриална автоматизация, управление на роботи, управление на микропроцесори и много други области.
Настройват се трите параметъра на PID алгоритъма: константа на пропорционалност Kp, интегрална времеконстанта Ti, диференциална времеконстанта Td. Различните системи трябва да задават различни PID параметри и обикновено е необходимо да се получат оптималните параметри чрез експерименти и отстраняване на грешки. Константата на пропорционалност Kp регулира пропорцията, регулирайки съотношението на изхода и грешката на обратната връзка в системата за управление; интегралната времеконстанта Ti настройва интеграла, регулирайки натрупването на грешка в системата за управление; диференциалната времеконстанта Td настройва диференциала, регулирайки скоростта на промяна на грешката в системата за управление.
Каква е идеята за реализиране на pid алгоритъм с микроконтролер
За да се реализира алгоритъмът за PID управление на микроконтролер, следната е общата идея за реализация:
1. **Определяне на PID параметрите**:
- Според характеристиките и нуждите на действителния контролен обект изберете подходящия коефициент на пропорционалност (Kp), време за интегриране (Ti) и време за диференциране (Td).
2. **Събиране на данни от сензора**:
- Използвайте подходящи сензори (напр. сензори за температура, сензори за позиция и т.н.), за да събирате данни за обратна връзка от контролния обект в реално време.
3. **Сравнение на зададената стойност и стойността на обратната връзка**:
- Сравнете зададената стойност (желаната стойност) със стойността на обратната връзка и изчислете стойността на грешката (Грешка).
4. **PID изчисление**:
- Контролната сума (изход) се изчислява съгласно формулата на PID алгоритъма: PID=Kp * Грешка + Ki * ∫ Грешка dt + Kd * d(Грешка)/dt.
- Kp, Ki и Kd са PID параметрите, Error е стойността на грешката, ∫ Error dt обозначава интегралния член и d(Error)/dt обозначава диференциалния член.
5. **Обработка на ограничения** (по избор):
- За някои приложения може да е необходимо да се ограничи обхватът на изходната стойност, за да се избегне превишаването на приемливия обхват на контролния обект.
6. **Изходен контролен сигнал**:
- Изчисленото управляващо количество се извежда като управляващ сигнал към задвижващия механизъм (напр. двигател, клапан и т.н.), за да се реализира регулирането и управлението на контролния обект.
7. **Задайте контролна честота**:
- Според нуждите на конкретни приложения, задайте подходящата контролна честота, за да контролирате цикъла на изпълнение на алгоритъма.
8. **Цикъл на изпълнение на PID алгоритъм**:
- В цикъла-в реално време горните стъпки се изпълняват многократно, за да се следи непрекъснато стойността на обратната връзка, да се изчисли контролното количество и да се изведе контролният сигнал, за да се реализира стабилно управление на обекта.
При действителното програмиране на микроконтролера можете да изберете подходящите инструменти за разработка и език за програмиране (като C или асемблер) според конкретния модел на микроконтролера и платформата за разработка. Трябва да се отбележи, че в практическите приложения ще има много техники за оптимизиране и подобряване на PID алгоритъма, като интегрално разделяне, адаптивен PID и т.н., които могат да бъдат допълнително проучени и приложени според специфичните нужди.
Принцип и работен процес на PID регулатора
PID регулаторът се състои от три части: пропорционална (P), интегрална (I) и диференциална (D) и генерира управляващия изход чрез обработка на грешката, отклонението и скоростта на промяна на системата. Неговият работен процес включва следните стъпки:
- Получаване на целеви и обратни стойности
- Изчислете грешката
- Изчислете контролния изход въз основа на коефициента на пропорционалност, интегралния член и диференциалния член.
- Актуализиране на параметрите на контролера
- Извеждане на контролни сигнали
Реализация на STM32 код
Следва примерен код за проектиране и внедряване на PID контролер с помощта на микроконтролер STM32:
```c
#include "stm32f4xx.h"
// Дефиниране на параметрите на PID контролера
float Kp=0.5; // мащабен фактор
float Ki=0.2; // Интегрален коефициент
float Kd=0.1; // Диференциален коефициент
// Дефиниране на променливи за съхранение
плаваща зададена точка=50.0; // целева стойност
float обратна връзка=0.0; // стойност на обратната връзка
float грешка=0.0; // грешка
float last_error=0.0; // последната грешка
float интеграл=0.0; // Интегрален член
// Функция за изчисляване на изхода на PID контролера
float pidController (float dt)
float pidController(float dt) {
// Изчисляване на грешката
грешка=зададена точка - обратна връзка; // Изчисляване на интегралния член.
// Изчисляване на интегралния член
интегрална += грешка * dt; // изчисляване на диференциалния член
// Изчисляване на диференциала
плаваща производна=(грешка - last_error) / dt; // изчисляване на контролния изход.
// Изчисляване на контролния изход
плаващ изход=Kp * грешка + Ki * интеграл + Kd * производна; // Изчисляване на контролния изход.
// Актуализиране на последната грешка
последна_грешка=грешка; // актуализиране на последната грешка.
последна_грешка=грешка; връщане на изхода; // Изчисляване на контролния изход.
}
int main(void)
{
докато (1)
{
// Вземете стойността на обратната връзка
// Вземете интервала от време
// Изчисляване на PID изхода
float dt=0.01; // 0,01 s като времеви интервал в примера
float control_output=pidController(dt); // изведе управляващия сигнал.
// Извежда контролния сигнал
// Забавяне на управляващия сигнал за определен период от време
за (int i=0; i 《 10000;i ++).
}
връщане 0; }
}




