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