μCOS-Ⅱ在無刷直流電機位置伺服系統中的應用
核心提示: 綜MC OS-在無刷直流電機位置伺服系統中的應用劉衛國胡亞山劉朝芳西北工業大學稀土永磁電機及控制技術研究所,西安710072)刷直流電機位置伺服系統該系統充分利用了DSP周邊外設豐富既運算速度快的
核心提示: 綜MC/OS-在無刷直流電機位置伺服系統中的應用劉衛國胡亞山劉朝芳西北工業大學稀土永磁電機及控制技術研究所,西安710072)刷直流電機位置伺服系統該系統充分利用了DSP周邊外設豐富既運算速度快的
綜MC/OS-在無刷直流電機位置伺服系統中的應用劉衛國胡亞山劉朝芳西北工業大學稀土永磁電機及控制技術研究所,西安710072)刷直流電機位置伺服系統該系統充分利用了DSP周邊外設豐富既運算速度快的簡化硬件系統,而PC/OS-I,能最大限度地縮短軟件開發周期。
0概述TMS320F240(以下簡稱F240)是T1公司的一款應用于運動控制領域的定點DSP,運算速度快,外圍設備豐富,功能強大,價格便宜,成為應用于電機控制領域的理想微處理器,為高性能數字伺服系統提供了實現手段。但是當應用于較復雜的系統中時,它要同時完成采樣計算、控制、通訊等任務,沒有一個實時多任務操作系統是不行的。PC/OS-是一種源碼公開的占先式實時多任務操作系統絕大部分的源代碼是用移植性很強的ANSIC寫的,和微處理器相關的部分是用匯編語言寫的。匯編語言寫的部分已經壓到最低程度由于與硬件相關的代碼僅200行左右,且注解很清楚,使得PC/OS-能很方便地移植到微處理器上,包括F240處理器。F240與PC/OS-的結合,使得位置伺服系統的硬件設計和軟件設計都變得非常簡單,能極大限度地降低開發難度和縮短軟件開發周期1系統硬件構成本硬件系統主要由功率驅動*MOSFET逆變電路和邏輯控制電路及必要的保護電路構成,還包括完成位置伺服功能所必需的電流、轉速和位移檢測功能其系統硬件構成如所示本系統采用F240為主要控制單元轉子位置傳感器采用霍爾傳感器,其輸出送入F240的快速捕獲單元(CAP模塊),采用查詢的方式或中斷的方式,F240將獲知當前轉子所處的位置,改變控制PWM波形的方式控制ACTR內部的事理管理器模塊(EV)將產生無刷直流電機所需要的6路PWM波形,以便進行正確地換相,從而完成電機的控制與驅動DSP除了完成無刷直流電機的控制驅動這一基本功能之外,還要進行系統的故障檢測與系統保護以及位置環速度環電流環三環控制。三環控制規律和算法的實現,都是在F240內部實現的。為了提高系統的快速特性,必須加入電流環。電流檢測電路檢測流過無刷直流電機的電流大小,送到F240的A/D轉換模塊,以便進行處理。F240獲得從外界給定一個位置信號后0g和從位置傳感器獲得反饋回來的當前的位置信號0f,通過一定的控制算法,驅/模2伺服系統軟件軟件是基于上述硬件的基礎上設計的。正確的硬件系統是軟件設計的前提。本系統采用MC/OS-實時多任務操件系統編程,這與平時用到的前后臺系統編程思想不同不太復雜的的小系統一般設計成前后臺系統應用程序是一個無限循環,在循環中調用相應的函數完成相應操作,這部分稱為后臺行為,而中斷服務程序處理異步事件,這部分稱為前臺行為。但是當情況比較復雜時,一般用一個適當的操作系統降低系統開發的難度,使得應用程序的開發比較容易。而MC/OS-就是一個開發中小型項目比較合適的嵌入式實時操作系統MC/OS-是源碼公開的嵌入式實時多任務操作系統,它可移植到很多處理器上,包括我們用到的F240它的源代碼可裁剪,可以減少MC/OS-所需的存儲器空間(RAM和ROM),穩定性和可靠性都很高。自1992年以來,世界上已有很多人在各個領域使用MC/OS-I例如,照相機行業醫療器械、音響設施、發動機控制1丨網絡設備、高速公路電話系統、自動提款機、工業機器人等等。
為了實現在多任務操作系統MC/OS-在基于F240位置伺服系統中的應用,首要的任務就是要實現MC/OS-在F240上的移植,使得實時內核能在F240上運行。MC/OS-的移植相對來說比較簡單移植MC/OS-,主要是修改它與處理器有關的3個文件OSCPU.HOSCPU內部機理,掌握如何實現任務之間的調度以及系統堆棧數據的壓入壓出對成功地移植極為重要。
在F240中,可采用定時器1周期中斷T1PNT或實時中斷RTI作為時鐘節拍源,時鐘節拍的頻率一般在10Hzr 100Hz左右采用軟件中斷作為任務切換的中斷服務例程。
代碼移植結束后,下一步就是測試可以讓內核自己測試自己,也可以運行一些簡單的任務和時鐘節拍中斷服務程序一旦多任務調度成功地運行起來了,一個實時多任務操作系統平臺就建立起來了。
2.2多任務操作系統流程整個軟件的流程如所示其中OSInU()函數用于初始化MC/OS-所有的變量和數據結構。OSInit()同時還建立空閑任務,這個任務總是處于就緒態的。空閑任務OSTaskidle()的優先級最低,即OSLOWESTPRIO若有統計任務,還得建立統計任務OSTaskST(),并讓其進入就緒態,其1同時,根據系統的配置初始化4個數據結構緩沖區,包括任務控制塊緩沖區、事件緩沖區、隊列緩沖區和存儲器緩沖區。創建任務進程部分主要用于創建用戶的任務。OSStart()用于啟動多任務,在啟動MC/OS-之前,用戶至少要建立一個應用任務。當調用OSStarL()時,OSStart()從任務就緒表中找出用戶建立的優先級最高任務的控制塊,然后調用高優先級就緒任務啟動函數OSSLarLHighRdy()函數OS-SLarLHighRdy()將最高優先級任務中任務堆棧中保存的值彈回到CPU寄存器中,然后執行一條中斷返回指令。中斷返回指令強制執行該任務代碼,然后在最高優先級任務中初始化時鐘節拍中斷函數,以后就可以進行任務調度了。
主要的工作就是將F240要完成的任務合理地服系統要完成如下的任務:產生驅動無刷直流電機的6路PWM波形;對給定的位置信號及反饋回來的位置信號進行采樣并進行位置閉環調節;計算轉速值并進行速度閉環的調節;對流過無刷直流電機的電流進行采樣并進行電流環調節。
2.3.1故障檢測及保護這里的保護主要是指過流保護。當流過無刷直流電機的電流過大時,故障信號低有效將發送到F240的功率中斷PDPINT端,定時器比較輸出信號將立即變為高阻態,封鎖6路PWM輸出,從而關斷逆變電路的所有開關管,起到保護的作用。
2.3.2無刷直流電機的驅動產生驅動無刷直流電機的6路PWM波形有兩種方法,一種是采用查詢方法,另一種是采用中斷方法。若采用查詢方法,CPU的大部分時間都浪費在查詢當前的轉子位置信號上,顯得不合理因此,本系統采用中斷方式。首先在主程序的開頭,啟動無刷直流電機,然后在捕獲中斷中實現電機的換柜在捕獲中斷程序中,首先將CAP對應的引腳設置為普通的IO口功能并設置為輸入模式,讀取當前的轉子位置信號。根據當前的轉子位置信號,決定要開通哪兩個功率管,從而決定PWM輸出方式控制字ACTR的值。事件管理器(EV)輸出滿足要求的PWM波形,完成無刷直流電機的電子換相,然后恢復CAP對應引腳的捕獲功能,最后清除中斷標志位,捕獲中斷程序結束。
2.3.3位置環速度環和電流環的實現過流保護及無刷直流電機的驅動都是用中斷來實現的。與它們不同,位置環、速度環、電流環均采用任務調度方式來實現在此任務中,位置環的優先級最高,速度環的優先級次之,電流的優先級最低。在三環控制系統中,一般電流環速度環、位置環的周期相差一個數量級。在此系統中,假設進行了30個電流環調節后進行一次速度環調節,進行10次速度環之后進行一次位置環調節。
位置環的實現位置環的主要任務是采集給定的位置信號與反饋回來的位置信號,然后經過一定的算法,如傳統的PI算法,模糊控制算法等,給出中間環速度環的速度值。在此系統中,給定的位置信號和反饋回來的信號均為模擬量,它們經過信號處理電路后送入F240中A/D轉換器的引腳上由于位置環是所有任務中優先級最高的任務,故系統在開始進行多任務調度時,調度的第一個任務即是PositionTask()器中斷放在系統初始化函數OSInit()之后,調用多任務系統啟動函數OSStart()之前。這里潛在的危險是,時鐘節拍中斷有可能在MC/OS-n啟動第一個任務之前發生,此時MC/OS-處于一種不確定的狀態,用戶應用程序有可能會崩潰在本系統中,我們在PositionTask()程序中for(;)語句之前,也即死循環之前,啟動時鐘節拍中斷采用F240的實時中斷RTI中斷時鐘節拍中斷。
與RTI中斷有關的只有兩個寄存器,為實時中斷計數寄存器RTICNT和實時中斷控制寄存器RTI-CR配置RTI十分簡單,只要將RTICR中的中斷允許位RTIENA置1,同時,設置實時中斷預分頻位RTIPS2-RTIPS()確定實時中斷的頻率我們把位置環作為一個任務進行調度下面為此任務程序清單。
務初始化時鐘節拍中斷函數;速度環完成后發送的信號量獲得ADC資源;發送A/D采樣開始命令,采樣給定的位置信號和反饋的位置信號;進行位置閉環算法,給出速度值;同時,在主程序創建任務的代碼區中添加如下代碼;//W創建位置環任務建立任務的一個函數。其中傳遞的第一個參數為任務的名字,即任務的入口地址第二個參數為任務開始執行時傳遞給任務的參數的指針,第三個參數為分配給任務的堆棧頂指針,第四個參數為分配給任務的優先級。
添加完上述代碼后,就將位置環任務添加到操作系統中去了。
在此任務中代碼中,在等待獲得ADC資源和等待速度環給出的信號量時,PositionTask()這個任務將被掛起,這時將會切換到別的優先級最高的就緒態任務運行速度環的實現速度環為三環控制系統中的中間環,它的給定值為位置的輸出,反饋值為當前無刷直流電機的轉速,輸出為內環電流環的給定值。為此必須測出電機的轉速可以從轉子位置傳感器的信號通過計算來獲得轉速如果無刷直流電機是2對極的,則必須經過12次電子換相,電機才轉動一凰可以在固定的時間內統計無刷直流電機換了多少次相,從而計算得出電機的轉速也可以統計在換固定值次相后統計經過了多少時間的方法來獲得轉速當然,也可采用計算位移傳感器的在單位時內的變化量求轉速下面為速度環任務的程序清單:voidpositionTask(void*pdata)//速度環任務/防止出現編譯錯誤for(;)內環電流環的電流值;(SpeedLoop);//給位置環發送信號量,調度位置任務同時,在主程序創建任務的代碼區中添加如下代碼:/創建速度環任務添加完上述代碼后,就將速度環任務添加到操作系統中去了電流環的實現電流環為三環控制系統中的內環它的調節周期一般很短,假設周期為15(Ps為了避免產生電磁噪聲,選擇PWM波形的開關頻率為20kHz,即定時周期為5(Ps當定時器中斷三次時,進行電流閉環,改變定時器比較寄存器的值,即改變PWM波形的占空比,從而達到改變通過電機電流的目的下面為電流環任務的程序清單:/防止出現編譯錯誤for(;)獲得ADC資源;發送A/D采樣開始命令,采樣給定的位置信號和反饋的位置信號;等待A/D采樣結束;讀取A/D轉換結果;釋放ADC資源;進行電流閉環算法,給出占空比大小,改變PWM方式控制字ACTR的值;電流環次數加1;(CurrentLoop);/給速度環發送信號時,調度速度環任務;同時,在主程序創建任務的代碼區中添加如下代碼:/創建電流環任務添加完上述代碼后,就將電流環任務添加到操作系統中去了。
3結語(下轉第29頁)時,存在著脈動轉矩現象,其中呈現周期性的換向轉矩脈動最為明顯1線電壓波形
責任編輯:電小二
免責聲明:本文僅代表作者個人觀點,與本站無關。其原創性以及文中陳述文字和內容未經本站證實,對本文以及其中全部或者部分內容、文字的真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考,并請自行核實相關內容。
我要收藏
個贊
-
現貨模式下谷電用戶價值再評估
2020-10-10電力現貨市場,電力交易,電力用戶 -
PPT | 高校綜合能源服務有哪些解決方案?
2020-10-09綜合能源服務,清潔供熱,多能互補 -
深度文章 | “十三五”以來電力消費增長原因分析及中長期展望
2020-09-27電力需求,用電量,全社會用電量
-
PPT | 高校綜合能源服務有哪些解決方案?
2020-10-09綜合能源服務,清潔供熱,多能互補 -
深度文章 | “十三五”以來電力消費增長原因分析及中長期展望
2020-09-27電力需求,用電量,全社會用電量 -
我國電力改革涉及的電價問題
-
貴州職稱論文發表選擇泛亞,論文發表有保障
2019-02-20貴州職稱論文發表 -
《電力設備管理》雜志首屆全國電力工業 特約專家征文
2019-01-05電力設備管理雜志 -
國內首座蜂窩型集束煤倉管理創新與實踐
-
人力資源和社會保障部:電線電纜制造工國家職業技能標準
-
人力資源和社會保障部:變壓器互感器制造工國家職業技能標準
-
《低壓微電網并網一體化裝置技術規范》T/CEC 150
2019-01-02低壓微電網技術規范
-
現貨模式下谷電用戶價值再評估
2020-10-10電力現貨市場,電力交易,電力用戶 -
建議收藏 | 中國電價全景圖
2020-09-16電價,全景圖,電力 -
一張圖讀懂我國銷售電價附加
2020-03-05銷售電價附加
-
電氣工程學科排行榜發布!華北電力大學排名第二
-
國家電網61家單位招聘畢業生
2019-03-12國家電網招聘畢業生 -
《電力設備管理》雜志讀者俱樂部會員招募
2018-10-16電力設備管理雜志