電子設(shè)計競賽(4)-常用的兩種PID算法
公眾號關(guān)注?“大魚機器人”
設(shè)為 “星標(biāo)”,重磅干貨,第一時間送達(dá)!
//pwm=Kp*e(k)+Ki*∑e(k)+Kd[e(k)-e(k-1)]typedef struct PID{float kp;float ki;float kd;float ek; //當(dāng)前誤差float ek_1; //上一次誤差float ek_sum; //誤差總和float limit; //限幅}PID;static PID pid;void PID_Init(){pid.kp = 0.1;pid.ki = 0.2;pid.kd = 0.3;pid.limit = 1000;pid.ek = 0;pid.ek_1 = 0;pid.ek_sum = 0;}// 位置式PID控制float PID_Postion(int Encoder,int Target){float pwm = 0;pid.ek = Target - Encoder; // 計算當(dāng)前誤差pid.ek_sum += pid.ek; //求出偏差的積分pwm = pid.kp*pid.ek + pid.ki*pid.ek_sum +pid.kd*(pid.ek - pid.ek_1); //位置式PID控制器pid.ek_1 = pid.ek; //保存上一次偏差if(pwm > pid.limit){pwm = pid.limit;}else if(pwm < -pid.limit){pwm = -pid.limit;}return pwm;}
//根據(jù)增量式離散PID公式//pwm+=Kp[e(k)-e(k-1)]+Ki*e(k)+Kd[e(k)-2e(k-1)+e(k-2)]//e(k)代表本次偏差//e(k-1)代表上一次的偏差 以此類推//e(k-2)代表上上次的偏差//pwm代表增量輸出typedef struct PID{float kp;float ki;float kd;float ek; //當(dāng)前誤差float ek_1; //上一次誤差float ek_2; //上上一次誤差float limit; //限幅}PID;static PID pid;void PID_Init(){pid.kp = 0.1;pid.ki = 0.2;pid.kd = 0.3;pid.limit = 1000;pid.ek = 0;pid.ek_1 = 0;pid.ek_2 = 0;}// 增量式PID控制float PID_Increase(int Encoder,int Target){float pwm = 0;pid.ek = Target - Encoder; // 計算當(dāng)前誤差pid.ek_sum += pid.ek; //求出偏差的積分pwm = pid.kp*(pid.ek - pid.ek_1) + pid.ki*pid.ek +pid.kd*(pid.ek - 2*pid.ek_1 + pid.ek_2); //增量式PID控制器pid.ek_1 = pid.ek; //保存上一次偏差pid.ek_2 = pid.ek_1; //保存上上一次的偏差if(pwm > pid.limit){pwm = pid.limit;}else if(pwm < -pid.limit){pwm = -pid.limit;}return pwm;}
「第一彈」電子設(shè)計大賽應(yīng)該準(zhǔn)備什么?
「第一篇」大學(xué)生電子設(shè)計競賽,等你來提問。
「第二篇」全國一等獎,經(jīng)驗帖。
「第三篇」電賽,這些你必須知道的比賽細(xì)節(jié),文末附上近十年電賽題目下載
「第四篇」電賽控制題可以準(zhǔn)備一些什么?
「第五篇」全國電子設(shè)計競賽-電源題設(shè)計方案總結(jié)
「第六篇」對于電賽,我們應(yīng)該看重什么?
電子設(shè)計競賽電源題(1)-電源題簡介
電子設(shè)計競賽電源題(2)-檢波與采樣
電子設(shè)計競賽(三)-SPWM與PID
全國一等獎,他的學(xué)習(xí)之路。
從0開始,三個月,獲全國一等獎。
獎狀是怎么煉成的—我的電賽狂魔之旅
全國一等獎的獲得者,如今去當(dāng)了人民教師。
【大學(xué)生電子設(shè)計競賽分享經(jīng)驗貼】風(fēng)力循跡小車
「重磅猜題之第二篇」2019年大學(xué)生電子設(shè)計競賽
?最 后??
?
若覺得文章不錯,轉(zhuǎn)發(fā)分享,也是我們繼續(xù)更新的動力。
5T資源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,PCB、FPGA、DSP、labview、單片機、等等!
在公眾號內(nèi)回復(fù)「
更多資源
」,即可免費獲取,期待你的關(guān)注~
長按識別圖中二維碼關(guān)注
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!





