91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

資源簡(jiǎn)介

在PID算法中,我們?nèi)绻皇鞘褂脝蝹€(gè)閉環(huán)PID控制會(huì)出現(xiàn)很多的不足。例如我們?cè)趩为?dú)使用位置環(huán)時(shí),在電機(jī)未能達(dá)到預(yù)設(shè)位置時(shí),電機(jī)的運(yùn)行狀態(tài)是100%PWM滿偏運(yùn)行的,這樣在我們實(shí)際運(yùn)用時(shí),如果我們使用的電機(jī)功率很高就會(huì)造成速度過(guò)快的現(xiàn)象。所以在電機(jī)的控制過(guò)程中,最好是多環(huán)控制。 在設(shè)計(jì)過(guò)程中,我是不斷地嘗試得出的結(jié)果。最終得出將位置環(huán)和速度環(huán)的輸出疊加的方法,在位置沒(méi)有到達(dá)預(yù)設(shè)位置時(shí)雖然位置環(huán)的輸出會(huì)是滿偏,但滿偏會(huì)讓速度出現(xiàn)偏差,速度環(huán)就會(huì)輸出負(fù)值反過(guò)來(lái)抑制總的輸出,這樣我們就可以在實(shí)現(xiàn)位置環(huán)的同時(shí)也有了速度環(huán)的控制。但注意的是在快達(dá)到預(yù)設(shè)位置時(shí)需要將速度環(huán)關(guān)閉。

資源截圖

代碼片段和文件信息

#include?“pid.h“

PID?pid;?//存放PID算法所需要的數(shù)據(jù)
PID1?pid1;
void?PID_Init()
{
pid.Sv=03000;?????//用戶設(shè)定值
pid.Pv=00.0;??????//檢測(cè)值
pid.OUT0?=00;??????//PID常數(shù)
pid.Ek=0.0;???????//當(dāng)前誤差值
pid.Ek_1=0.0;?????//上一個(gè)誤差值
pid.Ek_2=0.0;?????//上上一個(gè)誤差值
pid.Kp=36;?????//比例常數(shù)
pid.Ki=0.25;???????//積分常數(shù)
pid.Kd=135;???????//微分常數(shù)
pid.uplimit=6000;?//上限值
pid.lowlimit=-6000;//下限值
}
void?PID1_Init()
{
pid1.Sv=1400.525;?????//用戶設(shè)定值
pid1.Pv=00.0;??????//檢測(cè)值
pid1.OUT0?=0;??????//PID常數(shù)
pid1.Ek=0.0;???????//當(dāng)前誤差值
pid1.Ek_1=0.0;?????//上一個(gè)誤差值
pid1.Ek_2=0.0;?????//上上一個(gè)誤差值
pid1.Kp=6.5;?????//比例常數(shù)
pid1.Ki=0.36;???????//積分常數(shù)
pid1.Kd=0.00005;???????//微分常數(shù)
pid1.uplimit=6000;?//上限值
pid1.lowlimit=-6000;//下限值
pid1.PIDOUT=-6000;
}
float?Set_Pwm(float?moto1)
{
float?OUT;
if(moto1>0) AIN2=0 AIN1=1;
else? ??????????AIN2=1 AIN1=0;
OUT=myabs(moto1);
return?OUT;
}
//絕對(duì)值函數(shù)
float?myabs(float?a)
{? ???
??int?temp;
if(a<0)??temp=-a;??
??else?temp=a;
??return?temp;
}

int?PID1_output?()
{
float?PIDOUT;
pid1.Ek=pid1.Sv-pid1.Pv;
PIDOUT=pid1.Kp*(pid1.Ek-pid1.Ek_1)+pid1.Ki*pid1.Ek+pid1.Kd*(pid1.Ek_2*pid1.Ek_1+pid1.Ek_2)+pid1.OUT0;
pid1.Ek_2=pid1.Ek_1;
pid1.Ek_1=pid1.Ek;
pid1.PIDOUT+=PIDOUT;
pid1.PIDOUT=(pid1.PIDOUTpid1.uplimit)???pid1.uplimit?:?pid1.PIDOUT;
return?pid1.PIDOUT;
}
int?PID_output?()
{
float?PIDOUT;
pid.Ek=pid.Sv-pid.Pv;
PIDOUT=pid.Kp*pid.Ek+pid.Ki*(pid.Ek+pid.Ek_1+pid.Ek_2)+pid.Kd*(pid.Ek-pid.Ek_1)+pid.OUT0;
pid.Ek_2=pid.Ek_1;
pid.Ek_1=pid.Ek;
pid.PIDOUT=PIDOUT;
pid.PIDOUT=(pid.PIDOUTpid.uplimit)???pid.uplimit?:?pid.PIDOUT;
return?pid.PIDOUT;
}

?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????目錄???????????0??2019-07-21?15:14??PID\
?????文件????????1845??2019-07-21?15:14??PID\pid.c
?????文件?????????818??2019-07-21?14:28??PID\pid.h

評(píng)論

共有 條評(píng)論

相關(guān)資源