Bagaimanakah Pengawal Mikro Melaksanakan Kawalan PID?

Jul 23, 2026 Tinggalkan pesanan

Algoritma kawalan PID kini merupakan salah satu daripada algoritma kawalan yang paling banyak digunakan. Kawalan PID menawarkan kelebihan seperti parameter boleh laras, pelbagai aplikasi dan ketepatan kawalan yang tinggi. Dalam kejuruteraan praktikal, algoritma PID boleh digunakan untuk pelbagai bidang, termasuk kawalan elektromekanikal, automasi industri, robotik dan kawalan mikropemproses.


Tiga parameter algoritma PID ialah: keuntungan berkadar Kp, pemalar masa kamiran Ti, dan pemalar masa terbitan Td. Sistem yang berbeza memerlukan parameter PID yang berbeza, dan parameter optimum biasanya diperoleh melalui percubaan dan penyahpepijatan. Pemalar berkadar Kp melaraskan keuntungan berkadar, mengawal nisbah keluaran sistem kepada ralat maklum balas semasa operasi; pemalar masa kamiran Ti melaraskan keuntungan kamiran, mengawal pengumpulan ralat semasa operasi sistem; dan pemalar masa terbitan Td melaraskan keuntungan terbitan, mengawal kadar perubahan ralat dalam sistem kawalan.


Apakah pendekatan untuk melaksanakan algoritma PID pada mikropengawal?


Untuk melaksanakan algoritma kawalan PID pada mikropengawal, pendekatan umum adalah seperti berikut:

1. **Tentukan Parameter PID**:

- Pilih keuntungan berkadar yang sesuai (Kp), masa kamiran (Ti) dan masa terbitan (Td) berdasarkan ciri dan keperluan objek terkawal sebenar.


2. **Pemerolehan Data Sensor**:

- Gunakan penderia yang sesuai (seperti penderia suhu, penderia kedudukan, dll.) untuk memperoleh-data maklum balas masa sebenar daripada objek terkawal.


3. **Perbandingan Setpoint dan Nilai Maklum Balas**:

- Bandingkan titik set (nilai yang dikehendaki) dengan nilai maklum balas untuk mengira ralat (Ralat).


4. **Pengiraan PID**:

- Kira pembolehubah kawalan (output) menggunakan formula algoritma PID: PID=Kp * Ralat + Ki * ∫ Ralat dt + Kd * d(Ralat)/dt.

- Kp, Ki dan Kd ialah parameter PID; Ralat ialah nilai ralat; ∫ Ralat dt mewakili istilah kamiran; dan d(Ralat)/dt mewakili istilah terbitan.


5. **Menghadkan** (Pilihan):

- Untuk aplikasi tertentu, mungkin perlu mengehadkan julat nilai output untuk mengelakkannya daripada melebihi julat objek terkawal yang boleh diterima.


6. **Isyarat Kawalan Output**:

- Pembolehubah kawalan yang dikira digunakan sebagai isyarat kawalan dan dihantar kepada penggerak (seperti motor atau injap) untuk mengawal selia dan mengawal objek terkawal.


7. **Tetapkan Kekerapan Kawalan**:

- Tetapkan kekerapan kawalan yang sesuai-kitaran pelaksanaan algoritma kawalan-berdasarkan keperluan aplikasi khusus.


8. **Lelarkan Algoritma PID**:

- Dalam gelung masa-sebenar, laksanakan langkah di atas berulang kali untuk memantau nilai maklum balas secara berterusan, mengira pembolehubah kawalan dan mengeluarkan isyarat kawalan untuk mencapai kawalan sistem yang stabil.


Dalam pengaturcaraan mikropengawal sebenar, anda boleh memilih alat pembangunan dan bahasa pengaturcaraan yang sesuai (seperti C atau bahasa pemasangan) berdasarkan model mikropengawal tertentu dan platform pembangunan. Perlu diingatkan bahawa dalam aplikasi praktikal, terdapat banyak teknik untuk mengoptimumkan dan menambah baik algoritma PID, seperti pemisahan kamiran dan PID penyesuaian, yang boleh dikaji dan dilaksanakan dengan lebih lanjut mengikut keperluan khusus.

 

Prinsip dan Pengendalian Pengawal PID


Pengawal PID terdiri daripada tiga komponen: berkadar (P), kamiran (I), dan terbitan (D). Ia menjana output kawalan dengan memproses ralat sistem, sisihan, dan kadar perubahan. Operasinya melibatkan langkah-langkah berikut:


- Dapatkan setpoint dan nilai maklum balas

- Kira ralat

- Kira keluaran kawalan berdasarkan keuntungan berkadar, sebutan kamiran dan sebutan terbitan

- Kemas kini parameter pengawal

- Keluarkan isyarat kawalan


Pelaksanaan Kod STM32

 

Berikut ialah kod contoh untuk mereka bentuk dan melaksanakan pengawal PID menggunakan mikropengawal STM32:

```c

#include "stm32f4xx.h"

// Tentukan parameter pengawal PID

apungan Kp=0.5; // Keuntungan berkadar

apungkan Ki=0.2; // Keuntungan bersepadu

apungkan Kd=0.1; // Keuntungan terbitan

// Tentukan pembolehubah storan

titik tetapan apungan=50.0; // Setpoint

maklum balas terapung=0.0; // Nilai maklum balas

ralat apungan=0.0; // Ralat

float last_error=0.0; // Ralat sebelumnya

terapung integral=0.0; // Istilah kamiran

// Fungsi pengiraan output pengawal PID

float pidController(float dt)

{

// Ralat pengiraan

ralat=setpoint - maklum balas;

// Kira istilah kamiran

ralat integral += * dt;

// Kira istilah terbitan

terbitan terapung=(ralat - last_error) / dt;

// Kira keluaran kawalan

keluaran apungan=Kp * ralat + Ki * kamiran + Kd * terbitan;

// Kemas kini ralat sebelumnya

last_error=error;

pulangan keluaran;

}

int utama (tidak sah)

{

manakala (1)

{

// Dapatkan nilai maklum balas

// Tetapkan selang masa

// Kira keluaran PID

apungkan dt=0.01; // Dalam contoh ini, selang masa ialah 0.01 s

float control_output=pidController(dt);

// Keluarkan isyarat kawalan

// Kelewatan untuk satu tempoh masa

untuk (int i=0; i < 10000; i++);

}

pulangan 0;

}

Hantar pertanyaan

whatsapp

Telefon

E-mel

Siasatan