直流電機控制 pwm 和 pid 算法

下面的文章是我轉載的。所以作者若是看到不允許轉載,請給我留言或給我郵件([email protected]),我會立即刪除。

轉載原因:這篇文章把pid 算法解釋的很詳細。我擔心以後這篇文章無故刪除,才轉載到我這邊的。謝謝。

 

平衡小車和倒立擺都是用的位置式PID控制器
/**************************************************************************
函數功能:位置式PID控制器
1.入口參數:編碼器測量位置信息,目標位置
2.入口參數:編碼器測量速度 , 目標速度
返回 值:電機PWM
根據位置式離散PID公式
pwm=Kp*e(k)+Ki*∑e(k)+Kd[e(k)-e(k-1)]
e(k)代表本次偏差
e(k-1)代表上一次的偏差
∑e(k)代表e(k)以及之前的偏差的累積和;其中k爲1,2,,k;
pwm代表輸出
**************************************************************************/
int Position_PID (int Encoder,int Target)
{
static float Bias,Pwm,Integral_bias,Last_Bias;
Bias=Encoder-Target; //計算偏差
Integral_bias+=Bias; //求出偏差的積分
Pwm=Position_KP*Bias+Position_KI*Integral_bias+Position_KD*(Bias-Last_Bias); //位置式PID控制器
Last_Bias=Bias; //保存上一次偏差
return Pwm; //增量輸出
}

P:響應速度 過小響應速度太慢,基本不震盪;過大響應速度快,高頻振盪;
I:靜差 當有靜差的時候把I加大點即可消除
d:穩態 減小最大超調量,該參數過大會低頻振盪
總結::P用於提高響應速度、I用於減小靜差、D用於抑制震盪。

l最大超調量是響應曲線的最大峯值與穩態值的差,是評估系統穩定性的一個重要指標;
l上升時間是指響應曲線從原始工作狀態出發,第一次到達輸出穩態值所需的時間,是評估系統快速性的一個重要指標;
l靜差是被控量的穩定值與給定值之差,一般用於衡量系統的準確性,


具體的參數調試過程:見位置pid參數控制整定如下:
KP=500,KI=0,KD=0.響應曲線如圖

 

以上是入口參數的位置的參數整定過程,下面說一說入口參數是速度的參數整定過程:


對於位置式的pid用於調試達到目標速度,就用PI控制器就足夠了,因爲如果加微分的話會有很大抖動,所以大家一般都用PI控制器來調試速度。
具體參數整定原則:一開始先加大比例P,p小了會達不到目標速度,會差很多,所以再加大p,知道電機出現‘嗒嗒嗒’的抖動或者觀察上位機的波形劇烈抖動的時候,這時候p就過大了,實際上p可以不是很大,比如400,調試時候增加幅值可以設爲20,I稍微來點就可以,平衡車的工程經驗是ki=kp/200,但是這裏我給的是0.01,還要看具體情況,積分參數過大,實際速度和目標速度的靜差會很大。
--------------------- 
作者:假如明天沒有太陽 
來源:CSDN 
原文:https://blog.csdn.net/zhaoyuaiweide/article/details/54573676 
版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章