ModelicaのスタイルガイドをReferenceに記載の資料を参考に記述する。
あくまで個人的な見解であるためこの通りに書かないといけないというものではない。
一部でも何かの参考になれば幸いである。
goodとbadの例はまた後ほど。
命名規則 Naming conventions
ユーザーが参照しない、他のモデルから参照されないパラメータや変数はPrivateにする public変数を宣言した後にprotectedセクションを宣言する長いので折り畳んでいます
使用できる文字
a b c d e f g h i j k l m n o p q r s t u v w x y z
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
0 1 2 3 4 5 6 7 8 9 _
変数やクラスの名前
SpringDamper
crossArea
T
など
UniformGravity
, SteadyState
アンダースコア(アンダーバー)の使用方法
s_rel
fn_max
Flange_a / Flange_b、HeatPort_a、HeatPort_b
パラメータや変数の宣言
model test
public Real x;
public Real y;
protected
Real a;
Real b;
end test;
model test
protected
Real a;
Real b;
public Real x;
public Real y;
end test;
parameter Real a = 1 "Arbitrary factor";.
parameter Boolean useHeatPort = false "= true, if heatPort is enabled";.
デフォルト値
Equation, Algorithmセクション
グラフィック関係
ライブラリ構成
ここでパッケージはModelicaのpackageクラスのこととする。また、ライブラリは様々なパッケージを一つのパッケージにした包括的なモデル群のこととする。 ライブラリには次のサブパッケージを含める。 UsersGuideパッケージ Examplesパッケージ Interfacesパッケージ Typeパッケージ ユーザーが閲覧しないPartialクラスと基本的なクラスは、 BaseClassesというパッケージに保存する Sourcesパッケージ Componentsパッケージ Sensorsパッケージ長いので折り畳んでいます
ライブラリの全体的な説明とその使用方法
UsersGuideパッケージに以下のパッケージが含まれること
実装についての情報
ライブラリ管理者と共同制作者の情報
参考資料のまとめ
更新履歴
ライブラリの使用法を示すモデル
コネクタとPartialモデル
type, enumerationの定義
プラントモデル
境界条件を定義するモデル
物理量を貯蔵、変換するモデル
複雑なモデルはより詳細にパッケージを分けること
貯蔵、変換は私のイメージなので詳しくは以下を参照
https://github.com/UedaShigenori/OpenModelica_Tutorials_Ja
特定の物理値を信号として出力するモデル
ドキュメント
- annotationセクションに記述するhtmlには、ヘッダー「h1、h2、h3」は使用しない
- annotationセクションのHTMLはドキュメントの自動生成に使用される。その際に不具合とならないようHTMLドキュメントの見出しは、「h4」で始まる必要がある。
コーディング規約
- 重複するコードはコピー&ペーストしない。オブジェクトの継承を使用する
- クラスをインスタンス化するときは相対参照は使用せず、フルパスを使用する
- 物理量を受け渡すポートにはアクロス変数とフロー変数を最低1つずつ定義する
コメントと説明
-
変数やパラメータには説明書きを記述する
Real T_max "Max temperature":
- 上記のようにちゃんと記述しておくと、ツールによってはコードからドキュメントを自動生成してくれるのでドキュメント作成が楽になる
説明書きの頭文字は大文字で、文末にピリオドは含めない
-
ブーリアンパラメータに対して、説明書きは"= true: .."というように記述する
parameter Boolean useHeatPort = false "= true, if heatPort is enabled";.
一般的に用いられる変数
変数 | 物理量 |
---|---|
a | acceleration |
A | Area |
d | damping, density, diameter |
dp | pressureDrop |
Reference
Modelica Standard LibraryのConvections
https://simulationresearch.lbl.gov/modelica/releases/latest/help/Buildings_UsersGuide.html#Buildings.UsersGuide.Conventions
buildingsライブラリのConvections
https://build.openmodelica.org/Documentation/Modelica.UsersGuide.Conventions.html
MATLAB モデリング ガイドライン
https://jp.mathworks.com/help/simulink/modeling-guidelines.html