PID取樣時間精準控制 基於stm32主控

2021-10-04 20:46:12 字數 896 閱讀 7658

我們在用到pid演算法時,有時候會使用積分分離的抗飽和演算法,或是另一類屬於增量式的pid演算法。這時,需要提供乙個pid取樣間隔來控制取樣率,大部分無人機類工程用到的取樣為10ms,視具體情況而定。

本文提供乙個精確控制取樣週期的思路,如果您有更好的思路可以分享。

本文是利用微控制器的定時器去定期中斷取樣使用pid。

stm32為例。

void

time7_init

(u16 per,u16 pre)

初始化tim7。

void

nvic_init

(void

)

void

tim7_irqhandler

(void)

pid_roll.actualangle=roll;

//記錄姿態角

pid_pitch.actualangle=pitch;

pid_yaw.actualangle=yaw;

roll_pitch_yaw_anglepid(0

,0,0

);//計算pid控制量

}

在中斷服務函式裡,主要是進行一次pid中當前值得獲取,再進行一次計算

//tim7採取資料進行pid演算法

time7_init(71

,9999);

//每10ms進行一次取樣並計算

nvic_init()

;

當然可以修改time7_init()的引數來修改取樣週期

採用此方式,相比於採用延時函式去控制要精確得多,且不用考慮程式程序

pid演算法 pid控制原理

pid控制原理和特點 工程實際中,應用最為廣泛調節器控制規律為比例 積分 微分控制,簡稱pid控制,又稱pid調節。pid控制器問世至今已有近70年歷史,它以其結構簡單 穩定性好 工作可靠 調整方便而成為工業控制主要技術之一。當被控物件結構和引數不能完全掌握,或不到精確數學模型時,控制理論其它技術難...

白話PID控制

控制模型 人以pid控制的方式用水壺往水杯裡倒印有刻度的半杯水後停下 設定值 水杯的半杯刻度 實際值 水杯的實際水量 輸出值 水壺的倒處數量和水杯舀出水量 測量感測器 人的眼睛 執行物件 人 正執行 倒水 反執行 舀水 1 p 比例控制,就是人看到水杯裡水量沒有達到水杯的半杯刻度,就按照一定水量從水...

PID控制原理

pid是通過三個引數進行調節用來消除誤差e 測量值和設定值的差 這三個引數分別是p 比例 i 積分 和d 微分 1.比例調節作用 按比例反映系統偏差,比例作用大,加快調節,減小誤差 比例過大,系統穩定性下降,甚至造成系統不穩定。2.積分調節作用 使系統消除穩態誤差。積分時間常數ti決定積分作用,ti...