




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第第頁什么是PID,PID算法代碼實現(xiàn)(PI)D(算法)可以用于溫度控制、水位控制、飛行姿態(tài)控制等領(lǐng)域。
后面我們通過PID控制電機進行說明。
自動控制系統(tǒng)
在直流有刷(電機)的基礎(chǔ)驅(qū)動中,如果電機負載不變,我們只要設(shè)置固定的占空比(電壓),電機的速度就會穩(wěn)定在目標范圍。
然而,在實際的應(yīng)用中,負載可能會發(fā)生變化,此時如果還是輸出固定的電壓,電機的速度就偏離目標范圍了,為了解決這個問題,我們需要引入自動(控制系統(tǒng))中的閉環(huán)控制。接下來我們開始學習自動控制系統(tǒng)的內(nèi)容。
概念:用自動控制裝置,對關(guān)鍵參數(shù)進行自動控制,使它在受到外界干擾而偏離正常狀態(tài)時,能夠被自動地調(diào)節(jié)回到目標范圍內(nèi)。
應(yīng)用場景:電水壺保溫系統(tǒng)
、大棚溫控系統(tǒng)、水位控制系統(tǒng),等等。
分類:自動控制系統(tǒng)分為開環(huán)控制系統(tǒng)和閉環(huán)控制系統(tǒng)
。
①開環(huán)控制系統(tǒng)
在開環(huán)控制系統(tǒng)中,系統(tǒng)輸出只受輸入的控制,沒有反饋回路,控制精度和抑制干擾的特性都比較差。
電風扇風力控制系統(tǒng)就是一個開環(huán)控制的系統(tǒng),我們設(shè)置好目標風力之后,(控制電路)就輸出相應(yīng)的電壓(假設(shè)是電壓控制),此時電機的扇葉轉(zhuǎn)速就被控制在目標范圍了。
理想狀態(tài)下,風扇的輸出風力確實可以穩(wěn)定在目標值附近,然而,在實際的使用中,電機會逐漸老化,扇葉上的灰塵也會讓負載增大,此時我們所設(shè)定目標風力和實際風力可能就存在偏差了。
②閉環(huán)控制系統(tǒng)
在閉環(huán)控制系統(tǒng)中,引入了反饋回路,利用輸出(實際值)和輸入(目標值)的偏差,對系統(tǒng)進行控制,避免偏離預(yù)定目標。
大棚溫控系統(tǒng)就是一個閉環(huán)控制的系統(tǒng),我們設(shè)置好目標溫度之后,(溫度傳感器)會采集棚內(nèi)的實際溫度,然后將目標溫度和實際溫度進行偏差的計算,計算后的結(jié)果輸入到控制電路中,控制電路進一步控制溫控設(shè)備進行升溫和降溫,此時棚內(nèi)的實際溫度就被控制在目標范圍了。
當實際溫度因外部影響偏離目標值時,溫度傳感器(反饋電路)就能及時的反饋偏差,讓系統(tǒng)自動調(diào)節(jié)溫控設(shè)備,使得實際溫度逐漸回到目標范圍。
PID算法
PID算法是閉環(huán)控制系統(tǒng)中常用的算法,PID分別是Propor(ti)on(比例)、Integral(積分)、Differential(微分)的首字母縮寫。它是一種結(jié)合比例、積分和微分三個環(huán)節(jié)于一體的閉環(huán)控制算法。
我們將輸入目標值和實際輸出值進行偏差的計算,然后把計算結(jié)果輸入到PID控制算法中,經(jīng)過比例、積分和微分三個環(huán)節(jié)的運算,運算后的輸出作用于執(zhí)行器,從而讓系統(tǒng)的實際值逐漸靠近目標值。
以大棚溫控系統(tǒng)為例,來理解PID算法中三個環(huán)節(jié)的作用。
比例環(huán)節(jié)(Proportion)
比例環(huán)節(jié)可以成比例地反應(yīng)控制系統(tǒng)的偏差(信號),即輸出與輸入偏差成正比,可以用來減小系統(tǒng)的偏差。公式如下:
u—輸出
Kp—比例系數(shù)
e—偏差
我們可以通過大棚溫控去理解PID公式。例如需要調(diào)節(jié)棚內(nèi)溫度為30℃,而實際溫度為10℃,此時的偏差e=20,由比例環(huán)節(jié)的公式可知
當e確定時,Kp越大則輸出u越大,也就是溫控系統(tǒng)的調(diào)節(jié)力度越大,這樣就可以更快地達到目標溫度;而當Kp確定時,偏差e越大則輸出u越大。
由此可見,在比例環(huán)節(jié)中,比例系數(shù)Kp和偏差e越大則系統(tǒng)消除偏差的時間越短
當Kp的值越大時,其對應(yīng)的橙色曲線達到目標值的時間就越短,與此同時,橙色曲線出現(xiàn)了一定幅度的超調(diào)和振蕩,這會使得系統(tǒng)的穩(wěn)定性下降。
所以我們在設(shè)置比例系數(shù)的時候,并不是越大越好,而是要兼顧消除偏差的時間以及整個系統(tǒng)的穩(wěn)定性。
在實際的應(yīng)用中,如果僅有比例環(huán)節(jié)的控制,可能會給系統(tǒng)帶來一個問題:靜態(tài)誤差。
靜態(tài)誤差是指系統(tǒng)控制過程趨于穩(wěn)定時,目標值與實測值之間的偏差。
如果我們在需要調(diào)節(jié)棚內(nèi)溫度為30℃,而實際溫度為25℃,此時偏差e=5,Kp為固定值,那么此時的輸出可以讓大棚在半個小時之內(nèi)升溫5℃,而外部的溫差可以讓大棚在半個小時之內(nèi)降溫5℃,也就是說,輸出u的作用剛好被外部影響抵消了,這就使得偏差會一直存在。
我們可以通過增大Kp來增大輸出,以此消除偏差。在實際應(yīng)用中,此方法的局限性很大,因為我們不能確定偏差的大小,它是在實時變化的,如果我們把Kp設(shè)置得太大,就會引入超調(diào)和振蕩,讓整個系統(tǒng)的穩(wěn)定性變差。因此,為了消除靜態(tài)誤差,我們引入了積分環(huán)節(jié)。
積分環(huán)節(jié)(Integral)
積分環(huán)節(jié)可以對偏差e進行積分,只要存在偏差,積分環(huán)節(jié)就會不斷起作用,主要用于消除靜態(tài)誤差,提高系統(tǒng)的無差度。
引入積分環(huán)節(jié)后,比例+積分環(huán)節(jié)的公式如下:
u—輸出
e—
偏差
∑e—累計偏差
Kp—
比例系數(shù)
Ki—積分系數(shù)
通過以大棚溫控分析可以知道,如果溫控系統(tǒng)的比例環(huán)節(jié)作用被抵消,存在靜態(tài)誤差5℃,此時偏差存在,積分環(huán)節(jié)會一直累計偏差,以此增大輸出,從而消除靜態(tài)誤差。
從上述公式中可以得知,當積分系數(shù)Ki或者累計偏差越大時,輸出就越大,系統(tǒng)消除靜態(tài)誤差的時間就越短。
當
Ki
的值越大時,其對應(yīng)的橙色曲線達到目標值的時間就越短,與此同時,橙色曲線出現(xiàn)了一定幅度的超調(diào)和振蕩,這會使得系統(tǒng)的穩(wěn)定性下降
因此,我們在設(shè)置積分系數(shù)的時候,并不是越大越好,而是要兼顧消除靜態(tài)誤差的時間以及整個系統(tǒng)的穩(wěn)定性。
只要系統(tǒng)還存在偏差,積分環(huán)節(jié)就會不斷地累計偏差。當系統(tǒng)偏差為0的時候,說明已經(jīng)達到目標值,此時的累計偏差不再變化,但是積分環(huán)節(jié)依舊在發(fā)揮作用(此時往往作用最大),這就很容易產(chǎn)生超調(diào)的現(xiàn)象了。
因此,我們需要引入微分環(huán)節(jié),提前減弱輸出,抑制超調(diào)的發(fā)生。
微分環(huán)節(jié)(Differential)
微分環(huán)節(jié)可以反應(yīng)偏差量的變化趨勢,根據(jù)偏差的變化量提前作出相應(yīng)控制,減小超調(diào),克服振蕩。引入微分環(huán)節(jié)后,比例+積分+微分環(huán)節(jié)的公式如下:
我們繼續(xù)使用大棚溫控去分析微分環(huán)節(jié)的作用。如果溫控系統(tǒng)目標溫度為30℃,在上午八點的時候存在偏差15℃,經(jīng)過一段時間的調(diào)節(jié),到了上午九點,此時偏差已經(jīng)縮小到5℃,偏差的變化量=九點的偏差(第k次)-八點的偏差(第k-1次)=-10,結(jié)合上述公式可知,此時微分環(huán)節(jié)會削弱比例和積分環(huán)節(jié)的作用,減小輸出以抑制超調(diào)。
最終得到了一個PID算法公式:
這個公式是PID離散公式之一,除了離散公式之外,PID還有連續(xù)的公式,但是因為連續(xù)的公式不利于機器計算,我們一般不研究。每一個系統(tǒng)的PID系數(shù)并不是通用的,這需要根據(jù)實際的情況去設(shè)置。
PID算法離散公式
位置式PID公式
這個公式的計算需要全部控制量參與,它的每一次輸出都和過去的狀態(tài)有關(guān)。
增量式PID公式
通過位置式的PID公式,可推導出增量式PID公式
將k=k-1代入位置式PID公式
由
增量式PID可以看出,增量式PID的計算并不需要一直累計偏差,它的輸出與近三次的偏差有很大關(guān)系。
注意:增量式PID公式輸出的只是控制量的增量。假設(shè)電機實際轉(zhuǎn)速為50RPM,現(xiàn)在我們要讓它加速到60RPM,如果采用的是位置式PID,系統(tǒng)將直接輸出60RPM對應(yīng)的控制量(占空比);
如果采用的是增量式PID,系統(tǒng)將輸出提速10RPM對應(yīng)的控制量(占空比),此時我們還需要加上上次(50RPM)的輸出。
兩個PID公式的不同點
兩種
PID
公式的優(yōu)缺點
①位置式:
優(yōu)點:位置式PID是一種非遞推式算法,帶有積分作用,適用于不帶積分部件的對象。
缺點:全量計算,計算錯誤影響很大;需要對偏差進行累加,運算量大。
②增量式:
優(yōu)點:只輸出增量,計算錯誤影響小;不需要累計偏差,運算量少,實時性相對較好。
缺點:積分截斷效應(yīng)大,有穩(wěn)態(tài)誤差。
積分飽和問題
在位置式PID中,如果系統(tǒng)長時間無法達到目標值,累計偏差(積分)就會變得很大,此時系統(tǒng)的響應(yīng)就很慢了。
例如某個電機能達到的最大速度為300RPM,而我們設(shè)置了目標速度為350RPM,這明顯是一個不合理的目
由于系統(tǒng)長時間無法達到目標值,累計偏差(積分)會變得越來越大,逐漸達到深度飽和的狀態(tài),此時我們再設(shè)置一個合理范圍的目標速度(例如200RPM),系統(tǒng)就沒有辦法在短時間內(nèi)響應(yīng)了。
為了避免位置式PID中可能出現(xiàn)的積分飽和問題,可以考慮下面解決方法:
①
優(yōu)化PID曲線,系統(tǒng)越快達到目標值,累計的偏差就越??;
②
限制目標值調(diào)節(jié)范圍,規(guī)避可以預(yù)見的偏差;
③
進行積分限幅,在調(diào)整好PID系數(shù)之后,根據(jù)實際系統(tǒng)來選擇限幅范圍。
PID
算法代碼實現(xiàn)
控制量相關(guān)的結(jié)構(gòu)體
我們知道PID的離散化公式后,實現(xiàn)PID算法的代碼是非常簡單。
定義結(jié)構(gòu)體來管理這些控制量
typedefstruct{__IOfloatSetPoint;/*目標值*/__IOfloatActualValue;/*期望輸出值*/__IOfloatSumError;/*偏差累計*/__IOfloatProportion;/*比例系數(shù)P*/__IOfloatIntegral;/*積分系數(shù)I*/__IOfloatDerivative;/*微分系數(shù)D*/__IOfloatError;/*Error[1],第k次偏差*/__IOfloatLastError;/*Error[-1],第k-1次偏差*/__IOfloatPrevError;/*Error[-2],第k-2次偏差*/}PID_TypeDef;PID算法代碼
位置式PID代碼
/**@briefpid閉環(huán)控制*@pa(ram)*PID:PID結(jié)構(gòu)體變量地址*@paramFeedback_value:當前實際值*@retval期望輸出值*/int32_town_pid_ctrl(PID_TypeDef*PID,floatFeedback_value){
PID->Error=(float)(PID->SetPoint-Feedback_value);/*計算偏差*/
PID->SumError+=PID->Error;/*累計偏差*/
PID->ActualValue=(PID->Proportion*PID->Error)/*比例環(huán)節(jié)*/
+(PID->Integral*PID->SumError)/*積分環(huán)節(jié)*/
+(PID->Derivative*(PID->Error-PID->LastError));/*微分環(huán)節(jié)*/
PID->LastError=PID->Error;/*存儲偏差,用于下次計算*/
return((int32_t)(PID->ActualValue));/*返回計算后輸出的數(shù)值*/}own_pid_ctrl函數(shù)用來進行位置式PID的控制,該函數(shù)的2個形參:PID傳入PID控制量相關(guān)的結(jié)構(gòu)體地址;Feedback_value傳入當前系統(tǒng)的實際值,用于計算偏差。
在函數(shù)中,我們先計算本次偏差Error,然后把偏差累計,存入SumError成員當中,接著根據(jù)位置式的公式進行三個環(huán)節(jié)的計算,計算后的期望輸出存入ActualValue成員當中,然后存儲本次偏差,最后返回期望輸出值。
增量式PID代碼
/**@briefpid閉環(huán)控制*@param*PID:PID結(jié)構(gòu)體變量地址*@paramFeedback_value:當前實際值*@retval期望輸出值*/int32_town_pid_ctrl(PID_TypeDef*PID,floatFeedback_value){PID->Error=(float)(PID->SetPoint-Feedback_value);/*計算偏差*/PID
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度預(yù)制構(gòu)件鋼筋加工與安裝合同
- 二零二五年度養(yǎng)老機構(gòu)租賃服務(wù)合同
- 2025年度餐飲管理合伙企業(yè)合作協(xié)議書
- 二零二五年度兒童娛樂中心店面租賃協(xié)議模板
- 二零二五年度酒店客房設(shè)施設(shè)備保養(yǎng)與維修合同
- 2025年度網(wǎng)絡(luò)安全技術(shù)顧問聘請合同范本
- 二零二五年度牧草種植基地牧草購買與種植保險協(xié)議
- 2025年度汽修廠汽車維修行業(yè)技術(shù)標準制定與實施勞務(wù)合同
- 2025年貨車掛靠業(yè)務(wù)委托管理合同
- 二零二五年度酒店客房承包經(jīng)營及收益分成協(xié)議
- 《陶瓷工藝技術(shù)》課件
- 變更強制措施的申請書
- 《苗圃生產(chǎn)與管理》教案-第二章 園林苗木的種實生產(chǎn)
- 供電所安全演講
- 供應(yīng)鏈韌性提升與風險防范-深度研究
- 2025年陜西延長石油有限責任公司招聘筆試參考題庫含答案解析
- Excel辦公技巧培訓
- 《智能制造技術(shù)基礎(chǔ)》課件-第4章 加工過程的智能監(jiān)測與控制
- 2024年度英語課件容貌焦慮
- 初一家長會課件96108
- 罪犯正常死亡報告范文
評論
0/150
提交評論