Yuav ua li cas kom paub pid tswj los ntawm microcontroller

Jun 25, 2025 Tso lus

PID tswj algorithm yog kev tswj hwm dav dav siv tau cov txiaj ntsig zoo ntawm cov khoom siv tau yooj yim, ntau txoj kev siv, siab tswj tau. Hauv kev tsim kev lag luam engineering, PID algorithm tuaj yeem siv rau Electromechanical Control, kev siv tshuab, neeg hlau, tswj hwm thiab ntau lwm cov teb.


Peb ntu ntawm PID Algorithm tau hloov kho: Kev sib npaug tas mus li KP, lub sijhawm sib txawv tas li ti, lub sijhawm sib txawv tas li TD. Cov khoos kas sib txawv yuav tsum tau teem cov pid sib txawv, thiab feem ntau nws yog feem ntau tsim nyog kom tau txais cov kev ntsuas zoo los ntawm kev sim thiab debugging. Lub ntsiab lus tas mus li KP kho cov kev faib ua feem, kho qhov sib piv ntawm cov zis thiab cov lus pom tsis raug cai hauv kev tswj hwm; Lub sij hawm muaj txiaj ntsig tas li ti tau kho qhov tseem ceeb, kho cov kev sib txuam ntawm kev ua yuam kev hauv kev tswj hwm; Lub sijhawm sib txawv tas li TD kho qhov sib txawv, kho tus nqi ntawm kev hloov ntawm kev ua yuam kev hauv kev tswj hwm.


Dab tsi yog lub tswv yim ntawm kev paub txog lub teeb liab pegorithm nrog microcontroller


Txhawm rau paub cov pid tswj algorithm ntawm microcontroller, hauv qab no yog lub tswv yim dav dav:


1. ** Txheeb xyuas cov PID qhov tsis raug **:


{{0- Raws li cov yam ntxwv uas tsim nyog (XT)


2. "Cov ntaub ntawv Sensor tau txais **:


-} Siv cov sensors tsim nyog (piv txwv li, muaj cov ntaub ntawv qhia txog kev tswj cov lus qhia los ntawm cov khoom tswj tau nyob hauv lub sijhawm.


3. "Teeb tus nqi thiab cov lus pom zoo sib piv **:


- e} Piv tau tus nqi tsim (cov nqi xav tau) nrog cov lus qhia tus nqi thiab suav cov nqi yuam kev (yuam kev).


4. ** PID suav 8:


- Tus nqi tswj (tso zis) yog xam raws li lub pid alg {1 ∫ * ∫ * d (yuam kev) / dt.


- KP, KI thiab KD yog cov pid tsis muaj txiaj ntsig, qhov yuam kev yog qhov yuam kev tus nqi thiab d (yuam kev) / dT txhais tau hais txog lub sijhawm sib txawv.


5. ** LANCER LANGLING ** (Yeem):


-} Rau qee cov ntawv thov, nws yuav tsim nyog los txo cov ntau ntawm cov txiaj ntsig kom tsis txhob muaj ntau yam ntawm cov khoom tswj tau.


6. ** VIMTION tswj cov teeb liab **:


-} Qhov kev suav tswj kom muaj nuj nqis yog cov teeb liab (piv txwv li lub cev muaj zog, thiab lwm yam) kom paub cov cai tswj.


7. "Teeb tswj tau teeb tsa":


{{0- Raws li cov kev xav tau ntawm cov kev siv tshwj xeeb, teeb tsa kev tswj hwm qhov tsim nyog los tswj kev ua tiav ntawm lub algorithm.


8. ** Lub voj voog tua ntawm PID algorithm **:


{{0- Hauv qhov tseeb- lub sijhawm ua kom muaj nuj nqis, thiab tso tawm cov teeb tsa kev tswj hwm kom paub qhov kev tswj hwm ruaj khov.


Nyob rau hauv lub microcontroller tiag tiag thiaj li ua haujlwm, koj tuaj yeem xaiv cov cuab yeej tsim kho tsim nyog thiab cov lus programming (xws li C los yog kev sib dhos microcontroller. Nws yuav tsum raug sau tseg tias nyob rau hauv cov ntawv thov siv tau, yuav muaj ntau cov tswv yim los ua kom sib cais, yoog tau kev tshawb fawb thiab siv raws li kev xav tau tshwj xeeb.


PID tswjfwm kev cai thiab ua haujlwm


Tus ntsuas PID muaj peb ntu: sib npaug (p), tseem ceeb (d), thiab ua kom muaj kev tswj hwm los ntawm kev ua yuam kev, kev hloov pauv ntawm cov txheej txheem. Nws cov haujlwm muaj xws li cov kauj ruam hauv qab no:


- Tau txais cov hom phiaj thiab cov lus pom zoo

-} Xam cov yuam kev

- Tshaj tawm cov zis tswj raws li kev sib faib cov coefficient, lub sij hawm sib xyaw thiab cov lus sib txawv.

- Kev hloov kho cov maub los hloov kho

- Kev Tshaj Tawm Kev Ntsuas Tswj Xyuas

 


STM32 Txoj Cai Kev Nqis


Cov hauv qab no yog cov qauv code rau kev tsim qauv thiab siv cov PID maub los siv STM32 microcontroller:


```c

#Imlude "stm32f4xx.h"

// txhais tau lub pid maub los

ntab kp=0.5; // co co nplai

ntab ki=0.2; // kev sib xyaw ua ke coefficient

ntab kd=0.1; // sib txawv coefficient

// Txhais Tau Cov Khoom Ntim Khoom

ntab teeb tsa=50.0; // phiaj nqi

ntab cov lus teb=0.0; // Cov Lus Cim

ntab yuam kev=0.0; // yuam kev

ntab last_error=0.0; // kawg yuam kev

ntab xyaw=0.0; // kev siv sijhawm

// pid maub los tsim tawm kev ua haujlwm

Ntab pidcontroller (ntab DT)

Ntab pidcontroller (ntab dt) {

// xam qhov yuam kev

yuam kev=tawm -} cov lus teb; // xam cov lus tseem ceeb.

// xam cov lus tseem ceeb

Integral +=} Ua yuam kev * DT; // muab cov lus sib txawv

// xam cov sib txawv

ntab derivative=(yuam kev - kav dej) / dt; // muab cov zis tswj.

// xam cov tso zis tswj

Ntab tso zis=kp * yuam kev + KI * CORM * derivative; // xam cov kev tswj cov zis.

// Hloov tshiab yuam kev

Last_Error=tsis ncaj; // Hloov tshiab yuam kev.

Last_Error=tsis ncaj; rov qab tsim tawm; // xam cov kev tswj cov zis.

}

rau lub siab (tsis muaj dab tsi)

{

Thaum (1)

{

// Tau txais cov lus teb muaj nuj nqis

// tau txais lub sijhawm luv

// xam cov khoom siv pid

ntab dt=0.01; // 0.01s raws li lub sij hawm ncua nyob rau hauv cov piv txwv

Ntab tswj hwm_output=pidcontroller (DT); // tawm cov teeb liab tswj.

// tawm cov teeb liab tswj

// ncua sij hawm tswj lub teeb liab rau ib lub sijhawm

Rau (rau kuv {= 0; Kuv "10000; i ++).

}

rov qab 0; }

}

Xa kev nug

whatsapp

Xov tooj

Tug

Kev nug