Как да реализираме pid контрол чрез микроконтролер

Jun 25, 2025 Остави съобщение

Алгоритъмът за 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; }

}

Изпрати запитване

whatsapp

Телефон

Имейл

Запитване