回路硬件仿真技術(shù)在直升機(jī)控制系統(tǒng)中的應(yīng)用
(作者未知) 2009/5/2
軟、硬件的并行開發(fā)方法可以加快設(shè)計(jì)進(jìn)程,但在系統(tǒng)整合時(shí)常常出現(xiàn)很多問題,而硬件回路仿真能有效解決這些問題,采用該技術(shù)可以在開發(fā)周期初完成嵌入式軟件仿真。本文以HIL技術(shù)在實(shí)驗(yàn)性動態(tài)直升機(jī)系統(tǒng)用嵌入式控制軟件中的應(yīng)用為例闡述該技術(shù)的應(yīng)用特點(diǎn)和方法。align=RIGHT VSPACE=12 HSPACE=12 ALT="圖1:直升機(jī)前視圖和側(cè)視圖。
設(shè)計(jì)工程師一直在努力縮短新產(chǎn)品開發(fā)周期,而軟硬件并行開發(fā)就是一種比較好的方法。通常這種方法需要多個(gè)獨(dú)立的軟硬件開發(fā)小組參與,這些小組的工作相互間獨(dú)立、并行地進(jìn)行。當(dāng)原型硬件和嵌入式代碼的主要部分實(shí)現(xiàn)后,就可以在系統(tǒng)整合階段將硬件與軟件合并起來并開始測試工作。
在系統(tǒng)整合時(shí)經(jīng)常會發(fā)生嚴(yán)重的問題,有些問題甚至?xí)䦟?dǎo)致軟件或硬件的重新設(shè)計(jì)。在問題成堆發(fā)生、成本持續(xù)升高或計(jì)劃拖延太久的情況下,有可能中斷設(shè)計(jì)項(xiàng)目,有時(shí)甚至不得不取消項(xiàng)目。因此,人們需要找到更好的方法來解決這些問題。
回路硬件(hardware-in-the-loop,HIL)仿真被證明是一種有效的解決方法。該技術(shù)能確保在開發(fā)周期早期就完成嵌入式軟件的測試。到系統(tǒng)整合階段開始時(shí),嵌入式軟件測試就要比傳統(tǒng)方法做得更徹底更全面。這樣可以及早地發(fā)現(xiàn)問題,因此降低了解決問題的成本。
本文所要討論的就是采用了HIL仿真的一個(gè)嵌入式軟件開發(fā)項(xiàng)目。該項(xiàng)目的目標(biāo)是開發(fā)和測試實(shí)驗(yàn)性動態(tài)“直升機(jī)”系統(tǒng)用的嵌入式控制軟件。有了HIL仿真后,人們無需使用除嵌入式處理器及其I/O接口外的任何硬件就能完成該控制器軟件的設(shè)計(jì)和測試。
隨后的實(shí)際系統(tǒng)硬件與運(yùn)行新軟件的嵌入式控制器的連接首次便獲得成功。在硬件、軟件整合階段唯一要做的額外工作是對一些控制器參數(shù)的少量調(diào)整,這是由于實(shí)際系統(tǒng)硬件與其仿真模型之間畢竟存在差異。
直升機(jī)系統(tǒng)
本項(xiàng)目需要開發(fā)適合Quanser 3自由度(3DOF)直升機(jī)的控制器軟件。這是一個(gè)桌面電磁系統(tǒng),內(nèi)含由兩個(gè)獨(dú)立電子馬達(dá)控制的3個(gè)旋轉(zhuǎn)軸,每個(gè)軸驅(qū)動一個(gè)推進(jìn)器。圖1是直升機(jī)系統(tǒng)及其運(yùn)動軸的框圖。align=RIGHT VSPACE=12 HSPACE=12 ALT="圖2:直升機(jī)控制系統(tǒng)。"﹥
假設(shè)傾斜軸的傾角接近零度,在對兩個(gè)馬達(dá)施加相同的高電壓后直升機(jī)會垂直向上攀升。對兩個(gè)馬達(dá)施加不同的電壓會使直升機(jī)繞傾斜軸旋轉(zhuǎn)。為了使直升機(jī)向前移動,首先需要將直升機(jī)傾斜到一個(gè)非零角度,然后對兩個(gè)馬達(dá)同時(shí)施加適當(dāng)?shù)碾妷簛懋a(chǎn)生向前的推力。
如圖2所示,系統(tǒng)采用的控制計(jì)算機(jī)具有3個(gè)位置編碼器輸入信號、兩個(gè)馬達(dá)電壓輸出信號,以及用于模式選擇與操縱桿控制的用戶輸入信號。控制計(jì)算機(jī)通過專門設(shè)計(jì)的接口卡接收位置編碼器輸入信號,同時(shí)產(chǎn)生模擬輸出電壓,并通過數(shù)模轉(zhuǎn)換器(DAC)驅(qū)動那兩個(gè)馬達(dá)。為了提供足夠大的馬達(dá)工作電流,DAC的輸出需要連接到隨后的功率放大器進(jìn)行放大。
位置編碼器會隨時(shí)監(jiān)測每個(gè)軸的運(yùn)動,這些編碼器通過光學(xué)原理感知旋轉(zhuǎn)運(yùn)動并產(chǎn)生數(shù)字化的角度位置數(shù)值。位置編碼器將以每360°4096個(gè)步距,或0.08789°的量化步距分辨率對這些數(shù)值進(jìn)行量化。每個(gè)編碼器的輸出信號由兩個(gè)TTL電平組成,即Phase A和Phase B,當(dāng)對應(yīng)軸反轉(zhuǎn)時(shí)輸出信號就在這兩個(gè)高低電平之間來回切換。根據(jù)這兩個(gè)信號之間的相位差可以判斷每個(gè)軸的運(yùn)動方向,如圖3所示。脈沖頻率正比于每個(gè)軸的旋轉(zhuǎn)速率。
直升機(jī)控制器的性能指標(biāo)滿足要在一定時(shí)間內(nèi)將前進(jìn)和上升軸移動到任意一個(gè)指定位置,時(shí)間一般應(yīng)控制在10秒以內(nèi)。此外,直升機(jī)控制器的軟件必須支持其它一些操作模式。全套控制器操作模式包括:
關(guān)閉模式:align=RIGHT VSPACE=12 HSPACE=12 ALT="圖3:位置編碼器輸出信號。"﹥
控制器軟件以關(guān)閉模式啟動,此時(shí)兩個(gè)馬達(dá)上的電壓為零。一旦系統(tǒng)離開這個(gè)模式,就只能從空(Null)模式再次進(jìn)入該模式。當(dāng)從空模式進(jìn)入關(guān)閉模式時(shí),需要控制上升軸緩慢地下降到桌面正上方,然后將馬達(dá)電壓設(shè)置為零。
空模式:
當(dāng)從關(guān)閉模式轉(zhuǎn)變到該模式時(shí),首選要給馬達(dá)上電,并控制所有軸到零位置。如果從其它模式轉(zhuǎn)變到空模式,那么只需要將所有軸控制到零位置。零位置是指傾斜軸和前進(jìn)軸在系統(tǒng)啟動位置,而推進(jìn)組件被抬舉到上升方向的水平位置,如圖1所示。
隨機(jī)模式:
在10秒時(shí)間間隔內(nèi)為前進(jìn)和上升軸位移命令產(chǎn)生預(yù)定義范圍內(nèi)的一個(gè)新隨機(jī)值,然后由控制器軟件將直升機(jī)移動到相應(yīng)的位置。(未完,下一頁)
|