SlideShare a Scribd company logo
1 of 21
OpenModelica超初級チュートリアル
5.オリジナルモデルの作成
1
Copyright (C) 2017 Shigenori Ueda
Released under the MIT license
https://opensource.org/licenses/mit-license.php
注意事項
・ 本チュートリアルは以下の内容が理解できていることを前提と
しております
「OpenModelica超初級チュートリアル1.解析モデルの作成と実行」
「OpenModelica超初級チュートリアル2.コーディング」
「OpenModelica超初級チュートリアル3.モデルのカスタマイズ1」
「OpenModelica超初級チュートリアル4.モデルのカスタマイズ2」
・ OpenModelica1.11.0 (64bit – windows版)を利用して
本チュートリアルは作成されています
2
オリジナルモデルの作成
自分で一からモデルを作ってみましょう
オリジナルモデルが作れるようになると?
 任意の数式したモデルを作成できるようになる
 オリジナルのライブラリを作れるようになる
 既存ライブラリが何をしているか分かる
3
実数a,bを入力し、a+b=cを計算するモデルを作成する
必要なクラス
• aを入力するモデル
• bを入力してa+b=cを
計算するモデル
• 実数を引き渡すポート
• aとbの接続図
aを入力
bを入力して
a+b=cを計算
aとbの接続図
ポート ポート
作成するモデル
4
作成するクラスのデータ
モデルの役割 クラスタイプ モデル名 パラメータ名 変数名 コネクター equation
実数を引き渡すポート connector Port 実数 var - - -
aを入力 model Input_a 実数 a - Port a=Port.var
bを入力
a+bを計算
model Cal_c 実数 b
実数 a
実数 c Port a+b=c
a=Port1.var
aとbの接続図 model a_Plus_b - - - -
各クラスを作成する際に必要なデータを以下に整理します
モデル名やパラメータ名などは任意です
表の上から順に作成します
まずは簡単に何が必要か簡単に確認してください
5
connectorはクラス同士がやり取りする変数を定義したものです
以下の書式で表されます
connectorの書式
connector␣コネクター名
やり取りしたい変数の型␣変数名;
annotation(アイコン情報);
end␣コネクター名
connectorの書式
*変数は複数設定することが可能です
6
connector「Port」を作成してみましょう。
connectorの作成1
「Modelicaクラス新規作成」から、名前を「Port」、クラス・タイプを「Connector」にして
モデルを新規作成してください
①
テキストビューから以下のようにconnectorが作成できたことを確認しましょう②
7
connectorの作成2
やり取りする変数を定義します
今回は実数をやり取りするため、Real型で宣言し、変数名をvar(variableの略)にします
③
アイコンの設定を行うため、「アイコンビュー」から「長方形」を使って、
表示範囲(coordinate System)全体に長方形を書いてください
④
8
connectorの作成3
長方形を右クリックして、「特性」をクリックし
「塗りつぶしタイプ」を以下のように設定し、アイコンの色を定義してください。
これで「Port」が完成しました。
⑤
9
「aを入力」の作成1
10
モデルの役割 クラスタイプ モデル名 パラメータ名 変数名 コネクター equation
aを入力 model Input_a 実数 a - Port a=Port.var
以下の表をもとにモデルを作成します
クラスタイプをmodel、モデル名をInput_aにして新しいクラスを作成してください①
パラメータとなる実数「a」を追加してください②
11
tutorial4で行ったように、「アイコンビュー」から「Port」をドラッグ&ドロップして追加してください③
「aを入力」の作成2
テキストビューを確認すると
「Port」のインスタンスが作成されています
12
入出力の関係式
インスタンス化されたconnectorの変数と、
宣言したパラメータや変数は等式で接続する必要があります
connector␣コネクター名
やり取りしたい変数の型␣変数名2;
annotation(アイコン情報);
end␣コネクター名
connectorの書式
変数の型␣変数名1;
equation
connectorの変数と宣言した変数の接続
connector名␣インスタンス名;
インスタンス名.変数名2=変数名1
参考
Modelica言語では、階層を「.(ドット)」で表します
Memo
13
「aを入力」の作成3
パラメータ「a」と、「Port1」の変数「var」を結び付けるため、
以下の式をequationセクションに記述します
④
Input_aの値をPortによって他のブロックへ受け渡せるようになります
a
Input_a
var 他の
モデル
Port
コネクターの役割のイメージ
14
「aを入力」の作成4
アイコンを以下のように設定します。これで「Input_a」の完成です。⑤
15
「bを入力、a+b=cを計算」の作成1
モデルの役割 クラスタイプ モデル名 パラメータ名 変数名 コネクター equation
bを入力
a+bを計算
model Cal_c 実数 b 実数 c
実数 a
Port a+b=c
a=Port1.var
これまでと同様に、表を参考にモデルを作成します
表を参考に新しいクラス「Cal_c」を作成してください①
パラメータとなる実数「b」を追加してください②
変数となる実数「c」、「a」を追加してください
右図のようになっていることを確認してください
③
16
「bを入力、a+b=cを計算」の作成2
「アイコンビュー」から「Port」をドラッグ&ドロップして追加してください④
equationセクションに、ポートからの値を受け取る等式「a = Port1.var」を追加してください⑤
17
「bを入力、a+b=cを計算」するモデルの作成3
「a + b = c」を追加してください⑥
Modelica言語は、非因果的モデリングのため
方程式の左辺、右辺
等式の順番
は計算結果と関係ありません。
入出力の関係式は、equationセクションの一番下に
記述すると計算式と混在せず可読性の高いコードになります
Memo
入出力の関係式
18
「bを入力、a+b=cを計算」するモデルの作成4
以下のようにアイコンを作成し、モデルを完成させてください⑦
19
「a+bの接続図」の作成1
モデルの役割 クラスタイプ モデル名 パラメータ名 変数名 コネクター equation
aとbの接続図 model a_Plus_b - - - -
最後に、これまで作成した「Input_a」と「Calc_c」を接続するためのクラスを作成します
新規クラスを作成し、「Input_a」と「Cal_c」のインスタンスを作成し、接続してください①
「Input_a」の「a」と「Cal_c」の「b」に1を代入してください②
チェックを実行し、問題なければシミュレートを実行し「c」の値が2になっていることを確認してください③
Exercise
・「bを入力」と「a+b=cを計算」のモデルをそれぞれ別に作成してください。
その場合「a+b=cを計算」モデルのポートはいくつになるでしょうか?
20
その他ーModelicaにおける命名規則
以下のように命名規則を定めることで可読性が高く、変数のバッティングを防ぐことができます。
1. functionクラス以外のclass名は大文字で始める
2. 変数名は小文字で始める。しかし、一文字の場合は大文字にする場合もある
例.自然長s_rel0, 温度の変数 T
3. 複数の単語からなる名前は、最初の文字は上記1~3に基づいて決定し
残りの単語を大文字にする
例.変数 onePlus,
4. アンダーバーは名前の最後に使う。
5. 同様のコネクタインスタンスが二つある場合は、正負を表すpとnやaとbなどを使い区別する
例.flange_a, flange_b
21

More Related Content

What's hot

24Jun17 MBD-Case - Room and MBD and I Ver3
24Jun17 MBD-Case - Room and MBD and I Ver324Jun17 MBD-Case - Room and MBD and I Ver3
24Jun17 MBD-Case - Room and MBD and I Ver3Shigenori Ueda
 
20210921 Qlik Tips SCDとIntervalmatch
20210921 Qlik Tips SCDとIntervalmatch20210921 Qlik Tips SCDとIntervalmatch
20210921 Qlik Tips SCDとIntervalmatchQlikPresalesJapan
 
HoloLens 2 開発入門 (公式チュートリアルの紹介)
HoloLens 2 開発入門 (公式チュートリアルの紹介)HoloLens 2 開発入門 (公式チュートリアルの紹介)
HoloLens 2 開発入門 (公式チュートリアルの紹介)Madoka Chiyoda
 
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」Yoshiki Shibukawa
 
Free cad 0.19.2 and cfdof (Japanese Ver.)
Free cad 0.19.2 and cfdof (Japanese Ver.)Free cad 0.19.2 and cfdof (Japanese Ver.)
Free cad 0.19.2 and cfdof (Japanese Ver.)YohichiShiina
 
TECHTALK 20230214 ビジネスユーザー向け機械学習入門 第2回~機械学習のための学習データの前処理
TECHTALK 20230214 ビジネスユーザー向け機械学習入門 第2回~機械学習のための学習データの前処理TECHTALK 20230214 ビジネスユーザー向け機械学習入門 第2回~機械学習のための学習データの前処理
TECHTALK 20230214 ビジネスユーザー向け機械学習入門 第2回~機械学習のための学習データの前処理QlikPresalesJapan
 
オープンソースの CFD ソフトウェア SU2 のチュートリアルをやってみた
オープンソースの CFD ソフトウェア SU2 のチュートリアルをやってみたオープンソースの CFD ソフトウェア SU2 のチュートリアルをやってみた
オープンソースの CFD ソフトウェア SU2 のチュートリアルをやってみたFumiya Nozaki
 
HoloLensでUWPの機能を活用する時のtips
HoloLensでUWPの機能を活用する時のtipsHoloLensでUWPの機能を活用する時のtips
HoloLensでUWPの機能を活用する時のtipsTakahiro Miyaura
 
Seguridad en cisco firewall by ro ckberto
Seguridad en cisco   firewall by ro ckbertoSeguridad en cisco   firewall by ro ckberto
Seguridad en cisco firewall by ro ckbertoRoberto Flores
 
Spiderストレージエンジンのご紹介
Spiderストレージエンジンのご紹介Spiderストレージエンジンのご紹介
Spiderストレージエンジンのご紹介Kentoku
 
howtoCADandMeshing2022.pdf
howtoCADandMeshing2022.pdfhowtoCADandMeshing2022.pdf
howtoCADandMeshing2022.pdfEtsuji Nomura
 
FMI1.0 FMI for Co-Simulation について
FMI1.0 FMI for Co-Simulation についてFMI1.0 FMI for Co-Simulation について
FMI1.0 FMI for Co-Simulation についてAmane Tanaka
 
Sql server パーティション 概要
Sql server パーティション 概要Sql server パーティション 概要
Sql server パーティション 概要Masayuki Ozawa
 
Rclex: ElixirでROS!!
Rclex: ElixirでROS!!Rclex: ElixirでROS!!
Rclex: ElixirでROS!!Hideki Takase
 
SpotBugs(FindBugs)による 大規模ERPのコード品質改善
SpotBugs(FindBugs)による 大規模ERPのコード品質改善SpotBugs(FindBugs)による 大規模ERPのコード品質改善
SpotBugs(FindBugs)による 大規模ERPのコード品質改善Works Applications
 
OCHaCafe #4 Hyperledger Fabric アプリケーション設計入門ガイドでしゃべった内容+おまけ資料
OCHaCafe #4 Hyperledger Fabric アプリケーション設計入門ガイドでしゃべった内容+おまけ資料OCHaCafe #4 Hyperledger Fabric アプリケーション設計入門ガイドでしゃべった内容+おまけ資料
OCHaCafe #4 Hyperledger Fabric アプリケーション設計入門ガイドでしゃべった内容+おまけ資料オラクルエンジニア通信
 
FreeCAD OpenFOAM Workbenchセットアップ方法と課題
FreeCAD OpenFOAM Workbenchセットアップ方法と課題FreeCAD OpenFOAM Workbenchセットアップ方法と課題
FreeCAD OpenFOAM Workbenchセットアップ方法と課題murai1972
 
Dexcs2021 of install2
Dexcs2021 of install2Dexcs2021 of install2
Dexcs2021 of install2Etsuji Nomura
 

What's hot (20)

24Jun17 MBD-Case - Room and MBD and I Ver3
24Jun17 MBD-Case - Room and MBD and I Ver324Jun17 MBD-Case - Room and MBD and I Ver3
24Jun17 MBD-Case - Room and MBD and I Ver3
 
20210921 Qlik Tips SCDとIntervalmatch
20210921 Qlik Tips SCDとIntervalmatch20210921 Qlik Tips SCDとIntervalmatch
20210921 Qlik Tips SCDとIntervalmatch
 
HoloLens 2 開発入門 (公式チュートリアルの紹介)
HoloLens 2 開発入門 (公式チュートリアルの紹介)HoloLens 2 開発入門 (公式チュートリアルの紹介)
HoloLens 2 開発入門 (公式チュートリアルの紹介)
 
SysPhSの紹介
SysPhSの紹介SysPhSの紹介
SysPhSの紹介
 
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
ドキュメントを作りたくなってしまう魔法のツール「Sphinx」
 
Free cad 0.19.2 and cfdof (Japanese Ver.)
Free cad 0.19.2 and cfdof (Japanese Ver.)Free cad 0.19.2 and cfdof (Japanese Ver.)
Free cad 0.19.2 and cfdof (Japanese Ver.)
 
TECHTALK 20230214 ビジネスユーザー向け機械学習入門 第2回~機械学習のための学習データの前処理
TECHTALK 20230214 ビジネスユーザー向け機械学習入門 第2回~機械学習のための学習データの前処理TECHTALK 20230214 ビジネスユーザー向け機械学習入門 第2回~機械学習のための学習データの前処理
TECHTALK 20230214 ビジネスユーザー向け機械学習入門 第2回~機械学習のための学習データの前処理
 
オープンソースの CFD ソフトウェア SU2 のチュートリアルをやってみた
オープンソースの CFD ソフトウェア SU2 のチュートリアルをやってみたオープンソースの CFD ソフトウェア SU2 のチュートリアルをやってみた
オープンソースの CFD ソフトウェア SU2 のチュートリアルをやってみた
 
HoloLensでUWPの機能を活用する時のtips
HoloLensでUWPの機能を活用する時のtipsHoloLensでUWPの機能を活用する時のtips
HoloLensでUWPの機能を活用する時のtips
 
Seguridad en cisco firewall by ro ckberto
Seguridad en cisco   firewall by ro ckbertoSeguridad en cisco   firewall by ro ckberto
Seguridad en cisco firewall by ro ckberto
 
Spiderストレージエンジンのご紹介
Spiderストレージエンジンのご紹介Spiderストレージエンジンのご紹介
Spiderストレージエンジンのご紹介
 
123DEXCS2022.pdf
123DEXCS2022.pdf123DEXCS2022.pdf
123DEXCS2022.pdf
 
howtoCADandMeshing2022.pdf
howtoCADandMeshing2022.pdfhowtoCADandMeshing2022.pdf
howtoCADandMeshing2022.pdf
 
FMI1.0 FMI for Co-Simulation について
FMI1.0 FMI for Co-Simulation についてFMI1.0 FMI for Co-Simulation について
FMI1.0 FMI for Co-Simulation について
 
Sql server パーティション 概要
Sql server パーティション 概要Sql server パーティション 概要
Sql server パーティション 概要
 
Rclex: ElixirでROS!!
Rclex: ElixirでROS!!Rclex: ElixirでROS!!
Rclex: ElixirでROS!!
 
SpotBugs(FindBugs)による 大規模ERPのコード品質改善
SpotBugs(FindBugs)による 大規模ERPのコード品質改善SpotBugs(FindBugs)による 大規模ERPのコード品質改善
SpotBugs(FindBugs)による 大規模ERPのコード品質改善
 
OCHaCafe #4 Hyperledger Fabric アプリケーション設計入門ガイドでしゃべった内容+おまけ資料
OCHaCafe #4 Hyperledger Fabric アプリケーション設計入門ガイドでしゃべった内容+おまけ資料OCHaCafe #4 Hyperledger Fabric アプリケーション設計入門ガイドでしゃべった内容+おまけ資料
OCHaCafe #4 Hyperledger Fabric アプリケーション設計入門ガイドでしゃべった内容+おまけ資料
 
FreeCAD OpenFOAM Workbenchセットアップ方法と課題
FreeCAD OpenFOAM Workbenchセットアップ方法と課題FreeCAD OpenFOAM Workbenchセットアップ方法と課題
FreeCAD OpenFOAM Workbenchセットアップ方法と課題
 
Dexcs2021 of install2
Dexcs2021 of install2Dexcs2021 of install2
Dexcs2021 of install2
 

More from Shigenori Ueda

OpenModelica tutorials_6 Tips(超初級チュートリアル6.便利技 CSVファイルの出力)
OpenModelica tutorials_6 Tips(超初級チュートリアル6.便利技 CSVファイルの出力)OpenModelica tutorials_6 Tips(超初級チュートリアル6.便利技 CSVファイルの出力)
OpenModelica tutorials_6 Tips(超初級チュートリアル6.便利技 CSVファイルの出力)Shigenori Ueda
 
CAE初心者サークル_2018年の振り返りと2019年の目標
CAE初心者サークル_2018年の振り返りと2019年の目標CAE初心者サークル_2018年の振り返りと2019年の目標
CAE初心者サークル_2018年の振り返りと2019年の目標Shigenori Ueda
 
Consideration of cae learner community
Consideration of cae learner communityConsideration of cae learner community
Consideration of cae learner communityShigenori Ueda
 
Redmineによる試験勉強管理の結末
Redmineによる試験勉強管理の結末Redmineによる試験勉強管理の結末
Redmineによる試験勉強管理の結末Shigenori Ueda
 
計算力学技術者試験 Redmineによる試験勉強管理
計算力学技術者試験 Redmineによる試験勉強管理計算力学技術者試験 Redmineによる試験勉強管理
計算力学技術者試験 Redmineによる試験勉強管理Shigenori Ueda
 
計算力学技術者試験勉強会の告知
計算力学技術者試験勉強会の告知計算力学技術者試験勉強会の告知
計算力学技術者試験勉強会の告知Shigenori Ueda
 
170415 MBD-Case_Room and MBD and I Ver2
170415 MBD-Case_Room and MBD and I Ver2170415 MBD-Case_Room and MBD and I Ver2
170415 MBD-Case_Room and MBD and I Ver2Shigenori Ueda
 
170311 MBD-Case_Room and MBD and I Ver1
170311 MBD-Case_Room and MBD and I Ver1 170311 MBD-Case_Room and MBD and I Ver1
170311 MBD-Case_Room and MBD and I Ver1 Shigenori Ueda
 
161126 Introduction of the investigative action about Examples of Modelica St...
161126 Introduction of the investigative action about Examples of Modelica St...161126 Introduction of the investigative action about Examples of Modelica St...
161126 Introduction of the investigative action about Examples of Modelica St...Shigenori Ueda
 
161029 open cae-studygroup_openmodelicaexample_onemass2
161029 open cae-studygroup_openmodelicaexample_onemass2161029 open cae-studygroup_openmodelicaexample_onemass2
161029 open cae-studygroup_openmodelicaexample_onemass2Shigenori Ueda
 
160917 オープンcae勉強会 open_modelicaexample_onemass
160917 オープンcae勉強会 open_modelicaexample_onemass160917 オープンcae勉強会 open_modelicaexample_onemass
160917 オープンcae勉強会 open_modelicaexample_onemassShigenori Ueda
 

More from Shigenori Ueda (11)

OpenModelica tutorials_6 Tips(超初級チュートリアル6.便利技 CSVファイルの出力)
OpenModelica tutorials_6 Tips(超初級チュートリアル6.便利技 CSVファイルの出力)OpenModelica tutorials_6 Tips(超初級チュートリアル6.便利技 CSVファイルの出力)
OpenModelica tutorials_6 Tips(超初級チュートリアル6.便利技 CSVファイルの出力)
 
CAE初心者サークル_2018年の振り返りと2019年の目標
CAE初心者サークル_2018年の振り返りと2019年の目標CAE初心者サークル_2018年の振り返りと2019年の目標
CAE初心者サークル_2018年の振り返りと2019年の目標
 
Consideration of cae learner community
Consideration of cae learner communityConsideration of cae learner community
Consideration of cae learner community
 
Redmineによる試験勉強管理の結末
Redmineによる試験勉強管理の結末Redmineによる試験勉強管理の結末
Redmineによる試験勉強管理の結末
 
計算力学技術者試験 Redmineによる試験勉強管理
計算力学技術者試験 Redmineによる試験勉強管理計算力学技術者試験 Redmineによる試験勉強管理
計算力学技術者試験 Redmineによる試験勉強管理
 
計算力学技術者試験勉強会の告知
計算力学技術者試験勉強会の告知計算力学技術者試験勉強会の告知
計算力学技術者試験勉強会の告知
 
170415 MBD-Case_Room and MBD and I Ver2
170415 MBD-Case_Room and MBD and I Ver2170415 MBD-Case_Room and MBD and I Ver2
170415 MBD-Case_Room and MBD and I Ver2
 
170311 MBD-Case_Room and MBD and I Ver1
170311 MBD-Case_Room and MBD and I Ver1 170311 MBD-Case_Room and MBD and I Ver1
170311 MBD-Case_Room and MBD and I Ver1
 
161126 Introduction of the investigative action about Examples of Modelica St...
161126 Introduction of the investigative action about Examples of Modelica St...161126 Introduction of the investigative action about Examples of Modelica St...
161126 Introduction of the investigative action about Examples of Modelica St...
 
161029 open cae-studygroup_openmodelicaexample_onemass2
161029 open cae-studygroup_openmodelicaexample_onemass2161029 open cae-studygroup_openmodelicaexample_onemass2
161029 open cae-studygroup_openmodelicaexample_onemass2
 
160917 オープンcae勉強会 open_modelicaexample_onemass
160917 オープンcae勉強会 open_modelicaexample_onemass160917 オープンcae勉強会 open_modelicaexample_onemass
160917 オープンcae勉強会 open_modelicaexample_onemass
 

OpenModelica tutorials_5 Make Original Models(超初級チュートリアル5.オリジナルモデルの作成)