欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
一個簡單的PID單片機算法程序
[打印本頁]
作者:
doublecityggb
時間:
2018-9-11 20:52
標題:
一個簡單的PID單片機算法程序
用單片機做的,在電機測試了可以用。就是開機的時候,會最大轉速輸出,有點噪音
單片機源程序如下:
void Pid_regulate(void)
{
u8 TempError;
u8 TempAngle;
if(Pid_Ts != 0)
{
return; //采樣時間未到,退出
}
Pid_ts = 0x1a; //重置采樣時間
TempError = Temp_Setting - TempOp; //溫度誤差
Integral = Integral + Ki * TempError; //誤差* 積分增益并累加
if(Integral > 1024)
Integral = 1024;
else if(Integral < -1024)
Integral = -1024;
TempAngle = FeedFwd_agnle(Templn,Voltage,WaterFlow);
TempAngle = Kp * TempError;
TempAngle = TempAngle + (Integral >> 4);//累加
if(TempAngle < 2)
TempAngle = 2; //下限
else if(TempAngle > 200)
TempAngle = 200; //上限
Fire_angle = 200 - (u8)TempAngle; //得到觸發角
}
void PID(void)
{
float ek,ek1,ek2,ek_sum;
uint a;
ek=K-temp; //計算誤差
while(1)
{
if(ON_OFF==1) //溫控開關開
{
if(ek>=15)
{
outflag=1;
OUT=0;
Time_on=100;
break;
} //溫差大于15度,不用PID調節
else if(ek<0)
{
ek=0;
outflag=0;
OUT=1;
Time_on=0;
break;
} //溫差小于等于0不調節
else
{
if(ek>5)
a=0;
if(ek<5)
a=1;
ek2=ek1;
ek1=ek;
ek_sum+=ek;
uk=kp*ek+ki*ek_sum+kd*(ek1-ek2);
//計算PID輸出uk
if(start_flag==0) //PID運算標志位
{
uk0=uk; //uk初值,用于參考以后uk加熱時間
start_flag=1;
div=100/uk0;
} //開始PID計算
else if(start_flag==1)//加熱片加熱時間
{
Time_on=uk*div;
OUT=0;
outflag=1;
}
break;
}
}
else
{
outflag=0;
OUT=1;
break;
} //不加熱
}
}
復制代碼
所有資料51hei提供下載:
Pid.rar
(861 Bytes, 下載次數: 99)
2018-9-11 20:51 上傳
點擊文件名下載附件
算法
下載積分: 黑幣 -5
作者:
li96261
時間:
2019-4-22 15:42
學習學習啦!!!謝謝!!
作者:
zhaocheng_er
時間:
2019-8-21 09:21
學習學習啦!!!謝謝!!
作者:
ultra夢幻雨
時間:
2019-9-4 10:08
感謝分享!
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1