位置型PID的C語(yǔ)言代碼的實(shí)現(xiàn)過(guò)程詳細(xì)資料概述
資料介紹
上一節(jié)中已經(jīng)抽象出了位置性 PID 和增量型 PID 的數(shù)學(xué)表達(dá)式,這一節(jié),重 點(diǎn)講解 C 語(yǔ)言代碼的實(shí)現(xiàn)過(guò)程,算法的 C 語(yǔ)言實(shí)現(xiàn)過(guò)程具有一般性,通過(guò) PID 算法的 C 語(yǔ)言實(shí)現(xiàn),可以以此類(lèi)推,設(shè)計(jì)其它算法的 C 語(yǔ)言實(shí)現(xiàn)。
?
第一步:定義 PID 變量結(jié)構(gòu)體,代碼如下:
struct _pid{ float SetSpeed; //定義設(shè)定值 float ActualSpeed; //定義實(shí)際值 float err; //定義偏差值 float err_last; //定義上一個(gè)偏差值 float Kp,Ki,Kd; //定義比例、積分、微分系數(shù) float voltage; //定義電壓值(控制執(zhí)行器的變量) float integral; //定義積分值 }pid;
控制算法中所需要用到的參數(shù)在一個(gè)結(jié)構(gòu)體中統(tǒng)一定義,方便后面的使用。
第二部:初始化變量,代碼如下:
void PID_init(){ printf(“PID_init begin \n”); pid.SetSpeed=0.0; pid.ActualSpeed=0.0; pid.err=0.0; pid.err_last=0.0; pid.voltage=0.0; pid.integral=0.0; pid.Kp=0.2; pid.Ki=0.015; pid.Kd=0.2; printf(“PID_init end \n”); }
統(tǒng)一初始化變量,尤其是 Kp,Ki,Kd 三個(gè)參數(shù),調(diào)試過(guò)程當(dāng)中,對(duì)于要求的控制 效果,可以通過(guò)調(diào)節(jié)這三個(gè)量直接進(jìn)行調(diào)節(jié)。
第三步:編寫(xiě)控制算法,代碼如下:
float PID_realize(float speed){ pid.SetSpeed=speed; pid.err=pid.SetSpeed-pid.ActualSpeed;
PID 控制----C 語(yǔ)言講解
pid.integral+=pid.err; pid.voltage=pid.Kp*pid.err+pid.Ki*pid.integral+pid.Kd*(pid.err-pi d.err_last); pid.err_last=pid.err; pid.ActualSpeed=pid.voltage*1.0; return pid.ActualSpeed; }
注意:這里用了最基本的算法實(shí)現(xiàn)形式,沒(méi)有考慮死區(qū)問(wèn)題,沒(méi)有設(shè)定上下限, 只是對(duì)公式的一種直接的實(shí)現(xiàn),后面的介紹當(dāng)中還會(huì)逐漸的對(duì)此改進(jìn)。
到此為止,PID 的基本實(shí)現(xiàn)部分就初步完成了。下面是測(cè)試代碼:
int main(){ printf(“System begin \n”); PID_init(); int count=0; while(count《1000) { float speed=PID_realize(200.0); printf(“%f\n”,speed); count++; } return 0; }
- 使用MATLAB的實(shí)驗(yàn)源代碼C語(yǔ)言實(shí)現(xiàn)AM調(diào)制的詳細(xì)資料合集免費(fèi)下載 2次下載
- 使用C語(yǔ)言實(shí)現(xiàn)51單片機(jī)中的PID算法代碼免費(fèi)下載
- 如何使用C語(yǔ)言實(shí)現(xiàn)軟復(fù)位詳細(xì)資料說(shuō)明
- C語(yǔ)言教程之Makefile基礎(chǔ)的詳細(xì)資料說(shuō)明 12次下載
- C語(yǔ)言程序設(shè)計(jì)教程之C語(yǔ)言基礎(chǔ)的詳細(xì)資料概述 66次下載
- C語(yǔ)言入門(mén)教程之堆棧的詳細(xì)資料概述 12次下載
- C語(yǔ)言編譯器MINGW的使用說(shuō)明詳細(xì)資料概述 15次下載
- C語(yǔ)言教程之如何選擇結(jié)構(gòu)程序設(shè)計(jì)的詳細(xì)資料概述 3次下載
- C語(yǔ)言常用的預(yù)處理命令和循環(huán)左移右移函數(shù)的詳細(xì)資料概述 71次下載
- levitator的ino和pid源代碼詳細(xì)資料免費(fèi)下載 3次下載
- C++語(yǔ)言入門(mén)教程之C++語(yǔ)言程序設(shè)計(jì)函數(shù)的詳細(xì)資料概述免費(fèi)下載 23次下載
- C++語(yǔ)言入門(mén)教程之C++語(yǔ)言程序設(shè)計(jì)數(shù)組的詳細(xì)資料概述免費(fèi)下載 9次下載
- 實(shí)現(xiàn)TFT LCD的測(cè)試C語(yǔ)言函數(shù)詳細(xì)資料免費(fèi)下載 11次下載
- PID程序算法的詳細(xì)資料概述免費(fèi)下載 36次下載
- 單片機(jī)C語(yǔ)言程序設(shè)計(jì)的20例基礎(chǔ)程序設(shè)計(jì)詳細(xì)資料概述 87次下載
- 位置式PID與增量式PID的區(qū)別 7254次閱讀
- 位置式PID和增量式PID的C語(yǔ)言實(shí)現(xiàn) P、I、D各個(gè)參數(shù)的作用 1884次閱讀
- 如何通過(guò)C語(yǔ)言和梯形圖實(shí)現(xiàn)PID控制算法 1114次閱讀
- PID控制算法代碼 PID控制算法的原理 2809次閱讀
- C 語(yǔ)言的頭文件路徑位置問(wèn)題 6350次閱讀
- SPI總線(xiàn)驅(qū)動(dòng)的C語(yǔ)言源代碼詳細(xì)概述 7345次閱讀
- C語(yǔ)言變量的存儲(chǔ)類(lèi)別有哪些詳細(xì)資料介紹 4839次閱讀
- 使用C語(yǔ)言實(shí)現(xiàn)萬(wàn)年歷星期速算法的源代碼免費(fèi)下載 3210次閱讀
- 庫(kù)卡機(jī)器人模擬量輸入輸出編程的詳細(xì)資料概述 7037次閱讀
- 開(kāi)關(guān)電源的正激變換器基本工作原理及元器件如何選擇等詳細(xì)資料概述 1.4w次閱讀
- PLC常用基本環(huán)節(jié)梯形圖和詳細(xì)文字說(shuō)明詳細(xì)資料概述 1w次閱讀
- 變壓器保護(hù)的基本要求,保護(hù)配置和運(yùn)行規(guī)定的詳細(xì)資料概述 9679次閱讀
- 位置式PID算法的C語(yǔ)言代碼 1.2w次閱讀
- 詳細(xì)剖析C語(yǔ)言編譯過(guò)程 5048次閱讀
- c語(yǔ)言實(shí)現(xiàn)des加密算法詳細(xì)過(guò)程 3.5w次閱讀
下載排行
本周
- 1TC358743XBG評(píng)估板參考手冊(cè)
- 1.36 MB | 330次下載 | 免費(fèi)
- 2開(kāi)關(guān)電源基礎(chǔ)知識(shí)
- 5.73 MB | 6次下載 | 免費(fèi)
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設(shè)計(jì)
- 0.60 MB | 3次下載 | 免費(fèi)
- 5基于FPGA的光纖通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 0.61 MB | 2次下載 | 免費(fèi)
- 651單片機(jī)窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費(fèi)
- 751單片機(jī)大棚環(huán)境控制器仿真程序
- 1.10 MB | 2次下載 | 免費(fèi)
- 8基于51單片機(jī)的RGB調(diào)色燈程序仿真
- 0.86 MB | 2次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33564次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
- 0.00 MB | 6653次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537796次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191185次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評(píng)論