范文為教學中作為模范的文章,也常常用來指寫作的模板。常常用于文秘寫作的參考,也可以作為演講材料編寫前的參考。大家想知道怎么樣才能寫一篇比較優(yōu)質的范文嗎?下面是小編幫大家整理的優(yōu)質范文,僅供參考,大家一起來看看吧。
pid十大算法c語言實現(xiàn)篇一
c語言實習總結
推薦度:
c語言程序設計的實驗報告
推薦度:
c語言課程設計個人總結
推薦度:
c語言程序設計實驗報告
推薦度:
c語言程序設計心得體會
推薦度:
相關推薦
積分飽和通俗講就是系統(tǒng)在一個偏差方向上的飽和,下面一起來跟著小編學習一下pid算法的c語言實現(xiàn)方法吧,希望可以幫助到大家!
比如一個系統(tǒng)設定了輸出不會超過100,但因為出現(xiàn)一個方向上的偏差積分使得輸出超過了100,此時達到了飽和狀態(tài),如果繼續(xù)在這個方向上積分會導致pid控制超過100系統(tǒng)卻運行在100,相當于積分調節(jié)對系統(tǒng)輸出沒有作用,就出現(xiàn)失控的狀態(tài),這是系統(tǒng)不能接受的,而且飽和積分越深,退出飽和就越久。上面是在正向的飽和,負向的飽和類似!
為了解決這個問題,我們采用抗積分飽和算法,其思路就是:如果上一次的輸出控制量超過了飽和值,飽和值為正,則這一次只積分負的偏差,飽和值為負,則這一次只積分正的偏差,從而避免系統(tǒng)長期留在飽和區(qū)!
下面我以 位置型+抗積分飽和+控制算法c語言來觀察調節(jié)結果:(相對應的代碼可以參考以往的文章)
//位置型+抗積分飽和+積分分離 pid控制算法
struct _pid{
float setspeed;
float actualspeed;
float err;
float err_last;
float kp,ki,kd;
float voltage;
float integral;
float umax; //最大正飽和上限值
float umin; //最大負飽和下限值
}pid;
void pid_init(void)
{
printf("pid_init begin! ");
ed = 0;
speed = 0;
= 0;
_last = 0;
= 0.2;
= 0.1; //增大了積分環(huán)節(jié)的值
= 0.2;
e = 0;
al = 0;
= 400; //正飽和值為400
= -200; //負飽和值為-200
printf("pid_init end! ");
}
float pid_cal(float speed)
{
unsigned char index;
ed = speed;
= ed - speed;
if(speed>) //如果上一次輸出變量出現(xiàn)正向的飽和
{
if(abs()>200)
{
index = 0;
}
else
{
index = 1;
if(<0)
{
al += ; //正飽和只積分負偏差
}
}
}
else if(speed {
if(abs()>200)
{
index = 0;
}
else
{
index = 1;
if(>0)
{
al += ; //負飽和只積分正偏差
}
}
}
else
{
if(abs()>200) //積分分離的pid優(yōu)化,可參考以往的文章
{
index = 0;
}
else
{
index = 1;
al += ;
}
}
e = * +index**al + *( - _last);
_last = ;
speed = e*1.0;
return speed;
}
int main(void)
{
int count = 0 ;
printf("system begin! ");
pid_init();
while(count<1000)
{
float speed = pid_cal(200.0);
printf("-%d-%f-",count,speed);
count++;
}
return 0;
}
最后運行結果:
我們發(fā)現(xiàn),相對以往的算法,還算法大大提高了調節(jié)的速度和穩(wěn)定!
s("content_relate");【pid算法的c語言實現(xiàn)】相關文章:
pid算法的c語言實現(xiàn):抗積分飽和的pid優(yōu)化
10-05
c語言中實現(xiàn)kmp算法實例
11-19
希爾排序算法的c語言實現(xiàn)示例
10-04
c語言實現(xiàn)歸并排序算法實例
11-21
6種常見的排序算法的c語言實現(xiàn)
10-04
c語言的排序算法
10-05
kmp算法的c#實現(xiàn)方法
09-22
c語言排序的幾種算法
10-03
c#實現(xiàn)輪詢算法實例代碼
09-23
【本文地址:http://mlvmservice.com/zuowen/2800884.html】