基于μC/OS―III和ARM的空心杯電機控制器設計
引言
本文引用地址:http://dyxdggzs.com/article/201609/303697.htm空心杯電機在結構上采用了無(wú)鐵芯轉子,克服了有鐵芯電動(dòng)機不可逾越的技術(shù)障礙,使其具備了更加突出的節能特性、靈敏方便的控制特性和穩定的運行特性。隨著(zhù)工業(yè)技術(shù)的飛速發(fā)展,電動(dòng)機的伺服特性要求不斷提高,空心杯電機以其高效率的能力轉換特性在很多應用場(chǎng)合取得廣泛應用。空心杯電機控制器需要對轉速進(jìn)行快速精確的閉環(huán)控制,其必須具備與上位機實(shí)現串口通信、轉速實(shí)時(shí)采集、前饋PI控制及液晶屏顯示等多個(gè)功能。
目前,ARM內核微控制器發(fā)展迅速,其性能高、耗電少、成本低,具備16/32位雙指令集。本文選用TI公司的基于Cortex—M4內核的TM4C 123GH6PM芯片,該芯片最高具備80 MHz主頻,適用于高性能、低功耗的嵌入式控制領(lǐng)域。它具備多個(gè)高精度定時(shí)器,可以輸出多達16路互補且帶有死區時(shí)間控制的PWM波形,滿(mǎn)足空心杯電機的控制需求。
μC/OS—III是一個(gè)可擴展的、可固化的、搶占式第3代實(shí)時(shí)多任務(wù)操作系統內核。其對任務(wù)的個(gè)數無(wú)限制,提供了現代實(shí)時(shí)內核所期望的所有功能,包括資源管理、同步、內部任務(wù)交流等??紤]到系統任務(wù)的復雜性,傳統的單任務(wù)循環(huán)式的程序控制模式難以滿(mǎn)足需求,本文采用了開(kāi)放源碼的嵌入式操作系統μC/OS—III實(shí)現空心杯電機控制器,簡(jiǎn)化了系統設計。
1 控制器硬件設計
1.1 控制器硬件總體結構
空心杯電機閉環(huán)控制器硬件結構包括PWM驅動(dòng)電路、轉速檢測電路、液晶顯示電路及USB轉串口電路等部分,系統框圖如圖1所示??刂破魍ㄟ^(guò)串口與上位機進(jìn)行通信,接收上位機給出的期望轉速指令與控制參數。實(shí)際轉速經(jīng)過(guò)轉速檢測電路由TM4C123GH6PM的定時(shí)器捕獲得到,在與期望轉速對比后得到轉速差,基于前饋PI控制輸出相應PWM信號,經(jīng)驅動(dòng)電路后供給空心杯電機。同時(shí),液晶顯示器通過(guò)SPI接口與TM4C123GH6PM進(jìn)行通信,從而實(shí)時(shí)顯示實(shí)際轉速值。

1.2 驅動(dòng)電路設計
驅動(dòng)電路采用一款雙通道橋式電機驅動(dòng)器DRV8833,該器件具有兩個(gè)H橋驅動(dòng)器,能夠驅動(dòng)兩個(gè)直流電機。每個(gè)H橋的輸出驅動(dòng)器模塊由N溝道功率組成,這些場(chǎng)效應管被配置成一個(gè)H橋,以驅動(dòng)電機繞組。通過(guò)調節PWM的占空比,調整輸入電機端電壓的大小,進(jìn)而控制空心杯電機的轉速。驅動(dòng)電路如圖2所示,由于本文只需驅動(dòng)一個(gè)直流電機,因此將雙通道輸出并聯(lián)處理,以達到增大驅動(dòng)電流的效果。

1.3 轉速檢測電路設計
空心杯電機轉速檢測電路如圖3所示。在電機轉軸上固定了一個(gè)輪齒,上面均勻分布了4個(gè)錯開(kāi)的齒。輪齒布置在一個(gè)對射光耦上,當電機轉動(dòng)一周時(shí)產(chǎn)生4個(gè)高低脈沖,該脈沖頻率表征轉速大小。

2 μC/OS-Ⅲ操作系統移植
在官網(wǎng)上下載已移植到TM4C129XL的μC/OS—III,基于此工程模板進(jìn)行修改,可以免除完全移植操作系統的繁瑣工作。由于該工程模板是針對TM4C129XL系列的,該系列的芯片主頻與TM4C123XL系列有所差別,因此需要在板級支持包(BSP)系統初始化文件中進(jìn)行修改,文件名為“BSP_SysInit”。將原系統時(shí)鐘設置部分注釋掉,添加對應于TM4C123GXL的配置代碼:
cpu_clk_freq=BSp_SysClkFreqGet();//確定systick參考頻率
SysCtlClockSet(SYSCTL_SYSDIV_16 | SYSCTL_USE_PLL |
SYSCTL_OSC_MAIN | SYSCTL_XTAL_16MHZ);//系統時(shí)鐘設置
此處設置在原文件中需要多條語(yǔ)句才能完成,利用TI公司的設備驅動(dòng)庫函數可以高效便捷地完成設置。
3 軟件設計
3.1 μC/OS-Ⅲ的任務(wù)分配
本控制器軟件需要實(shí)現的功能如下:
①上位機通過(guò)串口給定期望電機轉速和控制參數;
②要求空心杯電機轉速連續可調并且具有良好的動(dòng)、靜態(tài)性能,通過(guò)定時(shí)器捕獲實(shí)際轉速,并采用前饋PID算法調節;
③液晶顯示屏實(shí)時(shí)顯示轉速。
基于μC/OS—III的程序設計是將一個(gè)大的應用程序分成多個(gè)相對獨立的任務(wù)來(lái)完成。定義好每個(gè)任務(wù)的優(yōu)先級后,μC/OS-III內核對這些任務(wù)進(jìn)行調度和管理。本程序設置OS時(shí)鐘節拍為50 Hz,共分為3個(gè)任務(wù)(AppTaskStart、MyTask1、MyTask2),優(yōu)先級分別為2、12、13,具體的工作流程如圖4所示。其中,AppTaskStart為電機控制任務(wù),主要負責進(jìn)行前饋PI控制,其延時(shí)1個(gè)節拍進(jìn)入就緒狀態(tài),即相當于20 ms執行一次;MyTask1為上位機給定任務(wù),負責串口接收,其延時(shí)2個(gè)節拍進(jìn)入就緒態(tài),即相當于40 ms執行一次;MyTask2為液晶顯示任務(wù),負責LCD顯示,其延時(shí)3個(gè)節拍進(jìn)入就緒態(tài),即相當于60 ms執行一次。

3.2 電機控制任務(wù)
電機控制任務(wù)AppTaskStart達到就緒態(tài)后,讀取空心杯電機當前轉速。在實(shí)際測試中,發(fā)現該電機的非線(xiàn)性特性較強,因此采用帶前饋量的PI控制,使電機轉速能在全范圍內都能快速準確地進(jìn)行調節。其中,PWM前饋量由實(shí)際轉速插值取得,插值表在開(kāi)環(huán)情況下標定獲得。電機控制任務(wù)工作流程如圖5所示。

3.3 上位機給定任務(wù)
上位機給定任務(wù)MyTask1中,控制器通過(guò)串口接收上位機指令,接收內容包括期望轉速及控制參數Kp與Ki。由于控制參數往往需要根據經(jīng)驗反復整定,而且起初并不能確定其量級大小,為了快速方便地進(jìn)行控制參數整定,此處串口數據采取浮點(diǎn)數格式傳輸,相對于用整型數傳輸沒(méi)有精度損失。數據類(lèi)型轉換具體代碼如下:
評論