<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 汽車電子 > 設(shè)計(jì)應(yīng)用 > 基于RTOS的渦噴發(fā)動(dòng)機(jī)數(shù)字控制系統(tǒng)

          基于RTOS的渦噴發(fā)動(dòng)機(jī)數(shù)字控制系統(tǒng)

          作者: 時(shí)間:2012-05-14 來源:網(wǎng)絡(luò) 收藏

          與活塞發(fā)動(dòng)機(jī)相比,渦輪噴氣發(fā)動(dòng)機(jī)(以下簡稱)在推重比方面的優(yōu)勢無可爭議。如果將之微型化,將使小型無人飛行器獲取較高的速度和載荷能力。因此,研制微型在軍用和民用領(lǐng)域都有深遠(yuǎn)的意義。目前,美、德、丹麥等國家都有相當(dāng)成熟的微型產(chǎn)品,已成功應(yīng)用到航模和無人機(jī)上。但在國內(nèi),無論是發(fā)動(dòng)機(jī)本身還是其控制,都屬于較新領(lǐng)域[1]。

          本文引用地址:http://www.ex-cimer.com/article/196825.htm

          本文針對(duì)國產(chǎn)某發(fā)動(dòng)機(jī),設(shè)計(jì)了基于C8051F021和MicroStar 的微型渦噴發(fā)動(dòng)機(jī)通用控制。它以處理器為核心,集傳感器、伺服機(jī)構(gòu)、人機(jī)接口為一體、體積小、重量輕,提供了與主控系統(tǒng)的指令接口和與地面測試設(shè)備的檢測接口,功能完善。

          微型渦噴發(fā)動(dòng)機(jī)計(jì)算機(jī)控制系統(tǒng)的整體結(jié)構(gòu)如圖1所示。

          11.gif

          控制器接收遙控接收機(jī)(或主控計(jì)算機(jī))發(fā)出的PCM(Pulse Coding Modulation,脈沖編碼調(diào)制)形式的推力和起停指令,驅(qū)動(dòng)油泵、油閥、點(diǎn)火器等伺服機(jī)構(gòu),實(shí)時(shí)測量發(fā)動(dòng)機(jī)的溫度和轉(zhuǎn)速,完成自動(dòng)點(diǎn)火、加速、減速、轉(zhuǎn)速穩(wěn)定、超溫超速保護(hù)等控制功能,并將狀態(tài)參數(shù)通過RS232總線實(shí)時(shí)發(fā)送到PC機(jī)。通過手持終端,可修改系統(tǒng)參數(shù)。

          為便于系統(tǒng)調(diào)試和測試發(fā)動(dòng)機(jī)性能,還開發(fā)了運(yùn)行于Windows平臺(tái)的實(shí)時(shí)檢測軟件ECU1.0(Engine Control Unit, Version1.0)。

          1 硬件設(shè)計(jì)

          C8051F021單片機(jī)是美國Cygnal公司推出的一款高性能8位SOC單片機(jī)。主要有以下優(yōu)點(diǎn):

          (1)采用了流水線技術(shù),峰值處理速度可達(dá)25MIPS,遠(yuǎn)遠(yuǎn)高于其它51單片機(jī)。

          (2)具有12位8通道逐次比較式ADC,數(shù)據(jù)轉(zhuǎn)換速率可達(dá)100ksps。

          (3)具有4K字節(jié)的片上RAM和64K字節(jié)的Flash程序存儲(chǔ)器。在本應(yīng)用系統(tǒng)中,無需擴(kuò)展存儲(chǔ)器。

          (4)可提供五路可編程的PWM控制信號(hào)。

          (5)豐富的定時(shí)器資源,具有五個(gè)硬件定時(shí)器。

          (6)提供I2C總線控制模塊和兩個(gè)UART口。

          (7)片內(nèi)FLASH支持IAP(在應(yīng)用可編程)。因此,不常修改的數(shù)據(jù)如配置參數(shù)、查詢表等可直接存放于片內(nèi)的FLASH內(nèi),而不需外擴(kuò)非易失性存儲(chǔ)體。

          C8051F021單片機(jī)具有豐富的片上硬件資源及高運(yùn)算速度,對(duì)本控制系統(tǒng),幾乎不需擴(kuò)展即可滿足控制系統(tǒng)對(duì)硬件資源的需求并有較大裕量。圖2為系統(tǒng)硬件結(jié)構(gòu)圖。

          22.jpg

          1.1 轉(zhuǎn)速測量模塊

          發(fā)動(dòng)機(jī)的轉(zhuǎn)速采用紅外對(duì)管來測量。發(fā)動(dòng)機(jī)的軸上鉆有一通孔,安裝時(shí)使發(fā)送-接收管的連線通過該孔。發(fā)動(dòng)機(jī)每轉(zhuǎn)一周,紅外接收管會(huì)導(dǎo)通兩次。由于通、斷狀態(tài)是漸變的,再加上普通紅外管開關(guān)速度較低,在發(fā)動(dòng)機(jī)高速運(yùn)轉(zhuǎn)(可達(dá)120000RPM)時(shí),接收管輸出的脈沖信號(hào)幅值很小,而且上升沿/下降沿較為平緩,單片機(jī)無法準(zhǔn)確識(shí)別,必須加以整形。整形電路如圖3所示。

          33.jpg

          信號(hào)通過電容C6耦合至運(yùn)放AR1的同相輸入端,(以2.5V為參考點(diǎn))進(jìn)行高倍數(shù)放大,以保證即使在高轉(zhuǎn)速下,脈沖的峰-峰幅值也接近5V供電電壓。運(yùn)放AR3用于實(shí)現(xiàn)回滯比較器,提高抗干擾能力,其輸出信號(hào)至單片機(jī)T4EX腳。利用定時(shí)器4的邊沿捕捉功能可方便地測出相鄰脈沖間的時(shí)間間隔,從而換算出速度。

          1.2 溫度測量模塊

          發(fā)動(dòng)機(jī)體內(nèi)的溫度是發(fā)動(dòng)機(jī)安全、可靠工作的重要指標(biāo)。由于發(fā)動(dòng)機(jī)較小,考慮到裝配的方便,以尾噴管的溫度表征發(fā)動(dòng)機(jī)的工作溫度。

          試驗(yàn)表明,尾噴管的溫度最高可達(dá)900℃。出于測溫范圍、成本等方面的考慮,選用鎳鉻-鎳硅(Ni,Cr,Si)熱電偶作為測溫元件。鎳鉻-鎳硅熱電偶具有良好的線性度,測溫范圍為0~1000℃。由于發(fā)動(dòng)機(jī)對(duì)溫度測量精度的要求并不苛刻,采用熱敏電阻進(jìn)行溫度補(bǔ)償。

          1.3 PWM驅(qū)動(dòng)模塊

          系統(tǒng)中氣閥和點(diǎn)火器、啟動(dòng)電機(jī)和油泵電機(jī)等伺服機(jī)構(gòu)采用PWM方式控制。啟動(dòng)電機(jī)、齒輪泵的工作電流較大,可達(dá)14A。宜選用過流大且導(dǎo)通電阻小的MOS管或壓降小的肖特基二極管。本系統(tǒng)選用過流為120A、導(dǎo)通電阻7.5mΩ的MOS管。但試驗(yàn)表明,MOS管工作溫度仍然較高,故采用兩片并聯(lián)驅(qū)動(dòng)方式。一路PWM控制單元的原理圖如圖4所示。

          44.gif

          電阻R6的主要作用是當(dāng)無控制輸入信號(hào)時(shí)(如線路故障、單片機(jī)復(fù)位過程中),MOS管保持關(guān)閉,伺服機(jī)構(gòu)不動(dòng)作。MOS管開通時(shí),通過Q4對(duì)MOS管輸入電容快速充電;關(guān)斷時(shí),MOS管的輸入電容通過D3和Q3快速放電。采用上述具有較高開關(guān)速度的電路,可有效減少M(fèi)OS管的發(fā)熱量。

          1.4 系統(tǒng)通訊總線

          I2C總線成本低廉,連線簡單,并有一定的抗干擾能力,同時(shí)可連結(jié)多個(gè)器件,故選用I2C總線作為系統(tǒng)通訊總線。手持終端、信號(hào)燈均通過I2C總線與系統(tǒng)板連接,并由串轉(zhuǎn)并芯片PCF8574驅(qū)動(dòng)。

          2 系統(tǒng)軟件

          本系統(tǒng)主要完成發(fā)動(dòng)機(jī)控制任務(wù)與人機(jī)接口任務(wù)。直接采用處理器開發(fā)軟件時(shí),由于時(shí)間上的并存,這兩個(gè)任務(wù)處理將嚴(yán)重耦合。此外,與人機(jī)接口相關(guān)的函數(shù)調(diào)用必須設(shè)計(jì)為非阻塞模式,否則,當(dāng)出現(xiàn)諸如I2C總線等故障時(shí),控制流程無法繼續(xù)向下執(zhí)行。

          能合理地分配處理器資源,使多個(gè)任務(wù)在宏觀上達(dá)到并行運(yùn)行的效果,可大大降低任務(wù)間的耦合,提高系統(tǒng)的可靠性。即使某個(gè)任務(wù)長時(shí)間被阻塞,也不會(huì)影響到其它任務(wù)。因此,采用進(jìn)行軟件開發(fā)更為簡單和可靠。本系統(tǒng)采用MicroStar RTOS V1.0[3]。MicroStar RTOS是針對(duì)中低檔單片機(jī)而設(shè)計(jì)的嵌入式實(shí)時(shí)操作系統(tǒng)內(nèi)核。它同時(shí)支持按時(shí)間片輪轉(zhuǎn)、按優(yōu)先級(jí)搶占、二者結(jié)合共三種調(diào)度策略,具有完善的任務(wù)管理功能可提供定時(shí)、延時(shí)服務(wù),支持消息、信號(hào)(Signal)通訊機(jī)制,支持臨界代碼段保護(hù),提供二進(jìn)制、計(jì)數(shù)型信號(hào)量(Semaphore)同步對(duì)象等,支持Bottom-half中斷管理機(jī)制。

          本控制器選用按優(yōu)先級(jí)搶占調(diào)度策略,系統(tǒng)時(shí)鐘周期設(shè)定為2ms。共創(chuàng)建了三個(gè)用戶任務(wù):人機(jī)接口主任務(wù)、控制任務(wù)以及與PC機(jī)通訊任務(wù)。

          2.1 MicroStar RTOS在51單片機(jī)上的移植

          由于51單片機(jī)內(nèi)核上的原因,為了代碼優(yōu)化,Keil C51編譯器采用一些獨(dú)特的方法,與ANSI C編譯器相比,有較大的差異。因而相對(duì)于其它硬件平臺(tái),在51單片機(jī)上移植MicroStar RTOS時(shí)修改較多,主要包括以下幾類:

          (1)Keil C51不僅有數(shù)據(jù)類型,還有存儲(chǔ)類型,因此為系統(tǒng)變量添加了存儲(chǔ)類型修飾符。

          (2)默認(rèn)情況下Keil C51對(duì)未能在寄存器中分配的臨時(shí)變量采用靜態(tài)分配策略,許多系統(tǒng)函數(shù)因此而不可重入,必須對(duì)這些函數(shù)添加reentrant函數(shù)來強(qiáng)迫編譯器在模擬棧中分配臨時(shí)變量。

          (3)除了硬件堆棧外,Keil C51編譯器在軟件上實(shí)現(xiàn)了模擬棧,因此在堆棧保護(hù)中需加入對(duì)模擬棧的保護(hù)。

          (4)修改 os_cpu.h 文件中的INITIAL_ STACK任務(wù)堆棧初始化宏、改寫os_Schedule調(diào)度函數(shù)等。這一點(diǎn)與其它平臺(tái)無異。

          2.2 人機(jī)接口主任務(wù)

          人機(jī)接口主任務(wù)主要負(fù)責(zé)系統(tǒng)自檢、鍵盤掃描、液晶顯示、指令解析等,其流程圖如圖5所示。

          55.jpg

          主任務(wù)有測試和正常兩種運(yùn)行模式。在開機(jī)按特定鍵或系統(tǒng)自檢失敗時(shí),將進(jìn)入測試模式。測試模式中擁有系統(tǒng)參數(shù)設(shè)定、脈寬指令學(xué)習(xí)、測試各路伺服機(jī)構(gòu)的權(quán)限,但不具備運(yùn)行發(fā)動(dòng)機(jī)的權(quán)限。正常模式下僅具備運(yùn)行發(fā)動(dòng)機(jī)的權(quán)限,但不能修改任何參數(shù),以降低對(duì)系統(tǒng)參數(shù)意外改寫的風(fēng)險(xiǎn)。在激活控制任務(wù)之前,主任務(wù)將進(jìn)行包括程序代碼校驗(yàn)、配置參數(shù)校驗(yàn)、溫度傳感器檢查等的軟硬件模塊檢查。這些措施均能提高系統(tǒng)的可靠性。

          MicroStar RTOS提供周期性定時(shí)服務(wù)。主任務(wù)通過os_SetTimer設(shè)定一個(gè)50ms的鍵盤掃描定時(shí)器、一個(gè)100ms的LCD顯示刷新定時(shí)器。當(dāng)定時(shí)時(shí)間到時(shí),定時(shí)器會(huì)給任務(wù)發(fā)送消息。調(diào)用os_GetMessage獲取消息后,調(diào)用鍵盤處理函數(shù)和顯示函數(shù)來分別處理與之對(duì)應(yīng)的消息。

          2.3 控制任務(wù)

          一次完整的發(fā)動(dòng)機(jī)運(yùn)行可分為如圖6所示的幾個(gè)階段??刂迫蝿?wù)按這些階段循環(huán)進(jìn)行,任一階段內(nèi)出現(xiàn)異常狀況,任務(wù)都進(jìn)入停車狀態(tài)。具體階段為:

          (1)待命階段。發(fā)動(dòng)機(jī)的狀態(tài)滿足運(yùn)行要求,等待以PCM碼方式輸入的啟動(dòng)命令。規(guī)定以大車指令對(duì)應(yīng)的脈寬為啟動(dòng)命令。

          (2)點(diǎn)火階段。電機(jī)轉(zhuǎn)速在設(shè)定的上下限內(nèi)波動(dòng),助燃丁烷氣閥打開,向發(fā)動(dòng)機(jī)體內(nèi)注入易燃?xì)?,同時(shí)開啟點(diǎn)火器對(duì)氣體加熱,當(dāng)氣體點(diǎn)燃使尾噴管溫度升高到設(shè)定值時(shí),認(rèn)為點(diǎn)火成功。

          (3)著車階段。油泵開始工作,供油量逐漸增大,點(diǎn)火器、氣閥、啟動(dòng)電機(jī)先后關(guān)閉,發(fā)動(dòng)機(jī)轉(zhuǎn)速開始加速。當(dāng)轉(zhuǎn)速和溫度均超過設(shè)定值時(shí),認(rèn)為著車成功。

          (4)熱車階段。發(fā)動(dòng)機(jī)成功著車之后,不宜立即投入工作,需在慢車(怠速)狀態(tài)下持續(xù)運(yùn)行一段時(shí)間。

          (5)正常運(yùn)行階段。PID控制算法投入運(yùn)行。

          (6)停車階段。油泵停止運(yùn)行,啟動(dòng)電機(jī)會(huì)根據(jù)溫度間歇性地開啟,在有利于發(fā)動(dòng)機(jī)散熱的條件下,盡可能地節(jié)省電能。

          66.gif

          3 控制律設(shè)計(jì)

          按控制內(nèi)容劃分,微型渦噴發(fā)動(dòng)機(jī)的控制項(xiàng)目分為以下幾類:

          (1)過程控制。使發(fā)動(dòng)機(jī)迅速、穩(wěn)定、可靠地完成過渡工作狀態(tài),包括啟動(dòng)控制、加速控制、減速控制。啟動(dòng)控制保證發(fā)動(dòng)機(jī)正常點(diǎn)火和順利啟動(dòng)。加速控制的目的是在發(fā)動(dòng)機(jī)不超溫的前提下,改變供油量,使加速時(shí)間盡可能縮短。減速控制使收油門時(shí)減油不致過猛,防止燃燒室貧油熄火。

          (2)推力控制。目的是給發(fā)動(dòng)機(jī)提供所需的推力。飛行器空中飛行時(shí)發(fā)動(dòng)機(jī)推力不易直接測量,但發(fā)動(dòng)機(jī)轉(zhuǎn)速能夠表征發(fā)動(dòng)機(jī)的推力,故通過轉(zhuǎn)速控制實(shí)現(xiàn)推力控制。

          (3)安全控制。目的是保證發(fā)動(dòng)機(jī)安全、可靠地工作。包括超溫保護(hù)、超速保護(hù)、電池電壓欠壓保護(hù)等。

          3.1 啟動(dòng)控制

          啟動(dòng)時(shí)間越短越好,因而發(fā)動(dòng)機(jī)增速要快。簡單地提高供油量雖然可以提高發(fā)動(dòng)機(jī)的增速,但容易因過度“富油”而超溫。“富油”現(xiàn)象是指當(dāng)供油量增速過快時(shí),由于發(fā)動(dòng)機(jī)的慣性大于油泵的慣性,使發(fā)動(dòng)機(jī)轉(zhuǎn)速增量相對(duì)落后,吸入空氣相對(duì)油量不足,以致燃油燃燒不充分,嚴(yán)重時(shí),發(fā)動(dòng)機(jī)體內(nèi)的溫度會(huì)急劇上升,尾氣中會(huì)出現(xiàn)火苗,這種現(xiàn)象對(duì)發(fā)動(dòng)機(jī)極為有害。為減輕“富油”現(xiàn)象,在著車過程控制中引入溫度和升溫速度反饋。當(dāng)溫度超過警戒值或者升溫速度超過警戒值時(shí),供油量將停止增加。

          3.2 轉(zhuǎn)速控制

          轉(zhuǎn)速控制采用工程上常用的位置式數(shù)字PID控制算法。對(duì)本系統(tǒng)而言,控制量為油泵的PWM占空比。占空比為負(fù)值是沒有物理意義的,需在PID的輸出之上加入工作點(diǎn),使輸出在工作點(diǎn)上下調(diào)整。轉(zhuǎn)速控制框圖如圖7所示。

          77.jpg

          其中,F(xiàn)(N0)為工作點(diǎn)產(chǎn)生函數(shù),表示指令轉(zhuǎn)速N對(duì)應(yīng)的占空比參考值,即工作點(diǎn),通過試驗(yàn)來獲取,軟件實(shí)現(xiàn)時(shí)采用查表法和線性插值法。限幅環(huán)節(jié)保證油泵占空比既不會(huì)小于怠速時(shí)的占空比,以避免熄火;也不會(huì)大于設(shè)定的最大值,以避免過速危險(xiǎn)。油門加速度限幅環(huán)節(jié)一方面限制了加油速度,防止因加油過快而超溫;另一方面限制了收油速度,防止因收油過快而貧油熄火。油門加速度限幅簡單地實(shí)現(xiàn)了加速控制和減速控制。

          由于油泵占空比與發(fā)動(dòng)機(jī)轉(zhuǎn)速間的非線性關(guān)系(如圖8所示),采用了分段PID方法,即不同階段采用不同的PID參數(shù)。單就Kp而言,由圖可看出:在低轉(zhuǎn)速段,曲線的斜率較陡,轉(zhuǎn)速對(duì)占空比的變化敏感,Kp取值較小,避免了超調(diào)過大和振蕩;而在高轉(zhuǎn)速段,曲線上升非常平緩,Kp取較大值,以提高響應(yīng)速度。同樣地,為取得較好的性能,Ki、Kd在不同的轉(zhuǎn)速段也應(yīng)取不同的值。在本系統(tǒng)中共分為三段。

          88.jpg

          4 系統(tǒng)測試

          本系統(tǒng)已進(jìn)行了多次臺(tái)架試驗(yàn)。試驗(yàn)中,被控對(duì)象選用國產(chǎn)500牛推力的某型渦噴發(fā)動(dòng)機(jī),原始數(shù)據(jù)利用運(yùn)行于PC機(jī)平臺(tái)上的ECU V1.0通過串行口獲得。

          4.1 檢測軟件ECU V1.0

          為便于系統(tǒng)調(diào)試和測試,自行開發(fā)了軟件ECU V1.0。它能將發(fā)動(dòng)機(jī)各種參數(shù)實(shí)時(shí)記錄下來,以曲線方式動(dòng)態(tài)地顯示出來,以便分析各個(gè)參量間的相關(guān)性,并具有發(fā)送控制命令、報(bào)警等輔助功能。圖8、圖9均由該軟件生成。

          99.jpg

          4.2 測試結(jié)果

          試驗(yàn)表明,在控制系統(tǒng)的作用下,發(fā)動(dòng)機(jī)能很好地跟蹤轉(zhuǎn)速遙控指令。圖9給出一次由18000RPM至 23000RPM的推桿操作中指令和轉(zhuǎn)速的曲線,圖中虛線為指令,實(shí)線為速度,兩條曲線基本吻合。

          微型渦噴發(fā)動(dòng)機(jī)控制系統(tǒng)在我國還是一個(gè)較新的領(lǐng)域,筆者在此方面作了較為深入的探索。試驗(yàn)中控制系統(tǒng)能可靠穩(wěn)定地工作,達(dá)到了工程樣機(jī)的水平。

          pid控制相關(guān)文章:pid控制原理


          pwm相關(guān)文章:pwm是什么


          pid控制器相關(guān)文章:pid控制器原理


          加速度計(jì)相關(guān)文章:加速度計(jì)原理
          熱電偶相關(guān)文章:熱電偶原理


          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();