pid控制從入門到精通超詳細(xì)教程_第1頁(yè)
pid控制從入門到精通超詳細(xì)教程_第2頁(yè)
pid控制從入門到精通超詳細(xì)教程_第3頁(yè)
pid控制從入門到精通超詳細(xì)教程_第4頁(yè)
pid控制從入門到精通超詳細(xì)教程_第5頁(yè)
已閱讀5頁(yè),還剩25頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

PID調(diào)節(jié)控制做電機(jī)速度控制 PID調(diào)節(jié)控制做電機(jī)速度控制V1.1–Jan23,2006中文版PID調(diào)節(jié)控制做電機(jī)速度控制凌陽(yáng)保留對(duì)此文件修改之權(quán)利且不另行通知。凌陽(yáng)所提供之信息相信為正確且提出訂單前,自行確定所使用之相關(guān)技可靠之信息,但并不保證本文件中絕無(wú)錯(cuò)誤。請(qǐng)于向凌陽(yáng)術(shù)文件及規(guī)格為最新之版本。若因貴公司使用本公司之文件或,而涉及第三人之專利或著作權(quán)等智能權(quán)之應(yīng)用及配合時(shí),則應(yīng)由貴公司負(fù)責(zé)取得同意及,本公司僅單純販?zhǔn)?,上述關(guān)于同意及,非屬本公司應(yīng)為保證之責(zé)任。又凌陽(yáng)之正式,本公司之所有不得使用于醫(yī)療器材,維持生命系統(tǒng)及飛航等相關(guān)設(shè)備。SunplusTechnologyPID調(diào)節(jié)控制做電機(jī)速度控制凌陽(yáng)保留對(duì)此文件修改之權(quán)利且不另行通知。凌陽(yáng)所提供之信息相信為正確且提出訂單前,自行確定所使用之相關(guān)技可靠之信息,但并不保證本文件中絕無(wú)錯(cuò)誤。請(qǐng)于向凌陽(yáng)術(shù)文件及規(guī)格為最新之版本。若因貴公司使用本公司之文件或,而涉及第三人之專利或著作權(quán)等智能權(quán)之應(yīng)用及配合時(shí),則應(yīng)由貴公司負(fù)責(zé)取得同意及,本公司僅單純販?zhǔn)?,上述關(guān)于同意及,非屬本公司應(yīng)為保證之責(zé)任。又凌陽(yáng)之正式,本公司之所有不得使用于醫(yī)療器材,維持生命系統(tǒng)及飛航等相關(guān)設(shè)備。SunplusTechnologyCo.,.PAGE1V1.1–Jan23,2006PID調(diào)節(jié)控制做電機(jī)速度控制頁(yè)1模擬PID控制 11.1模擬PID控制原理 12數(shù)字PID控制 32.12.22.3位置式PID算法 3增量式PID算法 4控制器參數(shù)整定 42.3.12.3.22.3.32.3.4湊試法 5臨界比例法 5PID調(diào)節(jié)控制做電機(jī)速度控制頁(yè)1模擬PID控制 11.1模擬PID控制原理 12數(shù)字PID控制 32.12.22.3位置式PID算法 3增量式PID算法 4控制器參數(shù)整定 42.3.12.3.22.3.32.3.4湊試法 5臨界比例法 5經(jīng)驗(yàn)法 5采樣周期的選擇 62.42.5參數(shù)調(diào)整規(guī)則的探索6自校正PID控制器 73軟件說(shuō)明 83.13.23.33.4軟件說(shuō)明 8構(gòu)成 8DMC界面 8子程序說(shuō)明 94程序范例 164.14.24.3DEMO程序 16程序流程與說(shuō)明 19中斷子流程與說(shuō)明 205MCU使用215.1MCU硬件使用說(shuō)明 216實(shí)驗(yàn)測(cè)試 226.1響應(yīng)曲線 227參考文獻(xiàn) 26SunplusTechnologyCo.,.PAGE2V1.1–Jan23,2006目錄PID調(diào)節(jié)控制做電機(jī)速度控制SunplusTechnologyCo.,.PAGE3V1.1–Jan23,2006PID調(diào)節(jié)控制做電機(jī)速度控制SunplusTechnologyCo.,.PAGE3V1.1–Jan23,2006日期版本編寫及修訂者編寫及修訂說(shuō)明2004/11/261.0初版2006/1/231.1錯(cuò)誤校正修訂PID調(diào)節(jié)控制做電機(jī)速度控制1 PID控制(on、PID控制器。1.1PID控制原理PID控制。為了說(shuō)明控制器的工作原理,先看一個(gè)例子。如圖1-1所示是一個(gè)小功率直流電機(jī)的調(diào)速原理圖。給定速度n0(t)與實(shí)際轉(zhuǎn)速進(jìn)行比)n(t,經(jīng)過(guò)PID控制器調(diào)整后輸出電壓控制信號(hào)u(tu(t經(jīng)過(guò)功較n(t,其差值e(率放大后,驅(qū)動(dòng)直流電 改變其轉(zhuǎn)速。n0(t)+-小功率直流電機(jī)調(diào)速系統(tǒng)PID調(diào)節(jié)控制做電機(jī)速度控制1 PID控制(on、PID控制器。1.1PID控制原理PID控制。為了說(shuō)明控制器的工作原理,先看一個(gè)例子。如圖1-1所示是一個(gè)小功率直流電機(jī)的調(diào)速原理圖。給定速度n0(t)與實(shí)際轉(zhuǎn)速進(jìn)行比)n(t,經(jīng)過(guò)PID控制器調(diào)整后輸出電壓控制信號(hào)u(tu(t經(jīng)過(guò)功較n(t,其差值e(率放大后,驅(qū)動(dòng)直流電 改變其轉(zhuǎn)速。n0(t)+-小功率直流電機(jī)調(diào)速系統(tǒng)r(ty(t是系統(tǒng)的實(shí)際輸出值,給定值與實(shí)際輸出值構(gòu)成控制偏差e(t)e(t)r(t)y(t)PIDPID控制器的控制規(guī)律為1Tide(t)tu(t)Kp[e(t)e(t)dtTd]dt0其中:KpTiTd――控制器的比例系數(shù)--控制器的時(shí)間,也稱系數(shù)――控制器的微分時(shí)間,也稱微分系數(shù)r(t)e(t)u(t)y(t)++被控對(duì)象-PID控制系統(tǒng)原理圖1、比例部分SunplusTechnologyCo.,.PAGE1V1.1–Jan23,2006+微分比例+e(t)直流電機(jī)n(t)PID控制器u(t)PID調(diào)節(jié)控制做電機(jī)速度控制比例部分的數(shù)學(xué)式表示是:Kp*e(t)KpKp效果。2、部分KpTite(PID調(diào)節(jié)控制做電機(jī)速度控制比例部分的數(shù)學(xué)式表示是:Kp*e(t)KpKp效果。2、部分KpTite(t)dt部分的數(shù)學(xué)式表示是:0從消除系統(tǒng)的偏差。環(huán)節(jié)的調(diào)節(jié)作用雖然會(huì)消除靜態(tài)誤差,但也會(huì)降低系統(tǒng)的響應(yīng)速度,增加系統(tǒng)的超調(diào)量。部分可以常數(shù)Ti越大,產(chǎn)生振蕩;但是增大 常數(shù)Ti會(huì)減慢靜態(tài)誤差的消除過(guò)程,消除偏差所需的時(shí)間也較長(zhǎng),但可以減少超調(diào)量,提高系統(tǒng)的穩(wěn)定性。當(dāng)Ti較小時(shí),則較短。所以必須根據(jù)實(shí)際控制的具體要求來(lái)確定Ti。3、微分部分微分部分的數(shù)學(xué)式表示是:Kp*Tddt實(shí)際的控制系統(tǒng)除了希望消除靜態(tài)誤差外,還要求加快調(diào)節(jié)過(guò)程。在偏差出現(xiàn)的瞬間,或在偏(比例環(huán)節(jié)的作用PIPID控制器。微分環(huán)節(jié)的作用使偏差的變化。它是根據(jù)偏差的變化趨勢(shì)(變化速度)進(jìn)行控制。偏差變化的越快,微分控制器的輸出就越大,并能在偏差值變大之前進(jìn)行修正。微分作用的引入,將有助但微分的作用對(duì)輸入信號(hào)的噪聲很敏感,對(duì)那些噪聲較大的系統(tǒng)一般不用微分,或在微分起作用之前先對(duì)輸入信號(hào)進(jìn)行濾波。微分部分的作用由微分時(shí)間常數(shù)Td決定。Tde(t變化的作用越強(qiáng);Td越小時(shí),則它反抗偏差e(t變化的作用越弱。微分部分顯然對(duì)系統(tǒng)穩(wěn)定有很大的作用。適當(dāng)?shù)剡x擇微分常數(shù)Td,可以使微分作用達(dá)到最優(yōu)。由于計(jì)算機(jī)的出現(xiàn),計(jì)算機(jī)進(jìn)入了控制領(lǐng)域。人們將模擬PID控制規(guī)律引入到計(jì)算機(jī)中來(lái)。對(duì)PIDPIDPID控制。SunplusTechnologyCo.,.PAGE2V1.1–Jan23,2006PID調(diào)節(jié)控制做電機(jī)速度控制2 PID控制數(shù)字式PID控制算法可以分為位置式PID和增量式PID控制算法。2.1PID算法由于計(jì)算機(jī)控制是一種采樣控制,它只能根據(jù)采樣時(shí)刻的偏差計(jì)算控制量,而不能像模擬控制(1-2)中的項(xiàng)和微分項(xiàng)不能直接使用,必須進(jìn)行離散化處理。離散化處理的方法為:以T作為采樣周期,k作為采樣序號(hào),則離散采樣時(shí)間kT對(duì)應(yīng)著連續(xù)時(shí)間t,用矩形法數(shù)值作如下近似變換:近似代替,用一階后向差分近似代替微分,可PID調(diào)節(jié)控制做電機(jī)速度控制2 PID控制數(shù)字式PID控制算法可以分為位置式PID和增量式PID控制算法。2.1PID算法由于計(jì)算機(jī)控制是一種采樣控制,它只能根據(jù)采樣時(shí)刻的偏差計(jì)算控制量,而不能像模擬控制(1-2)中的項(xiàng)和微分項(xiàng)不能直接使用,必須進(jìn)行離散化處理。離散化處理的方法為:以T作為采樣周期,k作為采樣序號(hào),則離散采樣時(shí)間kT對(duì)應(yīng)著連續(xù)時(shí)間t,用矩形法數(shù)值作如下近似變換:近似代替,用一階后向差分近似代替微分,可上式中,為了表示的方便,將類似于e(kT簡(jiǎn)化成等。將(-)代入(-PID表達(dá)式為ek1]TkTdekj0u Kp[eekkjTiT或kukKp*ekKiejKd(ekek1)j0k=0,1,2,……;uk――第k次采樣時(shí)刻的計(jì)算機(jī)輸出值;ek――第k次采樣時(shí)刻輸入的偏差值;ek-1――第k-1次采樣時(shí)刻輸入的偏差值;其中Ki――Ki=Kp*TTi;KdKd=Kp*TdT;或(2-3)的近似計(jì)算可以獲得足夠精確的結(jié)果,離散控制過(guò)程與連續(xù)過(guò)程十分接近。PID控制算法。ek進(jìn)行累加,SunplusTechnologyCo.,.PAGE3V1.1–Jan23,2006PID調(diào)節(jié)控制做電機(jī)速度控制工作量大;并且,因?yàn)橛?jì)算機(jī)輸出的uk對(duì)應(yīng)的是執(zhí)行機(jī)構(gòu)的實(shí)際位置,如果計(jì)算機(jī)出現(xiàn)故障,輸出的uk將大幅度變化,會(huì)引起執(zhí)行機(jī)構(gòu)的大幅度變化,有可能因此造成嚴(yán)重的生產(chǎn)事故,這在實(shí)生產(chǎn)際中是不允許的。增量式PID控制算法可以避免著重現(xiàn)象發(fā)生。2.2PID算法PID是指數(shù)字控制器的輸出只是控制量的增量uk。當(dāng)執(zhí)行機(jī)構(gòu)需要的控制量是增量,而不是位置量的絕對(duì)數(shù)值時(shí),可以使用增量式PID控制算法進(jìn)行控制。PID控制算法可以通過(guò)(2-2)推導(dǎo)出。由(2-2)k-1個(gè)采樣時(shí)刻的輸出值為:e eT eu Kp[eTdk-1 kPID調(diào)節(jié)控制做電機(jī)速度控制工作量大;并且,因?yàn)橛?jì)算機(jī)輸出的uk對(duì)應(yīng)的是執(zhí)行機(jī)構(gòu)的實(shí)際位置,如果計(jì)算機(jī)出現(xiàn)故障,輸出的uk將大幅度變化,會(huì)引起執(zhí)行機(jī)構(gòu)的大幅度變化,有可能因此造成嚴(yán)重的生產(chǎn)事故,這在實(shí)生產(chǎn)際中是不允許的。增量式PID控制算法可以避免著重現(xiàn)象發(fā)生。2.2PID算法PID是指數(shù)字控制器的輸出只是控制量的增量uk。當(dāng)執(zhí)行機(jī)構(gòu)需要的控制量是增量,而不是位置量的絕對(duì)數(shù)值時(shí),可以使用增量式PID控制算法進(jìn)行控制。PID控制算法可以通過(guò)(2-2)推導(dǎo)出。由(2-2)k-1個(gè)采樣時(shí)刻的輸出值為:e eT eu Kp[eTdk-1 k2]jTiTj0與(2-4)PID控制算法公式為:2ek-1ek2)eTdekTu=u-uKp(e-ek k k kTiTKp(1TTd)e-Kp(12TdKpTde)k2kTi TTTAekBek-1Cek2T Td );其中Ti TTC=KpTd。T由(2-5)可以看出,如果計(jì)算機(jī)控制系統(tǒng)采用恒定的采樣周期TA、B、C,(2-5)求出控制量。PID算法(2-2)相比,計(jì)算量小的多,因此在實(shí)際中得到廣泛的應(yīng)用。而位置式PID控制算法也可以通過(guò)增量式控制算法推出遞推計(jì)算公式:uk=uk-1+ukPID控制算法。2.3 控制器參數(shù)整定控制器參數(shù)整定:指決定調(diào)節(jié)器的比例系數(shù)Kp、時(shí)間Ti、微分時(shí)間Td和采樣周期Ts的SunplusTechnologyCo.,.PAGE4V1.1–Jan23,2006PID調(diào)節(jié)控制做電機(jī)速度控制具體數(shù)值。整定的實(shí)質(zhì)是通過(guò)改變調(diào)節(jié)器的參數(shù),使其特性和過(guò)程特性相匹配,以改善系統(tǒng)的動(dòng)態(tài)和靜態(tài)指標(biāo),取得最佳的控制效果。計(jì)算整定法有對(duì)數(shù)頻率特性法和根軌跡法等;工程整定法有湊試法、臨界比例法、經(jīng)驗(yàn)法、衰減曲線法和響應(yīng)曲線法等。工程整定法特點(diǎn)不需要事先知道過(guò)程的數(shù)學(xué)模型,直接在過(guò)程控制系統(tǒng)中進(jìn)行現(xiàn)場(chǎng)整定方法簡(jiǎn)單、計(jì)算簡(jiǎn)便、易于掌握。2.3.1湊試法按照先比例(P、再(I、最后微分()的順序。置調(diào)節(jié)器 PID調(diào)節(jié)控制做電機(jī)速度控制具體數(shù)值。整定的實(shí)質(zhì)是通過(guò)改變調(diào)節(jié)器的參數(shù),使其特性和過(guò)程特性相匹配,以改善系統(tǒng)的動(dòng)態(tài)和靜態(tài)指標(biāo),取得最佳的控制效果。計(jì)算整定法有對(duì)數(shù)頻率特性法和根軌跡法等;工程整定法有湊試法、臨界比例法、經(jīng)驗(yàn)法、衰減曲線法和響應(yīng)曲線法等。工程整定法特點(diǎn)不需要事先知道過(guò)程的數(shù)學(xué)模型,直接在過(guò)程控制系統(tǒng)中進(jìn)行現(xiàn)場(chǎng)整定方法簡(jiǎn)單、計(jì)算簡(jiǎn)便、易于掌握。2.3.1湊試法按照先比例(P、再(I、最后微分()的順序。置調(diào)節(jié)器 投入運(yùn)行,由小到大整定比例系數(shù)Kp。求得滿意的1/4衰減度過(guò)渡過(guò)程曲線。引入 作用(此時(shí)應(yīng)將上述比例系數(shù)Kp設(shè)置為5/6Kp。將Ti由大到小進(jìn)行整定。若需引入微分作用時(shí),則將Td按經(jīng)驗(yàn)值或按Td=(1/3~1/4)Ti設(shè)置,并由小到大加入。2.3.2臨界比例法Ku界振蕩周期Tu。臨界比例度法步驟:、將調(diào)節(jié)器的 時(shí)間Ti置于最大(Ti∞,微分間置零(Td,比例系數(shù)Kp適當(dāng)平衡操作一段時(shí)間,把系統(tǒng)投入自動(dòng)運(yùn)行。2KpKu和臨界振蕩周期Tu值。3Ku和TuKp、Ti和Td的值。步調(diào)整。臨界比例度法整定注意事項(xiàng):工業(yè)生產(chǎn)不利。Ku進(jìn)行調(diào)節(jié)器參數(shù)整定。2.3.3經(jīng)驗(yàn)法用湊試法確定PID參數(shù)需要經(jīng)過(guò)多次反復(fù)的實(shí)驗(yàn),為了減少湊試次數(shù),提高工作效率,可以借PID控制參數(shù),這就是經(jīng)驗(yàn)法。例系數(shù),使系統(tǒng)對(duì)階躍輸入的響應(yīng)達(dá)到臨界狀態(tài),這時(shí)記下比例系數(shù)Ku、臨界振蕩周期為Tu,根SunplusTechnologyCo.,.PAGE5V1.1–Jan23,2006PID調(diào)節(jié)控制做電機(jī)速度控制2-1所示。臨界比例法確定的模擬控制器參數(shù)這種臨界比例法使針對(duì)模擬PID控制器,對(duì)于數(shù)字PID控制器,只要采樣周期取的較小,原則上也同樣使用。在電的控制中,可以先采用臨界比例法,然后在采用臨界比例法求得結(jié)果的基礎(chǔ)上,用湊試法進(jìn)一步完善。性和快速性。如果要求更大的衰減,則必須用湊試法對(duì)參數(shù)作進(jìn)一步的調(diào)整。2.3.4PID調(diào)節(jié)控制做電機(jī)速度控制2-1所示。臨界比例法確定的模擬控制器參數(shù)這種臨界比例法使針對(duì)模擬PID控制器,對(duì)于數(shù)字PID控制器,只要采樣周期取的較小,原則上也同樣使用。在電的控制中,可以先采用臨界比例法,然后在采用臨界比例法求得結(jié)果的基礎(chǔ)上,用湊試法進(jìn)一步完善。性和快速性。如果要求更大的衰減,則必須用湊試法對(duì)參數(shù)作進(jìn)一步的調(diào)整。2.3.4采樣周期的選擇香農(nóng)(Shannon)采樣定律:為不失真地復(fù)現(xiàn)信號(hào)的變化,采樣頻率至少應(yīng)大于或等于連續(xù)信號(hào)最高頻率分量的二倍。根據(jù)采樣定律可以確定采樣周期的上限值。實(shí)際采樣周期的選擇還要受到多方面因素的影響,不同的系統(tǒng)采樣周期應(yīng)根據(jù)具體情況來(lái)選擇。(如流量、)波動(dòng)大、易受干擾的過(guò)程,應(yīng)選取較短的采樣周期;反之,當(dāng)過(guò)程響應(yīng)慢(如溫度、成份、滯后大時(shí),可選取較長(zhǎng)的采樣周期。采樣周期的選取應(yīng)與PID在執(zhí)行器的響應(yīng)速度比較慢時(shí),過(guò)小的采樣周期將失去意義,因此可適當(dāng)選大一點(diǎn);在計(jì)算機(jī)運(yùn)算速度允許的條件下,采樣周期短,則控制品質(zhì)好;當(dāng)過(guò)程的純滯后時(shí)間較長(zhǎng)時(shí),一般選取采樣周期1/4~1/8。2.4參數(shù)調(diào)整規(guī)則的探索PID參數(shù)應(yīng)依據(jù)以下幾點(diǎn)來(lái)適應(yīng)系統(tǒng)的動(dòng)態(tài)過(guò)程。1KpKp值要減小,Ki取小值;在偏差很小時(shí),為消除靜差,克服超調(diào),使系統(tǒng)盡快穩(wěn)定,Kp值繼續(xù)Ki值不變或稍取大。2、當(dāng)偏差與偏差變化率同號(hào)時(shí),被控量是朝偏離既定值方向變化。因此,當(dāng)被控量接近定值時(shí),反號(hào)的比列作用阻礙作用,避免超調(diào)及隨之而來(lái)的振蕩,有利于控制;而當(dāng)被控量遠(yuǎn)未接近各定值并向定值變化時(shí),則由于這兩項(xiàng)反向,將會(huì)減慢控制過(guò)程。在偏差比較大時(shí),偏差變Kp值取零或負(fù)值,以加快控制的動(dòng)態(tài)過(guò)程。3ek-ek1KpKi取值越大,反之亦然。同時(shí),要結(jié)合偏差大小來(lái)考慮。SunplusTechnologyCo.,.PAGE6V1.1–Jan23,2006控制器類型KpTiTdP0.5KuPIKuTuPID0.6Ku0.5TuTuPID調(diào)節(jié)控制做電機(jī)速度控制4、微分作用可改善系統(tǒng)的動(dòng)態(tài)特性,偏差的變化,有助于減小超調(diào)量,消除振蕩,縮短調(diào)節(jié)時(shí)間ts,允許加大Kp,使系統(tǒng)穩(wěn)態(tài)誤差減小,提高控制精度,達(dá)到滿意的控制效果。所以,在ePID調(diào)節(jié)控制做電機(jī)速度控制4、微分作用可改善系統(tǒng)的動(dòng)態(tài)特性,偏差的變化,有助于減小超調(diào)量,消除振蕩,縮短調(diào)節(jié)時(shí)間ts,允許加大Kp,使系統(tǒng)穩(wěn)態(tài)誤差減小,提高控制精度,達(dá)到滿意的控制效果。所以,在ekKdPI控制;在ekKdPID控制。2.5PID控制器周期TuKu。Z-N條件,有T0.1TuTi0.5Tu2-5)則有:uk=Kp(2.45ek3.5ek11.25ek2)Kp的校正。SunplusTechnologyCo.,.PAGE7V1.1–Jan23,2006PID調(diào)節(jié)控制做電機(jī)速度控制3 軟件說(shuō)明3.1軟件說(shuō)明將是對(duì)PID參數(shù)的整定,使系統(tǒng)的動(dòng)靜態(tài)性能達(dá)到“滿意”的效果。3.2構(gòu)成3.3DMC界面Speed1_Now:電機(jī)當(dāng)前反饋速度PID調(diào)節(jié)控制做電機(jī)速度控制3 軟件說(shuō)明3.1軟件說(shuō)明將是對(duì)PID參數(shù)的整定,使系統(tǒng)的動(dòng)靜態(tài)性能達(dá)到“滿意”的效果。3.2構(gòu)成3.3DMC界面Speed1_Now:電機(jī)當(dāng)前反饋速度Kp值寄存器的值User_R1:設(shè)置速度與電機(jī)實(shí)際轉(zhuǎn)速的差值Motor1StartMotor1Stop控制啟停SunplusTechnologyCo.,.PAGE8V1.1–Jan23,2006文件名稱功能類型MainBLDC驅(qū)動(dòng)相關(guān)參數(shù)初始化,DMC服務(wù)CChap2BLDC驅(qū)動(dòng)相關(guān)函數(shù)CInitial系統(tǒng)所有相關(guān)初始化程序CISR驅(qū)動(dòng)中相應(yīng)的中斷服務(wù)CDigitalPID_V100.libPIDPID計(jì)算函數(shù)庫(kù)函數(shù)DMC通信程序liblibPID調(diào)節(jié)控制做電機(jī)速度控制3.4子程序說(shuō)明PIDInit()原描形述voidPIDInit(void)RAM清零無(wú)輸入?yún)?shù)輸出參數(shù)無(wú)PID調(diào)節(jié)控制做電機(jī)速度控制3.4子程序說(shuō)明PIDInit()原描形述voidPIDInit(void)RAM清零無(wú)輸入?yún)?shù)輸出參數(shù)無(wú)頭文件Spmc75_PID.h請(qǐng)?jiān)谠O(shè)置參數(shù)前使用。庫(kù)文件注意事項(xiàng)例子PIDInit();SunplusTechnologyCo.,.PAGE9V1.1–Jan23,2006PID調(diào)節(jié)控制做電機(jī)速度控制PIDSetPoint()原形voidPIDSetPoint(int)期望值描述輸入?yún)?shù)輸出參數(shù)無(wú)頭文件Spmc75_PID.hDigitalPID_V100庫(kù)文件注意事項(xiàng)PIDSetPoint(2000);//期望電的轉(zhuǎn)速為2000rpm例子PIDGetSetpoint()原形intPIDGetSetpoint(void)PID調(diào)節(jié)設(shè)置的目標(biāo)值無(wú)描述輸入?yún)?shù)輸出參數(shù)PID調(diào)節(jié)控制做電機(jī)速度控制PIDSetPoint()原形voidPIDSetPoint(int)期望值描述輸入?yún)?shù)輸出參數(shù)無(wú)頭文件Spmc75_PID.hDigitalPID_V100庫(kù)文件注意事項(xiàng)PIDSetPoint(2000);//期望電的轉(zhuǎn)速為2000rpm例子PIDGetSetpoint()原形intPIDGetSetpoint(void)PID調(diào)節(jié)設(shè)置的目標(biāo)值無(wú)描述輸入?yún)?shù)輸出參數(shù)所設(shè)置的期望值頭文件Spmc75_PID.h得到的期望值將和數(shù)值的是同一個(gè)數(shù)值庫(kù)文件注意事項(xiàng)例子uiSpeed=PIDSetPoint();//所設(shè)置的期望電轉(zhuǎn)速SunplusTechnologyCo.,.PAGE10V1.1–Jan23,2006PID調(diào)節(jié)控制做電機(jī)速度控制PIDSetKp()原形voidPIDSetKp(double)PIDKp值無(wú)描述輸入?yún)?shù)輸出參數(shù)頭文件Spmc75_PID.h這個(gè)參數(shù)在增量PID和位置PID的計(jì)算中代表著不同的意思。PIDKp就是比例系數(shù)庫(kù)文件注意事項(xiàng)TTd(式PID調(diào)節(jié)控制做電機(jī)速度控制PIDSetKp()原形voidPIDSetKp(double)PIDKp值無(wú)描述輸入?yún)?shù)輸出參數(shù)頭文件Spmc75_PID.h這個(gè)參數(shù)在增量PID和位置PID的計(jì)算中代表著不同的意思。PIDKp就是比例系數(shù)庫(kù)文件注意事項(xiàng)TTd(式2-5)所示增量式PID中Kp相當(dāng)于ek的系數(shù)Kp(1Ti )T例子(0.257);//Kp=0.257PIDGetKp()原形doublePIDGetKp(void)PIDKp值無(wú)描述輸入?yún)?shù)輸出參數(shù)Kp數(shù)值Spmc75_PID.h這個(gè)參數(shù)在增量PID和位置PID的計(jì)算中代表著不同的意思。PIDKp就是比例系數(shù)頭文件庫(kù)文件注意事項(xiàng)TTd(式2-5)所示增量式PID中Kp相當(dāng)于ek的系數(shù)Kp(1Ti )TdKp=PIDSetKp();例子SunplusTechnologyCo.,.PAGE11V1.1–Jan23,2006PID調(diào)節(jié)控制做電機(jī)速度控制PIDSetKi()原形voidPIDSetKi(doubledKii)PIDKi值無(wú)描述輸入?yún)?shù)輸出參數(shù)Spmc75_PID.h頭文件DigitalPID_V100庫(kù)文件這個(gè)參數(shù)在增量PID和位置PID的計(jì)算中代表著不同的意思。T注意事項(xiàng)所示位置式PID中Ki是 系數(shù)KpTi2Td(式PID調(diào)節(jié)控制做電機(jī)速度控制PIDSetKi()原形voidPIDSetKi(doubledKii)PIDKi值無(wú)描述輸入?yún)?shù)輸出參數(shù)Spmc75_PID.h頭文件DigitalPID_V100庫(kù)文件這個(gè)參數(shù)在增量PID和位置PID的計(jì)算中代表著不同的意思。T注意事項(xiàng)所示位置式PID中Ki是 系數(shù)KpTi2Td(式2-5)所示增量式PID中Ki是ek1的系數(shù)Kp(1 )T(0.367);//Ki=0.367例子PIDGetKi()原形doublePIDGetKi(void無(wú)描述輸入?yún)?shù)Ki數(shù)值輸出參數(shù)Spmc75_PID.h頭文件DigitalPID_V100庫(kù)文件這個(gè)參數(shù)在增量PID和位置PID的計(jì)算中代表著不同的意思。T注意事項(xiàng)所示位置式PID中Ki是 系數(shù)KpTi2Td(式2-5)所示增量式PID中Ki是ek1的系數(shù)Kp(1 )TdKi=PIDSetKi();例子SunplusTechnologyCo.,.PAGE12V1.1–Jan23,2006PID調(diào)節(jié)控制做電機(jī)速度控制PIDSetKd()原形voidPIDSetKd(doubledKdd)PIDKd值無(wú)描述輸入?yún)?shù)輸出參數(shù)Spmc75_PID.h頭文件DigitalPID_V100庫(kù)文件這個(gè)參數(shù)在增量PID和位置PID的計(jì)算中代表著不同的意思。Td注意事項(xiàng)所示位置式PID中Kd是 系數(shù)KpTTdPID調(diào)節(jié)控制做電機(jī)速度控制PIDSetKd()原形voidPIDSetKd(doubledKdd)PIDKd值無(wú)描述輸入?yún)?shù)輸出參數(shù)Spmc75_PID.h頭文件DigitalPID_V100庫(kù)文件這個(gè)參數(shù)在增量PID和位置PID的計(jì)算中代表著不同的意思。Td注意事項(xiàng)所示位置式PID中Kd是 系數(shù)KpTTdT(2-5)PIDKd是ek2Kp(0.157);//Kd=0.157例子PIDGetKd()原形voidPIDGetKd(doublPIDKd值無(wú)描述輸入?yún)?shù)Kd數(shù)值輸出參數(shù)Spmc75_PID.h頭文件DigitalPID_V100庫(kù)文件這個(gè)參數(shù)在增量PID和位置PID的計(jì)算中代表著不同的意思。Td注意事項(xiàng)所示位置式PID中Kd是 系數(shù)KpTTdT(2-5)PIDKd是ek2KpdKd=PIDSetKd();例子SunplusTechnologyCo.,.PAGE13V1.1–Jan23,2006PID調(diào)節(jié)控制做電機(jī)速度控制IncPIDCalc()原形intIncPIDCalc(int)PID計(jì)算計(jì)算增量描述輸入?yún)?shù)輸出參數(shù)頭文件PID調(diào)節(jié)控制做電機(jī)速度控制IncPIDCalc()原形intIncPIDCalc(int)PID計(jì)算計(jì)算增量描述輸入?yún)?shù)輸出參數(shù)頭文件Spmc75_PID.hPID算法的實(shí)現(xiàn)。;//PID控制算法通過(guò)增量式控1998rpm。庫(kù)文件注意事項(xiàng)例子SunplusTechnologyCo.,.PAGE14V1.1–Jan23,2006PID調(diào)節(jié)控制做電機(jī)速度控制LocPIDCalc()原形unsignedintLocPIDCalc(int)PID計(jì)算PID調(diào)節(jié)當(dāng)前采樣值PID調(diào)節(jié)控制做電機(jī)速度控制LocPIDCalc()原形unsignedintLocPIDCalc(int)PID計(jì)算PID調(diào)節(jié)當(dāng)前采樣值Spmc75_PID.hDigitalPID_V100PID算法的實(shí)現(xiàn)。;//PID控制算法,當(dāng)前采樣得到1998rpm。描述輸入?yún)?shù)輸出參數(shù)頭文件庫(kù)文件注意事項(xiàng)例子BLDC驅(qū)動(dòng)的實(shí)現(xiàn),不再一一贅述,可以參考【AN_SPMC75_0003】應(yīng)用例的介紹。SunplusTechnologyCo.,.PAGE15V1.1–Jan23,2006PID調(diào)節(jié)控制做電機(jī)速度控制4 程序范例4.1 DEMO程序/*=============================================*///應(yīng)用范例/*=============================================*/#include"Spmc75_regs.h"#include"Spmc_typedef.h"#includePID調(diào)節(jié)控制做電機(jī)速度控制4 程序范例4.1 DEMO程序/*=============================================*///應(yīng)用范例/*=============================================*/#include"Spmc75_regs.h"#include"Spmc_typedef.h"#include"unspmacro.h"#include"Spmc75_BLDC.h"main(){P_IOA_SPE->W=0x0000;P_IOB_SPE->W=0x0000;P_IOC_SPE->W=0x0000;Spmc75_System_Init(); 系統(tǒng)初始化while(1){BLDC_Run_Service(); 啟停NOP();}}//=================================================================//Description:IRQ0interruptsourceis ,usedtoNotes:錯(cuò)誤保護(hù)//=================================================================voidIRQ0(void)attribute((ISR));voidIRQ0(void){IPM_Fault_Protect();}//=================================================================//Description:IRQ1interruptsourceis ,usedto啟動(dòng)及正常運(yùn)行服務(wù)//=================================================================voidIRQ1(void) attribute ((ISR));SunplusTechnologyCo., . PAGE16 V1.1–Jan23,2006PID調(diào)節(jié)控制做電機(jī)速度控制voidIRQ1(void){/*=============================================================*//*Positiondetectionchangeinterruptif(P_TMR0_Status->B.PDCIF&&PID調(diào)節(jié)控制做電機(jī)速度控制voidIRQ1(void){/*=============================================================*//*Positiondetectionchangeinterruptif(P_TMR0_Status->B.PDCIF&&P_TMR0_INT->B.PDCIE){BLDC_Motor_Normalrun();}/*=============================================================*//*TimerCounterOverflowif(P_TMR0_Status->B.TCVIF&&P_TMR0_INT->B.TCVIE){BLDC_Motor_Startup();}P_TMR0_Status->W=P_TMR0_Status->W;}//=================================================================//Description:IRQ6interrup is ,usedto接收中斷服務(wù)函數(shù)//=================================================================voidIRQ6(void)attribute((ISR));voidIRQ6(void){if(P_INT_Status->B.UARTIF){if(P_UART_Status->B.RXIF)MC75_DMC_RcvStream();if(P_UART_Status->B.TXIF&&P_UART_Ctrl->B.TXIE);}}//=================================================================//Description:IRQ7interruptsourceis ,usedtoPID調(diào)節(jié)速度//=================================================================voidIRQ7(void)attribute((ISR));voidIRQ7(void){if(P_INT_Status->B.CMTIF){if(PCMTCtrl->B.CM0IF&&PCMTCtrl->B.CM0IE)SunplusTechnologyCo., . PAGE17 V1.1–Jan23,2006PID調(diào)節(jié)控制做電機(jī)速度控制PID計(jì)算子函數(shù):SunplusTechnologyCo.,PID調(diào)節(jié)控制做電機(jī)速度控制PID計(jì)算子函數(shù):SunplusTechnologyCo.,.PAGE18V1.1–Jan23,2006//數(shù)據(jù)結(jié)構(gòu)typedefstructPID{intSetPoint; //設(shè)定目標(biāo)DesiredValuelongSumError; //誤差累計(jì)doubleProportion; //比例常數(shù)ProportionalConstdoubleIntegral; // 常數(shù)IntegralConstdoubleDerivative; //微分常數(shù)DerivativeConstintLastError; //Error[-1]intPrevError; //Error[-2]}PID;staticPIDsPID;staticPID*sptr=&sPID;參數(shù)初始化voidIncPIDInit(void){sptr->SumError=0;sptr->LastError=0; sptr->PrevError=0; sptr->Proportion=0; //比例常數(shù)ProportionalConstsptr->Integral=0; // sptr->Derivative=0; //微分常數(shù)DerivativeConstsptr->SetPoint=0;}{BLDC_Motor_Actiyator();}P_CMT_Ctrl->W=P_CMT_Ctrl->W;}}PID調(diào)節(jié)控制做電機(jī)速度控制4.2程序流程與說(shuō)明主程序主要完成系統(tǒng)必要的初始化,而對(duì)電的實(shí)時(shí)處理基本上是在中斷中完成的,其中涉PID調(diào)節(jié)控制做電機(jī)速度控制4.2程序流程與說(shuō)明主程序主要完成系統(tǒng)必要的初始化,而對(duì)電的實(shí)時(shí)處理基本上是在中斷中完成的,其中涉CMT05-1所示主程序設(shè)計(jì)流程圖。SunplusTechnologyCo.,.PAGE19V1.1–Jan23,2006PID控制設(shè)計(jì)intIncPIDCalc(intNextPoint){registerintiError,iIncpid;//當(dāng)前誤差iError=sptr->SetPoint-NextPoint;//增量計(jì)算iIncpidsptr->Proportion*iError //E[k]項(xiàng)sptr->Integral*sptr->LastError 項(xiàng)sptr->Derivative*sptr->PrevError;//E[k-2]項(xiàng)// 誤差,用于下次計(jì)算sptr->PrevError=sptr->LastError;sptr->LastError=iError;//返回增量值return(iIncpid);}PID控制設(shè)計(jì)unsignedintLocPIDCalc(intNextPoint){registerintiError,dError;iErrorsptr->SetPointNe //偏差sptr->SumErroriError; //dErroriErrorsptr->LastError; sptr->LastErroriError;return(sptr->Proportion*iError //比例項(xiàng)sptr->Integral*sptr->SumError// 項(xiàng)sptr->Derivative*dError); //微分項(xiàng)}PID調(diào)節(jié)控制做電機(jī)速度控制開始啟停命令【API:BLDC_Run_Service()】圖5-1 BLDC主程序操作流程4.3中斷子流程與說(shuō)明速度調(diào)節(jié)和錯(cuò)誤保護(hù)的控制。其中如果使用默認(rèn)各個(gè)中斷源的使用都按照初始化設(shè)置已經(jīng)相應(yīng)的固PDC、TCV中斷流程示出,以便使用者參考。如圖流程5-2PID調(diào)節(jié)控制做電機(jī)速度控制開始啟停命令【API:BLDC_Run_Service()】圖5-1 BLDC主程序操作流程4.3中斷子流程與說(shuō)明速度調(diào)節(jié)和錯(cuò)誤保護(hù)的控制。其中如果使用默認(rèn)各個(gè)中斷源的使用都按照初始化設(shè)置已經(jīng)相應(yīng)的固PDC、TCV中斷流程示出,以便使用者參考。如圖流程5-2PDC、TCV中斷操作中斷PDC中斷?TCV中斷?中斷出口圖5-2 PDC、TCV中斷操作流程SunplusTechnologyCo.,.PAGE20V1.1–Jan23,2006啟動(dòng)、低速控 務(wù)函數(shù)【API:BLDC_Motor_Startup()】維持B

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論