專利名稱::一種通用無人飛行器仿真建模方法
技術領域:
:本發明提供了一種基于Matlab/Simulink針對無人飛行器控制系統的仿真建模的通用技術,尤其涉及一種通用無人飛行器仿真建模方法。屬于航空航天仿真
技術領域:
,它具體涉及模型模塊的劃分、simulink仿真布局、方程的格式改寫、模型的綜合等部分。二
背景技術:
:在無人飛行器仿真建模技術中,模型的建立和在仿真系統中的表達是十分重要的環節。模型是對客觀實物的特性的數學抽象描述,一般通過復雜的數學公式方程表達,要把這些復雜的數學公式表達成仿真軟件可以識別的語言是相當困難的一件事。往往以開發仿真人員的經驗進行設計編寫所得到的仿真模型可維護性差,不能實現方便的參數調試,并且可靠性、可讀性難以保證。為解決此問題,本發明提供了一種基于Matlab/Simulink的通用無人飛行器仿真建模技術,為仿真建模提供指導,增強了無人飛行器仿真模型的可讀性、可靠性和可維護性,可方便的模型參數的調整。三
發明內容1.目的本發明提供了一種通用無人飛行器仿真建模方法,應用該方法,仿真技術人員可以高效地依據數學模型利用Matlab/Simulink工具建立實際仿真運用模型,并且模型具有良好的可讀性、可靠性和可維護性。2.技術方案本發明一種通用無人飛行器仿真建模方法,其主要內容是先明確模型中的參數和變量并進行統一命名,再次進行邏輯流程圖的制定,simulink的整體布局和各模塊的劃分。其次基于數學方程模型進行方程的整理歸納,轉換仿真通用技術要求的格式,利用編寫m文件改寫各方程為siraulink中所需格式進行各分模塊的搭建。最后進行各模塊的整合和模塊的標識。本發明一種通用無人飛行器仿真建模方法,該方法的具體步驟如下步驟一參數和變量的定義統計整體模型中的變量和參數并分別進行命名進行標識,其中所有名字為英文單詞或詞組,若其單詞或詞組太冗長時用縮寫代替。步驟二進行各模塊劃分進行各模塊的劃分并歸納描述各模塊功能或特性的數學方程,主要劃分為以下幾種模塊無人飛行器動力學模型模塊、控制F律模塊、期望值及航跡輸入模塊、環境特性描述及干擾模塊、數據顯示模塊等。具體情況根據仿真模型的復雜程度進行適當增減,并規劃出各個模塊之間的數據流,畫出模塊之間的數據流圖。步驟三各數學方程格式整理1)將各數學方程中的所要求解的量單獨放在方程等號的一邊,例如;;+5二a'《+A其中y為所要求解的變量a為已知參數,最終整理為2)進行各方程的簡化。步驟四方程的改寫1)按simulink中的User-DefinedFunctions文件夾下的cn模塊輸入順序編寫各變量序號或S函數輸入順序按C語言數組標準編寫各個變量序號。2)在matlab中按以下順序建立m文件運行matlab~選擇File菜單~選擇New菜單一+選擇M-file菜單選項~建立了m文件。輸入各方程中與所求變量相等的等式另一邊的方程式子,并將其作為字符串賦予一個matlab中的變量,例如;;=0.《+》—5,令iV」a.^+《—5'。3)按所需格式進行變量和參數的替換,為在simulink中的User-DefinedFimctions文件夾下的Fcn模塊或S函數模塊可以使用,按編排好的變量序號進行相應替換。替換采用matlab中的strr印語句。步驟五各模塊的建模1)利用Fcn模塊或S函數模塊和simulink的其他模塊進行各模塊的simulink建模,利用out和in模塊留出各模塊間的數據交互接口。2)將每個模塊所包含的內容選中建立subsystem,將各模塊進行封裝。5步驟六系統的整合和各模塊的標識1)將各模塊進行數據交互對應的連接并進行整理規劃。2)利用EditMask功能為各模塊添加圖片和標識。3.優點及功效本發明提供了一種通用無人飛行器仿真建模方法,應用該方法,仿真技術人員可以高效地依據數學模型利用Matlab/Simulink工具建立實際仿真運用模型,并且模型具有良好的可讀性、可靠性和可維護性,很方便地對模型參數進行調整。四圖1通用無人飛行器仿真建模方法流程2模型模塊分解3動力學模型模塊4控制律模塊圖表1變量排序例表本說明書中所有英文符號含義說明如下Matlab:是矩陣實驗室(MatrixLaboratory)的簡稱,是數學類科技應用軟件之一,應用算法開發、數據可視化、數據分析記憶數值計算的高級技術計算語言和交互式環境。Simulink:其是Matiab的一種可視化仿真工具,提供一個動態系統建模、仿真和綜合分析的集成環境。在該環境中,無需大量書寫程序,而只通過簡單直觀的鼠標操作,就可構造出復雜系統。Subsystem:為選擇多個可視化模塊后右鍵單擊出現的快捷菜單中的一條命令(CreateSubsystem)通過它可以進行子模塊的封裝。EditMask:當封裝子模塊后,右鍵單擊子模塊,在出現的快捷菜單中的一條命令(EditMask)通過它可以進行封裝子模塊的標識、標記、貼圖等操作,進行子模塊的可視化編輯。Strrep:為Matlab中的字符串操作函數,其使用用例為strrep(sl,s2,s3)其作用為把sl中所有出現s2的地方替換為s3。Userdefinedfunction:為simulink模型庫中的一個庫名稱。Fen:為Userdefinedfunction庫中的一個模塊名稱。out,in:為simulink中的輸出、輸入模塊。五具體實施例方式該方法實施時所使用設備為能安裝matlab軟件的計算機設備,計算機應安裝Matlab軟件,Matlab軟件版本為6.5或其以上版本。計算機設備工作在常溫環境下,支持鼠標鍵盤操作。下面結合附圖對具體的建模過程進行進一步的說明,其中通用無人飛行器仿真建模技術具體流程圖如圖1。本發明一種通用無人飛行器仿真建模方法,該方法的具體步驟如下-步驟一統計整體模型中的變量和參數并分別進行命名進行標識,為模型的simulink模式改寫及建模提供變量序列,為參數的數值替換和參數的調整準備基礎。其中所有名字為英文單詞或詞組,若其單詞或詞組太冗長時用縮寫代替。如simulation可用sim代替。步驟二進行各子模塊的劃分。按照不同的功能需求劃分各仿真模塊,主要劃分為以下幾種模塊對象所需飛行器動力學模型模塊、期望值及航跡輸入模塊、控制律模塊、環境特性描述及干擾模塊、數據顯示模塊等。具體情況根據仿真模型的復雜程度進行適當增減。對各模塊提供功能說明,輸入數據流的說明和輸出數據流的說明,并繪制數據流圖,如圖2。針對歸納的仿真模塊進行具體的各模塊介紹。動力學模型模塊主要包括數據輸入部分,迎角側滑角的求解部分,執行機構模型,動力學和運動學模型,積分環節,數據輸出部分。接收環境參數、干擾量、控制量等數據,具體設計參見圖3。控制律模塊主要包括數據輸入部分,航跡規劃,控制量計算,數據輸出部分。其接收位置量、姿態量、控制期望值、航跡規劃線路等數據,具體設計參見圖4。環境特性描述及干擾模塊主要包括環境參量模擬,干擾量模擬。期望值及航跡輸入模塊期望值設定、期望值輸出、飛行器航跡設定、飛行器航跡輸出。數據顯示模塊關鍵數據量顯示記錄。步驟三各數學方程格式整理。將各數學方程中的所要求解的量單獨放在方程等號的一邊,例如少+5="'<+《其中^為所要求解的變量(3為已知參數,最終整理為"c7':xf5。進行各方程的簡化,其中各個參數,變量名要按先前定義的進行統一。步驟四方程的改寫。按simulink中的User-DefinedFunctions文件夾下的Fcn模塊輸入順序編寫各變量序號或S函數輸入順序按C語言數組標準編寫各個變量序號可參照表1。表l<table>tableseeoriginaldocumentpage8</column></row><table>編寫m文件按照simulink中所用模塊的需要格式進行方程的轉換。在matlab中按以下順序建立m文件運行matlab~^選擇File菜單~^選擇New菜單~^選擇M-file菜單選項—建立了m文件。再進行m文件內容建立,其中主要將各方程中與所求變量相等的等式另一邊的方程式子作為字符串賦予一個matlab中的變量,在用strrep函數進行字符串替換,將參數替換為具體數值,變量替換成simulink中Fcn模塊所需的輸入變量向量形式。這樣對各個方程進行逐個改寫。步驟五利用Fcn模塊或S函數模塊和simulink的其他模塊進行各模塊的simulink建模,利用out和in模塊留出各模塊間的數據交互接口。對每個模塊的內容在該模塊建立完全后利用subsystem,將其進行封裝,只留出數據輸入輸出接口以便與其他模塊按數據流圖進行數據交互。步驟六將各模塊按數據流圖進行對應的連接并進行整理規劃。利用EditeMask功能為各模塊添加圖片和標識。權利要求1、一種通用無人飛行器仿真建模方法,其特征在于該方法具體步驟如下步驟一參數和變量的定義統計整體模型中的變量和參數并分別進行命名進行標識,其中所有名字為英文單詞及詞組,若其單詞、詞組太冗長時用縮寫代替;步驟二進行各模塊劃分進行各模塊的劃分并歸納描述各模塊功能及特性的數學方程,并劃分為以下幾種模塊無人飛行器動力學模型模塊、控制F律模塊、期望值及航跡輸入模塊、環境特性描述及干擾模塊、數據顯示模塊;具體情況根據仿真模型的復雜程度進行適當增減,并規劃出各個模塊之間的數據流,畫出模塊之間的數據流圖;步驟三各數學方程格式整理1)將各數學方程中的所要求解的量單獨放在方程等號的一邊,如<mathsid="math0001"num="0001"><math><![CDATA[<mrow><mi>y</mi><mo>+</mo><mn>5</mn><mo>=</mo><mi>a</mi><mo>·</mo><msubsup><mi>x</mi><mn>1</mn><mn>2</mn></msubsup><mo>+</mo><msub><mi>x</mi><mn>2</mn></msub><mo>,</mo></mrow>]]></math>id="icf0001"file="A2009100920100002C1.tif"wi="29"he="7"top="119"left="24"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/></maths>其中y為所要求解的變量,a為已知參數,最終整理為<mathsid="math0002"num="0002"><math><![CDATA[<mrow><mo>=</mo><mi>a</mi><mo>·</mo><msubsup><mi>x</mi><mn>1</mn><mn>2</mn></msubsup><mo>+</mo><msub><mi>x</mi><mn>2</mn></msub><mo>-</mo><mn>5</mn><mo>;</mo></mrow>]]></math></maths>2)進行各方程的簡化;步驟四方程的改寫1)按simulink中的User-DefinedFunctions文件夾下的cn模塊輸入順序編寫各變量序號、S函數輸入順序,按C語言數組標準編寫各個變量序號;2)在matlab中按以下順序建立m文件運行matlab→選擇File菜單→選擇New菜單→選擇M-file菜單選項→建立了m文件;輸入各方程中與所求變量相等的等式另一邊的方程式子,并將其作為字符串賦予一個matlab中的變量,如<mathsid="math0003"num="0003"><math><![CDATA[<mrow><mi>y</mi><mo>=</mo><mi>a</mi><mo>·</mo><msubsup><mi>x</mi><mn>1</mn><mn>2</mn></msubsup><mo>+</mo><msub><mi>x</mi><mn>2</mn></msub><mo>-</mo><mn>5</mn><mo>,</mo></mrow>]]></math>id="icf0003"file="A2009100920100002C3.tif"wi="30"he="6"top="199"left="79"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/></maths>令<mathsid="math0004"num="0004"><math><![CDATA[<mrow><mi>N</mi><mo>=</mo><mmultiscripts><mi>a</mi><mprescripts/><none/><mo>′</mo></mmultiscripts><mo>·</mo><msubsup><mi>x</mi><mn>1</mn><mn>2</mn></msubsup><mo>+</mo><msub><mi>x</mi><mn>2</mn></msub><mo>-</mo><msup><mn>5</mn><mo>′</mo></msup><mo>;</mo></mrow>]]></math>id="icf0004"file="A2009100920100002C4.tif"wi="33"he="6"top="199"left="117"img-content="drawing"img-format="tif"orientation="portrait"inline="yes"/></maths>3)按所需格式進行變量和參數的替換,為在simulink中的User-DefinedFunctions文件夾下的Fcn模塊、S函數模塊可以使用,按編排好的變量序號進行相應替換,替換采用matlab中的strrep語句;步驟五各模塊的建模1)利用Fcn模塊、S函數模塊和simulink的其他模塊進行各模塊的simulink建模,利用out和in模塊留出各模塊間的數據交互接口;2)將每個模塊所包含的內容選中建立subsystem,將各模塊進行封裝;步驟六系統的整合和各模塊的標識1)將各模塊進行數據交互對應的連接并進行整理規劃;2)利用EditMask功能為各模塊添加圖片和標識。全文摘要本發明一種通用無人飛行器仿真建模方法,它有六大步驟步驟一參數和變量的定義;步驟二進行各模塊劃分;步驟三各數學方程格式整理;步驟四方程的改寫;步驟五各模塊的建模;步驟六系統的整合和各模塊的標識。應用該方法,仿真技術人員可以高效地依據數學模型利用Matlab/Simulink工具建立實際仿真運用模型,并且模型具有良好的可讀性、可靠性和可維護性,很方便地對模型參數進行調整。本發明在航空航天仿真
技術領域:
內具有廣泛的實用價值和應用前景。文檔編號G06F17/50GK101645101SQ200910092010公開日2010年2月10日申請日期2009年9月4日優先權日2009年9月4日發明者明祝,鄭澤偉,虓郭申請人:北京航空航天大學