Global Sources
電子工程專輯
 
電子工程專輯 > 嵌入式技術
 
 
嵌入式技術  

回路硬體模擬技術在直升機控制系統中的應用

上網時間: 2002年11月30日     打印版  Bookmark and Share  字型大小:  

關鍵字:HIL  回路硬體模擬  嵌入式處理器  直升機  傾斜軸 

軟、硬體的平行開發方法可以加快設計進程,但在系統整合時常常出現很多問題,而硬體回路模擬能有效解決這些問題,採用該技術可以在開發周期初完成嵌入式軟體模擬。本文以HIL技術在實驗性動態直升機系統用嵌入式控制軟體中的應用為例闡述該技術的應用特點和方法。圖1:直升機前視圖和側視圖。

設計工程師一直在努力縮短新產品開發周期,而軟硬體平行開發就是一種比較好的方法。通常這種方法需要多個獨立的軟硬體開發小組參與,這些小組的工作相互獨立、平行地進行。當原型硬體和嵌入式代碼的主要部份實現後,就可以在系統整合階段將硬體與軟體合併起來並開始測試工作。

在系統整合時經常會產生嚴重的問題,有些問題甚至會導致軟體或硬體的重新設計。在問題不斷產生、成本持續升高或計劃拖延太久的情況下,有可能中斷設計項目,有時甚至不得不取消項目。因此,人們需要找到更好的方法來解決這些問題。

回路硬體(hardware-in-the-loop,HIL)模擬被証明是一種有效的解決方法。該技術能確保在開發周期早期就完成嵌入式軟體的測試。到系統整合階段開始時,嵌入式軟體測試就要比傳統方法做得更徹底更全面。這樣可以及早地發現問題,因此降低了解決問題的成本。

本文所要討論的就是採用了HIL模擬的一個嵌入式軟體開發項目。該項目的目標是開發和測試實驗性動態‘直升機’系統用的嵌入式控制軟體。有了HIL模擬後,人們無需使用除嵌入式處理器及其I/O介面外的任何硬體就能完成該控制器軟體的設計和測試。

隨後的實際系統硬體與執行新軟體的嵌入式控制器的連接首次便獲得成功。在硬體、軟體整合階段唯一要做的額外工作是對一些控制器參數的少量調整,這是由於實際系統硬體與其模擬模型之間畢竟存在差異。圖2:直升機控制系統。

直升機系統

本項目需要開發適合Quanser 3自由度(3DOF)直升機的控制器軟體。這是一個桌面電磁系統,內含由兩個獨立電子馬達控制的3個旋轉軸,每個軸驅動一個推進器。圖1是直升機系統及其運動軸的框圖。

假設傾斜軸的傾角接近零度,在對兩個馬達施加相同的高電壓後直升機會垂直向上攀升。對兩個馬達施加不同的電壓會使直升機繞傾斜軸旋轉。為了使直升機向前行動,首先需要將直升機傾斜到一個非零角度,然後對兩個馬達同時施加適當的電壓來產生向前的推力。

如圖2所示,系統採用的控制電腦具有3個位置編碼器輸入信號、兩個馬達電壓輸出信號,以及用於模式選擇與操縱桿控制的用戶輸入信號。控制電腦通過專門設計的介面卡接收位置編碼器輸入信號,同時產生類比輸出電壓,並透過數位類比轉換器(DAC)驅動那兩個馬達。為了提供足夠大的馬達工作電流,DAC的輸出需要連接到隨後的功率放大器進行放大。

位置編碼器會隨時監測每個軸的運動,這些編碼器通過光學原理感知旋轉運動並產生數位化的角度位置數值。位置編碼器將以每360°4096個步距,或0.08789°的量化步距解析度對這些數值進行量化。每個編碼器的輸出信號由兩個TTL電平組成,即Phase A和Phase B,當對應軸反轉時輸出信號就在這兩個高低電平之間來回切換。根據這兩個信號之間的相位差可以判斷每個軸的運動方向,如圖3所示。脈衝頻率正比於每個軸的旋轉速率。圖3:位置編碼器輸出信號。

直升機控制器的性能指標滿足要在一定時間內將前進和上升軸行動到任意一個指定位置,時間一般應控制在10秒以內。此外,直升機控制器的軟體必須支援其它一些作業模式。全套控制器作業模式包括:

關閉模式:控制器軟體以關閉模式啟動,此時兩個馬達上的電壓為零。一旦系統離開這個模式,就只能從空(Null)模式再次進入該模式。當從空模式進入關閉模式時,需要控制上升軸緩慢地下降到桌面正上方,然後將馬達電壓設置為零。

空模式:當從關閉模式轉變到該模式時,首選要為馬達上電,並控制所有軸到零位置。如果從其它模式轉變到空模式,那麼只需要將所有軸控制到零位置。零位置是指傾斜軸和前進軸在系統啟動位置,而推進組件被抬舉到上升方向的水平位置,如圖1所示。

隨機模式:在10秒時間間隔內為前進和上升軸位移命令產生預定義範圍內的一個新隨機值,然後由控制器軟體將直升機行動到相應的位置。

自動駕駛模式:在這種模式下,由操縱桿產生控制器所需的上升和水平行進命令。通過操縱桿的前後動作控制上升位置,通過左右動作來控制水平位置。控制器通過行動直升機來跟隨命令所指定位置。

手動模式:在手動模式下,操縱桿直接產生馬達驅動用的電壓和與電壓差。操縱桿前後動作控制兩個馬達電壓的和,左右運動控制兩個馬達電壓的差。在這種模式下系統特別難以控制,如果任何軸的運動超過了某個位置限制,控制器就會自動切換到空模式。通常,在進入該模式後的幾秒鐘內可能產生違反限制的問題。圖4:位置編碼器模型。

在確定系統功能和性能要求後,可以進行控制器軟體的開發和測試。而模擬技術的應用可以加快直升機控制器軟體的開發和測試速度。

項目規範

為了對嵌入式軟體進行HIL模擬測試,需要使用嵌入式處理器及其附屬I/O元件。對於許多嵌入式系統來說,這只是整個系統的一小部份,可以在早期開發階段實現組合。可以建立一個直升機硬體及其與外部環境交互的模擬,並通過控制器的I/O介面把這個模擬與嵌入式控制器連接起來。嵌入式控制器和直升機模擬就如同實際系統一樣工作。

在複雜的嵌入式產品開發早期,經常需要模擬一個完整系統在預期環境中的執行。這種利用動態系統模擬工具,如Simulink開發的模擬系統通常不是即時的,但可以作為HIL模擬的基礎。某些時候需要對這些模擬系統中包含的模型進行簡化和最佳化,使之適合即時模擬使用。不過在本項目中不需要修改這些模型。

複雜系統模擬需要用到許多高級的數學算法,但可以採用專門的軟體工具來簡化任務:Simulink是MATLAB的一個附件,它可以用來提供以框圖為主的圖形環境下的動態系統模擬。用Simulink進行模擬的方法是先把‘調色板’上的模組拖到繪畫區域,然後用代表信號流向的直線把這些模組連接起來。圖4就是直升機項目中採用的位置編碼模型的Simulink框圖,該模型把以弧度表示的角度位置作為其輸入信號,並產生Phase A和Phase B信號作為其輸出。另外,它還輸出指示信號,用來指示相應軸到達零位置的時刻。直升機位置編碼器不會產生指示信號輸出,因此不使用該Simulink模型的輸出。

Stateflow是Simulink的一個附件,用以實現有限狀態機模型。在這個直升機項目中,Stateflow模型用來實現直升機模式選擇邏輯。圖5:直升機和控制器模型。

Real-Time Workshop根據Simulink框圖產生C代碼,其它工具需要使用這些代碼來達成編譯與執行目標。在本項目中,其它工具包括Real-Time Windows Target和xPC Target。

Real-Time Windows Target允許模擬的編譯與執行作為PC機Windows系統中的一個即時進程,能與Windows作業系統同時執行。在本項目中,Real-Time Windows Target執行的是HIL系統模擬,所用主機正是開發和控制直升機軟體的電腦。

xPC Target允許在PC上執行模擬,此時PC的功能如同專門的即時控制器。xPC Target還提供即時的多任務內核供只有有限硬體資源的嵌入式處理器使用。xPC Target在本項目中用來在一台獨立PC上產生和執行直升機控制器用的即時代碼,此時該PC機就用作‘嵌入式’控制器。

模擬開發

控制器軟體開發的第一步是實現對整個直升機控制器系統的模擬,圖5提供了模擬的頂層框圖。其中兩個較大的方框分別表示直升機系統本身和數位控制器,兩個較小的帶有‘操縱桿’和‘模式命令’標籤的方框向控制器提供用戶輸入信號。圖5中的‘直升機’框圖包含有直升機動態行為的Simulink模型,如圖6所示。從圖6可以看到,該模型採用了轉移函數、求和函數和積分器等多個Simulink模組。帶‘有限運動’標籤的模組包含有一個受限於向下靠近桌面方向的上升軸運動模型。當被模擬的直升機碰到桌面時,所有3個運動軸的速度都被置為零,因此非常接近實際直升機的行為。從靠近右邊的3個量化器可以看出位置編碼器的量化效果。

‘有限運動’模組代表一個子系統。子系統模組允許在模擬開發期間通過分層圖集(hierarchical sets of diagrams)來控制複雜性。子系統間可以進行任意多層的嵌套,類似於函數的嵌套調用。圖6:直升機動態模型。

圖5‘控制器’子系統的詳細內容見圖7。對3個軸角度測量值的量化結果成為控制器的3個基本輸入信號,控制器輸出的是兩個馬達的驅動電壓。圖7中的主要模組有:驅動直升機到指定位置的‘自動駕駛’模組,在不同作業模式下產生前進和上升位移命令的‘命令產生器’模組,實現用於選擇不同直升機作業模式的有限狀態機的‘模式控制’模組。

‘模式控制’模組內所含的狀態流程框圖如圖8所示。該框圖包含了系統啟動時對操縱桿進行校正的邏輯、用戶控制下的模式改變、當違反位置限值時自動切換到空模式,以及系統關閉的控制。

圖5所示的‘控制器’模組內部提供了嵌入式軟體的完整實現方法。常見的方法是將嵌入式軟體開發當作一個獨立過程,該過程將模擬作為可執行的軟體要求描述來使用。然而,更有效的方法是將模擬中的控制器實現作為‘原始碼’,供嵌入式軟體使用。

在本項目中,可以把圖5的‘控制器’模組挎貝到新的Simulink項目中,並向框圖中添加相應的I/O元件模組。然後,再調用Real-Time Workshop建立C代碼,經過編譯後下載到‘嵌入式’PC控制器。到此就完成了嵌入式軟體的開發工作。

回路硬體

有了直升機和控制器的非即時性Simulink模擬基礎後可以著手HIL模擬開發了。首先需要建立一個新的Simulink項目,再把圖5中帶‘直升機’標籤的模組挎貝進來。這種模擬建立了直升機動態模型,並包括了相應的I/O元件介面。Real-Time Windows Target支援多種I/O元件。HIL模擬所需的I/O要求包括兩個ADC輸入(用於接收控制器發出的馬達命令電壓)和6個TTL數位輸出(為3個模擬位置編碼器分別提供Phase A和Phase B信號)。

本項目中將執行Windows的桌上型PC作為主機系統,因此需要使用滿足上述條件並且具有PCMCIA介面形式的I/O元件。National Instruments公司的DAQCard-1200能夠滿足這些要求,並提供一根帶狀電纜用於連接電腦內的介面卡和獨立的連接器模組。

直升機模擬以固定的訊框速率執行,其模擬Phase A和Phase圖7:直升機控制器模型。 B信號的TTL輸出則一個模擬訊框更新一次。由於位置編碼器信號的脈衝速率正比於運動軸的角速度,因此模擬訊框速率可以限制能準確再現的最大角速度。

如果採用這種方法對位置編碼器信號進行建模,那麼當Phase A和Phase B信號隔訊框交替時就能產生最高的模擬角速度。這時根據等式1就能得出模擬更新間隔h(秒)條件下最大的角速度值wmax(度/秒):

等式1

從直升機行為的數位模擬結果可以明顯看出,傾斜軸具有最大的峰值角速度,但很少出現超過100°/秒的情況。理想情況下h應不小於一定值,這樣HIL模擬就不會佔用電腦太大的計算資源。綜合考慮這些要求,h的最佳值應是500us,此時更新速度是每秒2000訊框,最大的模擬角速度是175.8°/秒,該速度已經遠遠超過最大的角速度期望值。

每秒2000訊框的直升機模擬更新速度已經大大超出對直升機進行動態精確建模的速度要求,因此沒有必要再用高階積分算法來獲取更精確的結果。相對簡單的二階積分算法可以獲得較好的精度,此次模擬選用的就是Simulink‘ode-2’梯形積分算法。與採用更加複雜的高階積分算法相比,這種算法能使模擬具有更高的效率。

為了在目標PC上下載並執行嵌入式軟體,需要用串列電纜連接主機與目標電腦,並從軟碟啟動目標系統內核。根據控制器的Simulink框圖,接下來就可以下載執行嵌入式控制器用的軟體。在將目標系統的I/O元件與DAQCard-1200的相應端子連接起來後,可以在主機的Real-Time Windows Target中執行直升機的Simulink模擬。最後根據Simulink框圖將命令發送給嵌入式控制器,從而啟動控制器工作,完成模擬直升機的‘飛行’。圖8:直升機模式控制框圖。

在HIL模擬工作模式下可以詳細檢查嵌入式軟體的各個方面,從而可以發現並解決設計與實現中的很多問題。所有這些檢測工作期間無需變動任何實際的硬體。在這輪HIL模擬測試結束後,我們就可以得到經過全面測試的嵌入式應用軟體,接下來與實際硬體的快速整合成功的可能性就非常大。

系統整合

在嵌入式軟體完成HIL測試前我們有意避免嵌入式軟體與實際直升機硬體一起執行,主要原因是為了體現HIL模擬的意義,以及減少硬體損壞的風險。在完成HIL測試後,可以把電纜從DAQCard-1200上拔下來並連接到直升機硬體上,接著為系統上電並把直升機控制到‘空模式’位置,然後使之進入隨機模式,此時直升機會每隔10秒飛到隨機產生的前進和上升位置。雖然在響應命令時的擺動和過衝要比HIL模擬時大一些,不過就這第一次試驗來說還是相當成功的。

為了能在所有作業模式下都能取得令人滿意的系統性能,有必要對控制器增益進行一些調整。HIL模擬並不能完全匹配實際系統的行為,這是因為直升機模擬實際上在某些方面作了簡化處理,在模擬中使用的系統集合屬性並不完全符合實際系統屬性。

進行模擬開發時通常都會作出一定程度的簡化處理,事實上人們不可能對影響實際系統行為的所有因素實現完美的建模。最簡單的方法是盡量減少模擬與實際系統間的差異,並適當調整嵌入式軟體所需的參數。

HIL模擬為本項目的開發過程提供了極大的便利,整個嵌入式應用在首次與系統硬體結合執行前就得到了真實環境下的全面測試,因此有效地避免了硬體損壞的風險,而且更容易識別和解決與嵌入式軟體有關的問題。整合過程也顯得相當簡捷,只是對少許參數作了重新調整。如果將未經測試的大型嵌入式軟體直接與硬體連接執行,那麼相對來說這樣的任務就要艱巨得多,通常還會出現一些與整合本身有關的問題。

本項目充分體現了HIL模擬在開發複雜嵌入式系統軟體中的價值。HIL模擬技術能夠在開發早期階段對嵌入式軟體作出全面測試,因此降低了將未經測試軟體執行於昂貴的原型硬體上所具有的風險。與傳統開發方法相比,正確利用HIL模擬技術能夠在更短的時間內開發出更高品質的產品。

參考文獻


1. Apkarian, Jacob. "Systematic Controller Design and Rapid Prototyping,"


available at www.mathworks.com/company/digest/dec98/systematic.shtml

作者:


Jim Ledin


嵌入式系統編程


電氣顧問工程師


Email:jim@ledin.com





投票數:   加入我的最愛
我來評論 - 回路硬體模擬技術在直升機控制系統中的...
評論:  
*  您還能輸入[0]個字
*驗證碼:
 
論壇熱門主題 熱門下載
 •   將邁入40歲的你...存款多少了  •  深入電容觸控技術就從這個問題開始
 •  我有一個數位電源的專利...  •  磷酸鋰鐵電池一問
 •   關於設備商公司的工程師(廠商)薪資前景  •  計算諧振轉換器的同步整流MOSFET功耗損失
 •   Touch sensor & MEMS controller  •  針對智慧電表PLC通訊應用的線路驅動器
 •   下週 深圳 llC 2012 關於PCB免費工具的研討會  •  邏輯閘的應用


EE人生人氣排行
 
返回頁首