




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、 PID 調(diào)節(jié)控制做電機(jī)速度控制 V1.1 Jan 23, 200619, Innovation First Road Science Park Hsin-Chu Taiwan 300 R.O.C. Tel: 886-3-578-6005 Fax: 886-3-578-4418 E-mail: mcu PID 調(diào)節(jié)控制做電機(jī)速度控制版權(quán)聲明凌陽科技股份有限公司保留對此文件修改之權(quán)利且不另行通知。凌陽科技股份有限公司所提供之信息相信為正確且可靠之信息,但并不保證本文件中絕無錯誤。請于向凌陽科技股份有限公司提出訂單前,自行確定所使用之相關(guān)技術(shù)文件及規(guī)格為最新之版本。若因貴公司使用本公司之文件或產(chǎn)品
2、,而涉及第三人之專利或著作權(quán)等智能財(cái)產(chǎn)權(quán)之應(yīng)用及配合時,則應(yīng)由貴公司負(fù)責(zé)取得同意及授權(quán),本公司僅單純販?zhǔn)郛a(chǎn)品,上述關(guān)于同意及授權(quán),非屬本公司應(yīng)為保證之責(zé)任。又未經(jīng)凌陽科技股份有限公司之正式書面許可,本公司之所有產(chǎn)品不得使用于醫(yī)療器材,維持生命系統(tǒng)及飛航等相關(guān)設(shè)備。 目錄1模擬PID 控制. 1 1.1 模擬PID 控制原理. 12數(shù)字PID 控制. 3 2.1 位置式PID 算法. 3 2.2 增量式PID 算法. 4 2.3 控制器參數(shù)整定. 42.3.1 湊試法. 5 2.3.2 臨界比例法. 5 2.3.3 經(jīng)驗(yàn)法. 5 2.3.4 采樣周期的選擇. 6 2.4 參數(shù)調(diào)整規(guī)則的探索. 6
3、 2.5 自校正PID 控制器. 73軟件說明. 8 3.1 軟件說明. 8 3.2 檔案構(gòu)成. 8 3.3 DMC 界面. 8 3.4 子程序說明. 94程序范例. 16 4.1 DEMO 程序. 16 4.2 程序流程與說明. 19 4.3 中斷子流程與說明. 205MCU 使用資源. 21 5.1 MCU 硬件使用資源說明. 216實(shí)驗(yàn)測試. 22 6.1 響應(yīng)曲線. 227參考文獻(xiàn). 26 修訂記錄日期版本編寫及修訂者初版 錯誤校正編寫及修訂說明 3 軟件說明3.1 軟件說明AN_SPMC75_0012在微處理器SPMC75F2413A 上實(shí)現(xiàn)數(shù)字PID 對BLDC 速度的調(diào)節(jié),重點(diǎn)將
4、是對PID 參數(shù)的整定,使系統(tǒng)的動靜態(tài)性能達(dá)到“滿意”的效果。3.2 檔案構(gòu)成文件名稱 Main Chap2 Initial ISRDigitalPID_V100.lib功能BLDC 驅(qū)動相關(guān)參數(shù)初始化,DMC 服務(wù) BLDC 驅(qū)動相關(guān)函數(shù) 系統(tǒng)所有相關(guān)初始化程序 驅(qū)動中相應(yīng)的中斷服務(wù)PID 設(shè)置,初始化和PID 計(jì)算函數(shù)庫函數(shù)類型C C C C lib libSpmc75_dmc_lib_V100.lib DMC 通信程序3.3 DMC界面Speed1_Cmd:設(shè)置電機(jī)運(yùn)轉(zhuǎn)的速度 Speed1_Now:電機(jī)當(dāng)前反饋速度Speed1_Kp:2.5節(jié) 自校正PID 控制器中提到的Kp 值 Use
5、r_R0:當(dāng)前P_TMR3_TGRA寄存器的值 User_R1:設(shè)置速度與電機(jī)實(shí)際轉(zhuǎn)速的差值 Motor 1 Start 和 Motor 1 Stop 控制啟停 PID 調(diào)節(jié)控制做電機(jī)速度控制3.4 子程序說明 PIDInit ( 原 形 描 述 輸入?yún)?shù) 輸出參數(shù) 頭 文 件 庫 文 件 注意事項(xiàng) 例 子void PIDInit (voidPID 所用到的RAM 清零 無 無Spmc75_PID.h DigitalPID_V100 請?jiān)谠O(shè)置參數(shù)前使用。 PIDInit (; PIDSetPoint ( 原 形 描 述 輸入?yún)?shù) 輸出參數(shù) 頭 文 件 庫 文 件 注意事項(xiàng) 例 子void PI
6、DSetPoint(int 設(shè)置PID 調(diào)節(jié)的目標(biāo)值 期望值 無Spmc75_PID.h DigitalPID_V100PIDSetPoint (2000; /期望電動機(jī)的轉(zhuǎn)速為2000rpmPIDGetSetpoint ( 原 形 描 述 輸入?yún)?shù) 輸出參數(shù) 頭 文 件 庫 文 件 注意事項(xiàng) 例 子int PIDGetSetpoint(void 讀取PID 調(diào)節(jié)設(shè)置的目標(biāo)值 無所設(shè)置的期望值 Spmc75_PID.h DigitalPID_V100得到的期望值將和數(shù)值的是同一個數(shù)值uiSpeed PIDSetPoint (; /讀取所設(shè)置的期望電動機(jī)轉(zhuǎn)速 IncPIDCalc ( 原 形 描
7、 述 輸入?yún)?shù) 輸出參數(shù) 頭 文 件 庫 文 件 注意事項(xiàng) 例 子int IncPIDCalc(int 增量式PID 計(jì)算 PID 調(diào)節(jié)當(dāng)前采樣值 計(jì)算增量 Spmc75_PID.h DigitalPID_V100(式25)增量式PID 算法的實(shí)現(xiàn)。uiGoalvalue IncPIDCalc (1998; /位置式PID 控制算法通過增量式控制算法遞推實(shí)現(xiàn),當(dāng)前采樣得到轉(zhuǎn)速1998rpm 。 LocPIDCalc ( 原 形 描 述 輸入?yún)?shù) 輸出參數(shù) 頭 文 件 庫 文 件 注意事項(xiàng) 例 子其它應(yīng)用函數(shù)式對BLDC 驅(qū)動的實(shí)現(xiàn),不再一一贅述,可以參考【AN_SPMC75_0003】應(yīng)用例的
8、介紹。unsigned int LocPIDCalc(int 位置式PID 計(jì)算 PID 調(diào)節(jié)當(dāng)前采樣值位置式PID 計(jì)算出的絕對位置值 Spmc75_PID.h DigitalPID_V100(式24)位置式式PID 算法的實(shí)現(xiàn)。uiGoalvalue LocPIDCalc (1998; /位置式PID 控制算法,當(dāng)前采樣得到轉(zhuǎn)速1998rpm 。 PID 調(diào)節(jié)控制做電機(jī)速度控制4 程序范例4.1 DEMO程序/*=*/ /應(yīng)用范例/*=*/ #include Spmc75_regs.h #include Spmc_typedef.h #include unspmacro.h #includ
9、e Spmc75_BLDC.hmain( P_IOA_SPE-W = 0x0000; P_IOB_SPE-W = 0x0000; P_IOC_SPE-W = 0x0000;Spmc75_System_Init(; /Spmc75系統(tǒng)初始化while(1 BLDC_Run_Service(; /啟停監(jiān)控 NOP(; /= / Description: IRQ0 interrupt source is XXX,used to XXX / Notes:錯誤保護(hù)/= void IRQ0(void _attribute_ (ISR; void IRQ0(void IPM_Fault_Protect(;
10、/= / Description: IRQ1 interrupt source is XXX,used to XXX / Notes:BLDC啟動及正常運(yùn)行服務(wù)/= void IRQ1(void _attribute_ (ISR; PID 調(diào)節(jié)控制做電機(jī)速度控制void IRQ1(void /*=*/ /*Position detection change interrupt/*=*/ if(P_TMR0_Status-B.PDCIF & P_TMR0_INT-B.PDCIE BLDC_Motor_Normalrun(; /*=*/ /*Timer Counter Overflow/*=*/
11、if(P_TMR0_Status-B.TCVIF & P_TMR0_INT-B.TCVIE BLDC_Motor_Startup(; P_TMR0_Status-W = P_TMR0_Status-W; /= / Description: IRQ6 interrupt source is XXX,used to XXX / Notes:DMC接收中斷服務(wù)函數(shù)/= void IRQ6(void _attribute_ (ISR; void IRQ6(void if(P_INT_Status-B.UARTIF if(P_UART_Status-B.RXIF MC75_DMC_RcvStream(;
12、 if(P_UART_Status-B.TXIF & P_UART_Ctrl-B.TXIE; /= / Description: IRQ7 interrupt source is XXX,used to XXX / Notes:512Hz定時中斷完成PID 調(diào)節(jié)速度/= void IRQ7(void _attribute_ (ISR; void IRQ7(void if(P_INT_Status-B.CMTIF if(PCMT Ctrl-B.CM0IF & PCMT Ctrl-B.CM0IE BLDC_Motor_Actiyator(; P_CMT_Ctrl-W = P_CMT_Ctrl-W;
13、 PID 計(jì)算子函數(shù):PID 調(diào)節(jié)控制做電機(jī)速度控制/數(shù)據(jù)結(jié)構(gòu)typedef struct PID int SetPoint; /設(shè)定目標(biāo) Desired Value long SumError; /誤差累計(jì)double Proportion; /比例常數(shù) Proportional Const double Integral; /積分常數(shù) Integral Const double Derivative; /微分常數(shù) Derivative Constint LastError; /Error-1 int PrevError; /Error-2 PID;static PID sPID; stat
14、ic PID *sptr = &sPID;/PID參數(shù)初始化void IncPIDInit(void sptr-SumError = 0; sptr-LastError = 0; /Error-1 sptr-PrevError = 0; /Error-2sptr-Proportion = 0; /比例常數(shù) Proportional Const sptr-Integral = 0; /積分常數(shù)Integral Const sptr-Derivative = 0; /微分常數(shù) Derivative Const sptr-SetPoint = 0; PID 調(diào)節(jié)控制做電機(jī)速度控制6 實(shí)驗(yàn)測試測試主要
15、是針對120度上相PWM 方波驅(qū)動帶霍爾位置傳感的直流無刷電動機(jī)并應(yīng)用PID 控制來進(jìn)行對電動機(jī)的速度調(diào)節(jié)。硬件原理圖及關(guān)于BLDC 驅(qū)動請參照【AN_SPMC75_0003】。Kp 參數(shù)的調(diào)整,在源程序中是可以用預(yù)編譯定義的。如果定義的話就可以在DMC 下對Kp 參數(shù)調(diào)整,但請注意,DMC 下的參數(shù)需要是擴(kuò)大一千倍的。例如:Kp 0.105,DMC 參數(shù)就應(yīng)該是105。這樣Kp 的范圍就可以在(400,10),對于這個范圍的參數(shù)只能說是能正常的工作。如果說最適合,那么還請您根據(jù)系統(tǒng)的需要,按照各種整定方法對其進(jìn)行全面的評估?!咀⒁狻?1、在這里PID 參數(shù)的選擇和PWM 的載波頻率也有一定的
16、關(guān)系,載波頻率越高則【P_TMRx_TGRA】所設(shè)置的范圍就越小,調(diào)節(jié)就比較的快。這種種因數(shù)希望到能考慮在內(nèi),得到最適合的PID 參數(shù)?!咀⒁狻?2、如果選擇使用DMC 來調(diào)整PID 的Kp 參數(shù),請先設(shè)置轉(zhuǎn)速(Speed1_Cmd)和Kp (Speed1_Kp)的數(shù)值再啟動Motor1;若是使用固定的PID 的Kp 參數(shù)(在程序中固定),請先設(shè)置轉(zhuǎn)速(Speed1_Cmd)再啟動Motor1?!咀⒁狻?3、在DMC 下PID 參數(shù)的時候Speed1_Kp與Kp 的關(guān)系是Speed1_Kp1000Kp ,就是說如果要設(shè)置Kp 為0.125,DMC 的Speed1_Kp應(yīng)該給出125。6.1響應(yīng)曲線 所有測試都是在空載,PWM 載波為6KHz 的情況下進(jìn)行:1、 Speed1_Kp10,即Kp 0.01。在轉(zhuǎn)速從0rpm 升至2000rpm 的響應(yīng)曲線,如圖 6.1。 PID 調(diào)節(jié)控制做電機(jī)速度控制圖 6.1 Kp 0.01響應(yīng)曲線2、 Speed1_Kp105,即Kp 0.105。在轉(zhuǎn)速從0rpm 升至2000rpm 的響應(yīng)曲線,如圖 6.2。圖 6.2 Kp0.105響應(yīng)曲線 PID 調(diào)節(jié)控制做電機(jī)速度控制3、 Speed1_Kp180,即Kp 0.180。在轉(zhuǎn)速從0rpm 升至2000rpm 的響應(yīng)曲線,如圖 6.3。圖
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 代理銷售拿貨合同范例
- 2013版工商合同范例
- 葡萄胎手術(shù)護(hù)理
- 小學(xué)數(shù)學(xué)上冊教研工作計(jì)劃(含進(jìn)度表)
- 高標(biāo)準(zhǔn)農(nóng)田建設(shè)投資估算與資金籌措方案
- 外架工安全事故警示案例
- 高中英語教師課堂元話語研究
- 飲水問題報(bào)告范文
- 初中語文智慧美文向光明走去
- 2024至2030年中國裝紙器行業(yè)投資前景及策略咨詢研究報(bào)告
- 山東省淄博市、濱州市2025屆高三一模語文試題及答案解析
- 2024山西三支一扶真題及答案
- 2025年全國國家版圖知識競賽題庫及答案(中小學(xué)組)
- 2025年合肥職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫完整版
- 2024年河南省公務(wù)員考試《行測》真題及答案解析
- 2024年新奧集團(tuán)股份有限公司招聘筆試參考題庫含答案解析
- 李雁鳴循環(huán)理論
- 火花塞的拆裝檢查ppt課件
- 課題研究思路流程圖
- 電暈水測試液配方
- 吉林省動物衛(wèi)生監(jiān)督檢查站
評論
0/150
提交評論