freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于vc60的常用pid改進(jìn)的編程實(shí)現(xiàn)與仿真研究-資料下載頁

2024-11-10 15:49本頁面

【導(dǎo)讀】是進(jìn)一步與計(jì)算機(jī)的強(qiáng)大運(yùn)算能力,儲(chǔ)存能力和邏輯判斷能力結(jié)合起來,克服在實(shí)際應(yīng)用中的一些PID控制缺陷。本文羅列了常見的四種PID改。死區(qū)的數(shù)字PID算法,這些控制算法的優(yōu)點(diǎn)是可以減小系統(tǒng)的超調(diào)量,能產(chǎn)生的控制量來回振蕩現(xiàn)象。在了解PID改進(jìn)算法規(guī)律數(shù)字化的基礎(chǔ)。同時(shí)并以一個(gè)具有一定純滯后的。典型熱工被控對(duì)象為例,在上述仿真環(huán)境下,驗(yàn)證各種改進(jìn)算法的效果,并繪制輸出后的仿真曲線。

  

【正文】 智能控制 [M]. 北京: 電子工業(yè)出版社 , : 185187 [24]王耀南 .智能控制系統(tǒng) [M].長沙:湖南大學(xué)出版社, 1996 29 [25]吉智 ,詹國兵 ,扈書光 ,林蒙丹 .模糊 PID控制器在開關(guān)電源充電機(jī)控制系統(tǒng)中的應(yīng)用研究 [A].全國先進(jìn)制造技術(shù)高層論壇暨制造業(yè)自動(dòng)化、信息化技術(shù)研討會(huì)論文集[C]。2020 年 30 附 錄 附錄 1 PID 算法 C++編程 : include include include include int main() { PID p。 float a[100],y[100],rin,x=0,z=0,b,um,us,death。 int i。 char c。 cout選擇一種 PID 計(jì)算方法 :\n\nendl。 cout 常規(guī) PID 的控制算法 \n\nendl。 cout \n\nendl。 cout \n\nendl。 cout \n\nendl。 cout PID 算法 \n\nendl。 cout\n\nendl。 cout請(qǐng)選擇 :\nendl。 cinc。 switch(c) { ////////////////////// 常規(guī) PID 計(jì)算方法//////////////////////////////////// case39。139。:{ y[0]=0。 rin=sensor()。 for(i=0。i100。i++) { 31 a[i]=(,rin,x,z)。 y[i+1]=()*y[i]+()*a[i]。 printf( 加 入 控 制 對(duì) 象 經(jīng) 過 PID 反 饋 調(diào) 節(jié) 后 的 輸出 %f\n,y[i])。 } break。}。 ///////////////////////// 積 分 分 離 算 法////////////////////////////////// case39。239。:{ cout輸入需要設(shè)定的偏差 Beta 值 :endl。 cinb。 y[0]=0。 rin=sensor()。 for(i=0。i100。i++) { a[i]=(,rin,b)。 y[i+1]=()*y[i]+()*a[i]。 if(y[i]2*sensor()) y[i]=*sensor()。 printf( 加 入 控 制 對(duì) 象 經(jīng) 過 PID 反 饋 調(diào) 節(jié) 后 的 輸出 %f\n,y[i])。} break。}。 //////////////////////////////// 抗積分飽和算法///////////////////////////// case39。339。:{ cout 輸 入 需 要 設(shè) 定 的 系 統(tǒng) 輸 出 的 上 限 幅 值 :( 如2)endl。 cinum。 cout 輸 入 需 要 設(shè) 定 的 系 統(tǒng) 輸 出 的 下 限 幅 值 :( 如1)endl。 cinus。 y[0]=0。 rin=sensor()。 for(i=0。i100。i++) 32 { a[i]=(,rin,um,us)。 y[i+1]=()*y[i]+()*a[i]。 printf( 加 入 控 制 對(duì) 象 經(jīng) 過 PID 反 饋 調(diào) 節(jié) 后 的 輸出 %f\n,y[i])。 } break。}。 ///////////////////////////// 微分項(xiàng)的改進(jìn)/////////////////////////////// case39。439。:{ y[0]=0。 rin=sensor()。 for(i=0。i100。i++) { a[i]=(,rin,x,z)。 y[i+1]=()*y[i]+()*a[i]。 printf( 加 入 控 制 對(duì) 象 經(jīng) 過 PID 反 饋 調(diào) 節(jié) 后 的 輸出 %f\n,y[i])。 } break。}。 ///////////////////////// 帶 死 區(qū) 的 數(shù) 字 PID 算法////////////////////////////// case39。539。:{ cout輸入需要設(shè)定的死區(qū)范圍值 (取絕對(duì)值 ):endl。 cindeath。 y[0]=0。 rin=sensor()。 for(i=0。i100。i++) { a[i]=(,rin,x,z,death)。 y[i+1]=()*y[i]+()*a[i]。 if(y[i]2*sensor()) y[i]=fabs()*sensor()。 printf( 加 入 控 制 對(duì) 象 經(jīng) 過 PID 反 饋 調(diào) 節(jié) 后 的 輸 33 出 %f\n,y[i])。 } break。}。 /////////////////////////////// 退出///////////////////////////////////// case39。639。:exit(1)。 } FILE *f。 f=fopen(,w)。 for(i=0。i100。i++) { fprintf(f,%f ,y[i])。 } fclose(f)。 STARTUPINFO si = {sizeof(si)}。 PROCESS_INFORMATION pi。 = STARTF_USESHOWWINDOW。 = TRUE。 CreateProcess ( NULL, , //調(diào)用繪圖程序生成圖形 NULL, NULL, FALSE, CREATE_NEW_CONSOLE, NULL, NULL, amp。si, amp。pi)。 } Pid : // : PID 計(jì)算過程 . 34 include PID::PID() { initial()。 } PID::~PID() { } void PID::initial() { Kp =55。 /*比例增益 55*/ T =。 /*采樣周期 */ Ti =。 /*積分時(shí)間 */ Td =。 /*微分時(shí)間 */ Tf =。 /*慣性時(shí)間 */ caculate()。 } void PID::caculate() { C1 =(Tf/(T+Tf))。 /* 增 量 型 PID 運(yùn) 算 系 數(shù) 有C1,C2,C3,C4*/ C2 =(Kp*T*(1+T/Ti+Td/T)/(T+Tf))。 C3 =(0Kp*T*(1+2*Td/T)/(T+Tf))。 C4 =(Kp*Td/(T+Tf))。 C22=(Kp*T*(1+Td/T)/(T+Tf))。 //C22 為第二種方法積分分離方法中 ,PD 算法的系數(shù) C23=(Kp*T*(1+Td/T)/(T+Tf))。 //C23 為第三種方法抗積分飽和中 Ki=0 則(1/Ti)=0 時(shí) } //******************* 實(shí)際微分 PID 的控制算法 35 ****************************// float PID::PIDContr(float New, float Sp,float u,float du) { static float e[3]={,}。 e[2]=e[1]。 /*數(shù)據(jù)更新 */ e[1]=e[0]。 e[0]=SpNew。 du=C1*du+C2*e[0]+C3*e[1]+C4*e[2]。 /*PID 運(yùn)算 */ u=u+du。 return u。 } ///////////////////////////// 積 分 分 離 算 法 改 進(jìn) 計(jì) 算 過 程//////////////////////////// float PID::PIDjffl(float New, float Sp,float u,float du,float Beta) { static float e[3]={,}。 // Beta 為具體 施工過程中的設(shè)定值 ,此處假設(shè)為 50 e[2]=e[1]。 //數(shù)據(jù)更新 e[1]=e[0]。 e[0]=SpNew。 if(e[0]=Beta) {du=C1*du+C2*e[0]+C3*e[1]+C4*e[2]。 //PID 運(yùn)算條件為 偏差小于等于Beta u=u+du。 } if(e[0]Beta) //當(dāng)偏差大于 beta 時(shí) ,采用 PD 計(jì)算 ,則 Ti 為無窮大 { du=C1*du+C22*e[0]+C3*e[1]+C4*e[2]。 u=u+du。 } 。 return u。 } 36 ////////////////////////////// 抗 積 分 飽 和 算 法/////////////////////////////// float PID::PIDkjfbh(float New, float Sp,float u,float du,float umin,float umax) { static float e[3]={,}。 e[2]=e[1]。 //數(shù)據(jù)更新 // e[1]=e[0]。 e[0]=SpNew。 du=C1*du+C2*e[0]+C3*e[1]+C4*e[2]。 //PID 運(yùn)算 // u=u+du。 if(e[0]0amp。amp。u=umax) {du=C1*du+C23*e[0]+C3*e[1]+C4*e[2]。 u=u+du。} if(e[0]0amp。amp。u=umin) {du=C1*du+C23*e[0]+C3*e[1]+C4*e[2]。 u=u+du。} return u。 } ///////////////////////////// 微 分 項(xiàng) 的 該 進(jìn)////////////////////////////////// float PID::PIDwfxgj(float New, float Sp,float u,float du) { static float e[3]={,}。 e[2]=e[1]。 /*數(shù)據(jù)更新 */ e[1]=e[0]。 e[0]=SpNew。 du=C1*du+C2*e[0]+C3*e[1]+C4*e[2]。 /*PID 運(yùn)算 */ u=u+du。 return u。 } ///////////////////////// 帶 死 區(qū) 的 數(shù) 字 PID 算法 37 /////////////////////////////// float PID::PIDdsqsz(float New, float Sp,float u,float du,float d) { static float e[3]={,},p=,b=。 //b 為死區(qū)區(qū)間 ,設(shè)為 e[2]=e[1]。 /*數(shù)據(jù)更新 */ e[1]=e[0]。 e[0]=SpNew。 if(fabs(e[0])b) p=e[0]。 if(fabs(e[0])b) p=0。 du=C1*du+C2*p+C3*e[1]+C4*e[2]。 /*PID 運(yùn)算 */ u=u+du。 return u。 } : // : interface for the PID class. if !defined(AFX_PID_H__0CCC6E88_F04F_46CB_AF93_3D8B7D89DB20__INCLUDED_) define AFX_PID_H__0CCC6E88_F04F_46CB_AF93_3D8B7D89DB20__INCLUDED_ if _MSC_VER 1000 pragma once endif // _MSC_VER 1000 includeiostream includecstring includecstdio include using namespace std。 38 class PID { public: void setKp(double a
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1