




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Modelica語法詳解注解哈工大計算學部-工業(yè)軟件中心哈工大重慶研究院-無人裝備中心曲明成
博士/副教授
qumingcheng@2025年4月23日Example專業(yè)的圖標+酷炫的動畫=想用的沖動Example分欄+分頁+說明=參數(shù)一目了然annotation(……);思考長啥樣?能干啥?模型中的都屬于注解1、組件參數(shù)框設計2、圖標設計3、模型幫助文檔設計4、動態(tài)顯示設計blockBulb"燈泡"
input
Realcoupling_variable
annotation(Dialog(group="CouplingVariable"));
parameter
Realcritical_value
annotation(Dialog(group="Parameter"));
parameter
ColorSelectlower_color=RGB(255,255,255)
annotation(Dialog(group="Parameter"));
parameter
ColorSelectupper_color=RGB(255,255,0)
annotation(Dialog(group="Parameter"));…protected
ColorSelectlight_color
annotation(Hide=false);algorithm
…
annotation(Icon(graphics={Ellipse(extent={{-80,100},{80,-60}},color={192,192,192},fillPattern=
FillPattern.Sphere,fillColor={255,255,0},dynamicFillColorR=light_color.r,dynamicFillColorG=light_color.g,dynamicFillColorB=light_color.b,dynamicLineColorR
=body_line_color.r,dynamicLineColorG=body_line_color.g,dynamicLineColorB=
body_line_color.b,…,Text(extent={{-80,-110},{80,-140}},color={0,0,255},textString="%name")}));endBulb;目錄1.
參數(shù)面板設計2.圖標設計3.模型文檔設計4.動態(tài)顯示設計6.本章回顧5.文本其他注解modelAnnularOrificeSpool"帶有圓環(huán)節(jié)流孔的滑閥芯"
//參數(shù)parameter
SI.Lengthds(displayUnit="mm")=0.01
"筒徑";parameter
SI.Lengthdr(displayUnit="mm")=0.005
"桿徑";parameter
SI.Lengthlen0(displayUnit="mm")=0
"初始壓力腔長度";parameter
SI.Positionunderlap0(displayUnit="mm")=0
"零開口壓力腔長";parameter
SI.Positionxmin(displayUnit="mm")=0
"最小位移限制";parameter
SI.Positionxmax(displayUnit="mm")=1e27
"最大位移限制";parameter
SI.Volumev0(displayUnit="ml")=0
"死區(qū)容積";parameter
BooleanUseJetForce=false
"若為true,則考慮液動力,否則不考慮液動力";parameter
RealCqmax=0.7"最大流量系數(shù)";parameter
Reallambda_crit=100
"臨界流量數(shù)";endAnnularOrificeSpool;modelAnnularOrificeSpool"帶有圓環(huán)節(jié)流孔的滑閥芯"
//參數(shù)
parameter
SI.Lengthds(displayUnit="mm")=0.01
"筒徑"
annotation(Dialog(group="結構參數(shù)"));
parameter
SI.Lengthdr(displayUnit="mm")=0.005
"桿徑"
annotation(Dialog(group="結構參數(shù)"));
parameter
SI.Lengthlen0(displayUnit="mm")=0
"初始壓力腔長度"
annotation(Dialog(group="結構參數(shù)"));
parameter
SI.Positionunderlap0(displayUnit="mm")=0
"零開口壓力腔長"
annotation(Dialog(group="結構參數(shù)"));
parameter
SI.Positionxmin(displayUnit="mm")=0
"最小位移限制"
annotation(Dialog(group="結構限制"));
parameter
SI.Positionxmax(displayUnit="mm")=1e27
"最大位移限制"
annotation(Dialog(group="結構限制"));
parameter
SI.Volumev0(displayUnit="ml")=0
"死區(qū)容積"annotation(Dialog(group="高級"));
parameter
BooleanUseJetForce=false
"若為true,則考慮液動力,否則不考慮液動力"
annotation(Dialog(tab="高級",group="流體參數(shù)"));
parameter
RealCqmax=0.7"最大流量系數(shù)"
annotation(Dialog(tab="高級",group="流體參數(shù)"));
parameter
Reallambda_crit=100
"臨界流量數(shù)"
annotation(Dialog(tab="高級",group="流體參數(shù)"));endAnnularOrificeSpool;參數(shù)歸類方式:使用:annotation(Dialog(tab=“參數(shù)頁名”,group=“參數(shù)組名”))tab=“”表示將此參數(shù)放在具體參數(shù)頁group=“”表示將此參數(shù)放在具體參數(shù)組Dialog()使用:歸類參數(shù)使用前使用后1.參數(shù)面板設計choice()使用:增加下拉賦值選項modelChoice
parameter
Reala=1.5
annotation(choices(choice=1.1
"材料1",choice=1.2
"材料2"));
Realb;equation
b=a;endChoice;形式:annotation(choices(choice=數(shù)值1“備注1”,
choice=數(shù)值2“備注2”,…,choice=數(shù)值n“備注n”));說明:下拉選項可以添加多個使用choice后,參數(shù)仍然可以進行自定義賦值下拉選項只會顯示所寫備注1.參數(shù)面板設計目錄1.
參數(shù)面板設計2.圖標設計3.模型文檔設計4.動態(tài)顯示設計6.本章回顧5.文本其他注解modelTank"油箱"
annotation(Diagram(coordinateSystem(extent={{-100.0,-100.0},{100.0,100.0}},preserveAspectRatio=false,grid={2.0,2.0})),Icon(coordinateSystem(extent={{-100.0,-100.0},{100.0,100.0}},preserveAspectRatio=false,grid={2.0,2.0}),graphics={Line(origin={0.0,0.0},points={{-40.0,20.0},{-40.0,-20.0},{40.0,-20.0},{40.0,20.0}},thickness=3.0),Line(origin={0.0,15.0},points={{0.0,-15.0},{0.0,15.0}},color={0,85,255},thickness=3.0),Text(origin={2.0,76.0},lineColor={0,85,255},extent={{-100.0,20.0},{100.0,-20.0}},textString="%name",fontName="TimesNewRoman",textStyle={TextStyle.None},textColor={0,85,255}),Line(origin={-20.0,50.0},points={{0.0,10.0},{0.0,-9.99999999999996}},thickness=2.0,arrow={Arrow.None,Arrow.Filled},arrowSize=10.0)}),Protection(access=Access.packageText));endTank;自動生成代碼相互關聯(lián)圖標層代碼層你在圖標層畫的每一筆,代碼層都用“小本本”記好了2.圖標設計coordinateSystem(圖層屬性)extent={{},{}}圖層大小preserveAspectRatio=true/false是否鎖定縱橫比grid={,}間距model
Icon
annotation(Icon(
coordinateSystem(extent={{-150.0,-100.0},{150.0,100.0}},preserveAspectRatio=false,grid={2.0,2.0})));end
Icon;圖層設置2.圖標設計graphics={…}圖形繪制Line(線屬性)origin={,}中心點坐標rotation旋轉角度points={{},…{}}線上點的坐標color顏色pattern線型thickness線寬arrow={,}起點終點是否有箭頭arrowSize箭頭尺寸smooth是否光滑__MWorks_Manhattanize是否保持橫平豎直圖形繪制modelIcon
annotation(Icon(coordinateSystem(extent={{-100.0,-100.0},{100.0,100.0}},grid={2.0,2.0}),graphics={Line(origin={0.0,0.0},rotation=45.0,points={{-30.0,30.0},{30.0,30.0},{30.0,-30.0}},color={0,128,0},thickness=1.0,arrow={Arrow.Open,Arrow.Filled},arrowSize=5.0,smooth=Smooth.Bezier,__MWorks_Manhattanize=true)}));endIcon;2.圖標設計圖形繪制modelIcon
annotation(Icon(coordinateSystem(extent={{-100.0,-100.0},{100.0,100.0}},grid={2.0,2.0}),graphics={Rectangle(origin={0.0,0.0},rotation=45.0,lineColor={128,0,0},fillColor={255,255,255},pattern=LinePattern.Dot,fillPattern=FillPattern.Solid,lineThickness=2.0,extent={{-40.0,40.0},{40.0,-40.0}},radius=10.0)}));endIcon;graphics={…}圖形繪制Rectangle(矩形屬性)origin中心點坐標rotation旋轉角度lineColor輪廓顏色fillColor填充色pattern輪廓線型fillPattern填充樣式lineThickness輪廓線寬borderPattern效果extent矩形尺寸radius圓角半徑2.圖標設計圖形繪制modelIcon
annotation(Icon(coordinateSystem(extent={{-100.0,-100.0},{100.0,100.0}},grid={2.0,2.0}),graphics={Ellipse(origin={0.0,0.0},lineColor={0,0,128},fillColor={255,255,255},pattern=LinePattern.DashDotDot,fillPattern=FillPattern.Solid,lineThickness=2.0,extent={{-30.0,30.0},{30.0,-30.0}},startAngle=45.0,endAngle=135.0)}));endIcon;graphics={…}圖形繪制Ellipse(橢圓屬性)origin中心點坐標rotation旋轉角度lineColor輪廓顏色fillColor填充色pattern輪廓線型fillPattern填充樣式lineThickness輪廓線寬extent橢圓尺寸startAngle扇形起始角度endAngle扇形終止角度2.圖標設計圖形繪制modelIcon
annotation(Icon(coordinateSystem(extent={{-100.0,-100.0},{100.0,100.0}},grid={2.0,2.0}),graphics={Polygon(origin={0.0,0.0},rotation=50.0,lineColor={128,0,128},fillColor={255,255,255},pattern=LinePattern.DashDot,fillPattern=FillPattern.Solid,lineThickness=2.0,points={{-40.0,40.0},{-40.0,-40.0},{40.0,0.0}},smooth=Smooth.Bezier)}));endIcon;graphics={…}圖形繪制Polygon(多邊形屬性)origin中心點坐標rotation旋轉角度lineColor輪廓顏色fillColor填充色pattern輪廓線型fillPattern填充樣式lineThickness輪廓線寬points多邊形頂點smooth是否光滑2.圖標設計圖形繪制modelIcon
annotation(Icon(coordinateSystem(extent={{-100.0,-100.0},{100.0,100.0}},grid={2.0,2.0}),graphics={Text(origin={0.0,0.0},lineColor={255,0,0},extent={{-57.00000000000001,33.5},{57.0,-33.5}},textString="HelloWorld",fontSize=20,fontName="Arial",textStyle={TextStyle.Bold,TextStyle.Italic},textColor={255,0,0})}));endIcon;graphics={…}圖形繪制Text(文本屬性)origin中心點坐標rotation旋轉角度extent文本大小textString文本內容fontSize字號fontName字體textStyle字形(加粗、斜體、下劃線)points多邊形頂點horizontalAlignment對齊(左對齊、居中、右對齊)2.圖標設計圖形繪制:特殊文字%參數(shù)名顯示對應的參數(shù)值%name顯示實例化組件名%class顯示類名%%顯示“%”2.圖標設計圖形繪制modelIcon
annotation(Icon(coordinateSystem(extent={{-100.0,-100.0},{100.0,100.0}},grid={2.0,2.0}),graphics={Bitmap(origin={0.0,0.0},extent={{-67.0,-77.0},{67.0,77.0}},fileName="modelica://ModelicaGrammar/Resources/Icon/Mask_system.jpg")}));endIcon;graphics={…}圖形繪制Bitmap(圖片屬性)origin中心點坐標rotation旋轉角度extent圖片尺寸fileName圖片路徑注意:圖片路徑建議使用相對路徑。2.圖標設計目錄1.
參數(shù)面板設計2.圖標設計3.模型文檔設計4.動態(tài)顯示設計6.本章回顧5.文本其他注解3.模型文檔設計文檔查看頁面文檔編輯頁面blockAdd
annotation(Documentation(info="HTML代碼"));endAdd;自動生成代碼注意:只能編輯Information中的內容。好記性不如爛筆頭,別忘了給你的模型加一份說明文檔。目錄1.
參數(shù)面板設計2.圖標設計3.模型文檔設計4.動態(tài)顯示設計6.本章回顧5.文本其他注解4.動態(tài)顯示設計仿真不是目的,獲取仿真結果為我所用才是硬道理。MWorks.Sysplorer提供了3結果查看方式:曲線窗口3D動畫窗口2D動畫示意用annotation(……);做個動態(tài)顯示儀表,這樣才“配得上”你的仿真結果。4.動態(tài)顯示設計modelDynamicText
Realx=time*2;
annotation(
Diagram(coordinateSystem(
extent={{-150.0,-100.0},{150.0,100.0}},preserveAspectRatio=false,grid={2.0,2.0})),Icon(coordinateSystem(extent={{-100.0,-100.0},{100.0,100.0}},preserveAspectRatio=false,grid={2.0,2.0}),graphics={Text(origin={0.0,0.0},extent={{-78.0,-51.0},{78.0,51.0}},textString="%x",fontSize=36,textStyle={TextStyle.None}),Rectangle(origin={0.0,0.0},fillColor={255,255,255},lineThickness=2.0,extent={{-83.0,26.0},{83.0,-26.0}})}));endDynamicText;實現(xiàn)方式:使用“%+變量名”4.動態(tài)顯示設計實現(xiàn)方式:使用“DynamicSelect(x,expr)”modelProgressBar
Reallevel=10*time;
Realpercent=1.25*level;
annotation(Icon(coordinateSystem(extent={{-100.0,-100.0},{100.0,100.0}},grid={2.0,2.0}),graphics={Rectangle(origin={-100.0,-30.0},fillColor={0,255,0},fillPattern=FillPattern.Solid,extent=DynamicSelect({{0,0},{0,60}},{{0,0},{level,60}})),Rectangle(origin={0.0,0.0},fillColor={255,255,255},extent={{-100.0,30.0},{100.0,-30.0}}),Text(origin={-41.0,49.0},extent={{-29.0,7.0},{29.0,-7.0}},textString=DynamicSelect("0",String(percent)),fontSize=20,textStyle={TextStyle.None},horizontalAlignment=TextAlignment.Right),Text(origin={6.0,49.0},extent={{-6.0,11.0},{6.0,-11.0}},textString="%%",fontSize=20,textStyle={TextStyle.None},horizontalAlignment=TextAlignment.Left)}));endProgressBar;x為默認初始值,及圖標默認狀態(tài)expr為仿真過程中圖標實時賦值,達到動態(tài)效果。x類型示例整型20布爾型False,True實型18.28字符串“ABC”數(shù)組構造{{0,0},{20,30}}expr類型示例一元表達式not二元表達式and、or、+、/、^、*if表達式ifconditionthenexpr1elseexpr2內置函數(shù)調用min、max、integer、String模型變量Real、Integer、Boolean、StringString類型的參量Stringx=“abc”或Stringx[2]={“a”,“b”}數(shù)組構造{{1,2},{4,5}}注意:x和expr用文本顯示時,必須為字符串。4.動態(tài)顯示設計實現(xiàn)方式:動態(tài)屬性語句modelDynamicFillColor
Realr=time*200;
Realg=255-r;
Realb=4*r;
annotation(Icon(graphics={Rectangle(extent={{-100,100},{100,-100}},color={0,0,255},fillColor={255,255,255},fillPattern=FillPattern.Solid,dynamicFillColorR=r,dynamicFillColorG=g,dynamicFillColorB=b)}));endDynamicFillColor;動態(tài)屬性示例使用對象dynamicFillColorR填充顏色R分量的動態(tài)值,有效取值范圍為0~255fillColordynamicFillColorG填充顏色G分量的動態(tài)值,有效取值范圍為0~255dynamicFillColorB填充顏色B分量的動態(tài)值,有效取值范圍為0~255dynamicFillPattern填充方式的動態(tài)值,取值為枚舉值。fillPatterndynamicLineColorR線條顏色R分量的動態(tài)值,有效取值范圍為0~255lineColordynamicLineColorG線條顏色G分量的動態(tài)值,有效取值范圍為0~255dynamicLineColorB線條顏色B分量的動態(tài)值,有效取值范圍為0~255dynamicLinePattern線條樣式的動態(tài)值,取值為枚舉值。linePatterndynamicWidth矩形、橢圓等圖形寬度的動態(tài)值extentdynamicHeight矩形、橢圓等圖形高度的動態(tài)值dynamicRotation旋轉角度的動態(tài)值rotationdynamicStartAngle扇形起始角度的動態(tài)值,僅用于橢圓startAngle目錄1.
參數(shù)面板設計2.圖標設計3.模型文檔設計4.動態(tài)顯示設計6.本章回顧5.文本其他注解5.文本其他注解標準庫版本引用packageversion_test
annotation(uses(Modelica(version="3.2")));endversion_test;在模型庫頂層package中添加Modelica標準庫版本引用打開模型庫仿真設置注解為模型設置合適仿真區(qū)間、輸出步長和積分算法。modelTestReala=sin(time);endTest;modelTest
Reala=sin(time);
annotation(experiment(Algorithm=Dassl,IntegratorStep=-1,Interval=0.002,StartTime=0,StopTime=5,Tolerance=0.0001));endTest;保存到模型的仿真設置成為默認仿真設置5.文本其他注解functionsin_cosinput
Realx;output
Realy;
annotation(derivative=sin_cos_d);algorithm
y:=sin(x)*cos(x);endsin_cos;默認名稱注解導函數(shù)注解自動關聯(lián)函數(shù)的導函數(shù)。modelEnvironment
parameter
Realk=1;
Modelica.SIunits.TemperatureT0;equation
T0=sin(k*time)+273.15;
annotation(defaultComponentName="environment",defaultComponentPrefixes="inner"
Icon(…));endEnvironment;實例化時自動添加組件屬性和名稱modelComponent
inner
ModelicaGrammar.Connector.Environmentenvironment;
Mode
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 安裝拉布車棚合同協(xié)議書(2篇)
- 基礎知識提升2024年體育經紀人試題及答案
- 無人機智能飛行技術分析試題及答案
- 考試經驗分享與試題及答案
- 2024年足球裁判員考試的思維導圖運用試題及答案
- 2024年植保員考試備考方法大解析試題及答案
- 裁判員在不同賽事中的適應性與策略運用試題及答案
- 實際案例農業(yè)植保員試題及答案
- 植保員與科研合作的深化研究試題及答案
- 足球裁判員領域熱點試題及答案討論
- 創(chuàng)業(yè)大賽承辦服務投標方案(技術方案)
- JGJ/T235-2011建筑外墻防水工程技術規(guī)程
- DL∕T 5028.1-2015 電力工程制圖標準 第1部分:一般規(guī)則部分
- 員工合同書一張紙的勞動合同書書2024年
- 辛棄疾詞《青玉案·元夕》
- 公路橋梁塔柱施工平臺及通道安全技術要求
- 糖尿病臨床診療指南:基層實踐
- 2023年形勢與政策期末考試滿分題庫
- 年產鄰苯二甲酸二丁酯畢業(yè)設計
- CJT227-2006 垃圾生化處理機
- 如果歷史是一群喵
評論
0/150
提交評論