SlideShare a Scribd company logo
1 of 10
OpenModelica超初級チュートリアル
2.コーディング
Copyright (C) 2017 Shigenori Ueda
Released under the MIT license
https://opensource.org/licenses/mit-license.php
注意事項
・ 本チュートリアルは「OpenModelica超初級チュートリアル 1.
解析モデルの作成と実行」の内容が理解できていることを前提と
しております
・ OpenModelica1.11.0 (64bit – windows版)を利用して
本チュートリアルは作成されています
コーディングの始め方
Modelica®言語によるコーディングで最初に学ぶ一般的な対象は、
以下の微分方程式を解くモデルを作る事です。
このモデルはModelica言語における”HelloWorld”と呼ばれています。
ここで、tはtime(時間)です。
𝑑𝑥
𝑑𝑡
= 𝑎𝑥
𝑥 = 1 (𝑎𝑡 𝑡 = 0)
𝑎 = −1
解析的に解くと?
𝑑𝑥
𝑑𝑡
= 𝑎𝑥
𝑑𝑥
𝑥
= 𝑎 × 𝑑𝑡
𝑑𝑥
𝑥
= 𝑎 × 𝑑𝑡
𝑙𝑜𝑔 𝑥 = 𝑎𝑡 + 𝐶
𝑥 = 𝑒 𝑎𝑡+𝑐
初期条件と与式より
𝐶 = 0
よって
𝑥 = 𝑒−𝑡
定数
初期条件
モデルを作成する
OpenModelica超初級チュートリアル1で作成したように、
名前を”HelloWorld”にして
モデルを作成してください。
ダイアグラムビューが表示されます。
クラスのコード表示
ダイヤグラムビュー左上にある
「テキストビュー」アイコンを
クリックしてください。
コードが表示されます。
以下を確認してください。
1行目に「クラスの種類 クラス名」で宣言されています
2行目にクラスの終わりを表す「end クラス名;」コマンドが
記述されています。
コードの概要
変数を宣言したり、継承関係を記述します。
この範囲を便宜的に「宣言セクション」と呼びます。
Modelica言語のコードは大きく以下の二つのセクションに分かれます。
model Test
equation
end Test;
“equation”以下に方程式やモデル間の接続関係を
記述します。
ここで記述された方程式は計算実行時に
連立方程式として認識され自動的に解が得られます。
これを非因果的(acausal)モデリングと呼びます。
この範囲を便宜的に「Equation セクション」と呼びま
す。
parameter ・・・
宣言セクション
equationセクション
der(x)=a*x;
クラスの種類 クラス名 の順に記述します。
Real ・・・
コードの記述
以下のように記入してください。
パラメーター変数aと変数xが宣言されています。
「Real」は実数型
「parameter」は未知数ではない与えられる値
という意味です
方程式
𝑑𝑥
𝑑𝑡
= a𝑥を解く、というコマンドです。
一般的な言語では
「左辺に右辺を代入する」という意味ですが
Modelica言語では
「左辺と右辺が等しい」という意味になります。
左辺と右辺が等しくなるように
未知数xは自動的に求まります。
また、der()は時間微分オペレータで
()内の変数の一階の時間微分項を表しています。
モデルのチェック
モデルのエラーや方程式が解くことが可能かどうかを以下の「モデルチェック」によって
確認できます
「Check of “モデル名” completed successfully.」と表示されたら文法上のエラーはありません。
「Class “モデル名” has 1 equation(s) and 1 variable(s).」の表示の中のequationとvariableの数が
等しいことを確認してください。等しくなければ方程式を解くことができずエラーが発生します。
Trivial equationは自明な式という意味です。
解析実行 & 結果表示
以下の「シミュレート」をクリックし、解析を実行してください
変数xにチェックを入れて
結果を表示してください
𝑥 = 𝑒−𝑡
であることを
確認してください
また、式を変形し
様々な式を解くことが
できることを確認して
ください
Modelica言語の勉強 ー OpenModelica Notebook
Modelica言語の勉強には、OpenModelica Notebook(OM Notebook)が便利です。
OM NotebookはModelica言語の学習のために作られたPC用学習教材です。
「Getting Started Using OMNotebook」をよく読み
「Exercise 1」からトライしてみましょう。
本チュートリアルの「HelloWorld」もFirst Basic Examplesとして
紹介されています。

More Related Content

What's hot

OpenModelica tutorials_7-5 Stream variable(超初級チュートリアル7-5.番外編 Stream変数)
OpenModelica tutorials_7-5 Stream variable(超初級チュートリアル7-5.番外編 Stream変数)OpenModelica tutorials_7-5 Stream variable(超初級チュートリアル7-5.番外編 Stream変数)
OpenModelica tutorials_7-5 Stream variable(超初級チュートリアル7-5.番外編 Stream変数)Shigenori Ueda
 
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
 
続・モジュール / Introduction to C++ modules (part 2)
続・モジュール / Introduction to C++ modules (part 2)続・モジュール / Introduction to C++ modules (part 2)
続・モジュール / Introduction to C++ modules (part 2)TetsuroMatsumura
 
C++20 モジュールの概要 / Introduction to C++ modules (part 1)
C++20 モジュールの概要 / Introduction to C++ modules (part 1)C++20 モジュールの概要 / Introduction to C++ modules (part 1)
C++20 モジュールの概要 / Introduction to C++ modules (part 1)TetsuroMatsumura
 
Tortoise gitで日本語ファイル名を使うときのgitの選択について
Tortoise gitで日本語ファイル名を使うときのgitの選択についてTortoise gitで日本語ファイル名を使うときのgitの選択について
Tortoise gitで日本語ファイル名を使うときのgitの選択についてKiyoshi SATOH
 
Mixed Reality Toolkit 3 Recap
Mixed Reality Toolkit 3 RecapMixed Reality Toolkit 3 Recap
Mixed Reality Toolkit 3 RecapTakahiro Miyaura
 
パネルディスカッション:WebXRメタバースの挑戦 in CEDEC2022 ~Mozilla Hubs活用事例と課題共有~
パネルディスカッション:WebXRメタバースの挑戦 in CEDEC2022 ~Mozilla Hubs活用事例と課題共有~パネルディスカッション:WebXRメタバースの挑戦 in CEDEC2022 ~Mozilla Hubs活用事例と課題共有~
パネルディスカッション:WebXRメタバースの挑戦 in CEDEC2022 ~Mozilla Hubs活用事例と課題共有~GREE VR Studio Lab
 
MRTK V2.3 Spatial Awareness
MRTK V2.3 Spatial AwarenessMRTK V2.3 Spatial Awareness
MRTK V2.3 Spatial AwarenessYuichi Ishii
 
2015 03 26 社内勉強会_オープンソースソフトウェアライセンスについて
2015 03 26 社内勉強会_オープンソースソフトウェアライセンスについて2015 03 26 社内勉強会_オープンソースソフトウェアライセンスについて
2015 03 26 社内勉強会_オープンソースソフトウェアライセンスについてNatsuki Yamanaka
 
オープンソースで構築するWebメタバース ~Mozilla Hubsで学ぶUX開発から運用コスト最小化まで #CEDEC2022
オープンソースで構築するWebメタバース ~Mozilla Hubsで学ぶUX開発から運用コスト最小化まで #CEDEC2022オープンソースで構築するWebメタバース ~Mozilla Hubsで学ぶUX開発から運用コスト最小化まで #CEDEC2022
オープンソースで構築するWebメタバース ~Mozilla Hubsで学ぶUX開発から運用コスト最小化まで #CEDEC2022GREE VR Studio Lab
 
ゲームエンジンとMVC
ゲームエンジンとMVCゲームエンジンとMVC
ゲームエンジンとMVCAimingStudy
 
PlasticSCMの活用テクニックをハンズオンで一緒に学ぼう!
PlasticSCMの活用テクニックをハンズオンで一緒に学ぼう!PlasticSCMの活用テクニックをハンズオンで一緒に学ぼう!
PlasticSCMの活用テクニックをハンズオンで一緒に学ぼう!Unity Technologies Japan K.K.
 
HoloLens 2を手に入れたらとりあえず試しておくべきアプリ
HoloLens 2を手に入れたらとりあえず試しておくべきアプリHoloLens 2を手に入れたらとりあえず試しておくべきアプリ
HoloLens 2を手に入れたらとりあえず試しておくべきアプリShingo Mori
 
オープンソースライセンスの基礎と実務
オープンソースライセンスの基礎と実務オープンソースライセンスの基礎と実務
オープンソースライセンスの基礎と実務Yutaka Kachi
 
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているやはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているKoichi Tanaka
 
OpenMDAOの最適化を試す(第23回オープンCAE勉強会@関西)
OpenMDAOの最適化を試す(第23回オープンCAE勉強会@関西)OpenMDAOの最適化を試す(第23回オープンCAE勉強会@関西)
OpenMDAOの最適化を試す(第23回オープンCAE勉強会@関西)TatsuyaKatayama
 
「PowerCMSクラウド」のご紹介
「PowerCMSクラウド」のご紹介「PowerCMSクラウド」のご紹介
「PowerCMSクラウド」のご紹介Naoaki Onozaki
 
久しぶりにMicrosoft Meshを使ってみた - 色々変わってたよ編 -
久しぶりにMicrosoft Meshを使ってみた - 色々変わってたよ編 -久しぶりにMicrosoft Meshを使ってみた - 色々変わってたよ編 -
久しぶりにMicrosoft Meshを使ってみた - 色々変わってたよ編 -Takahiro Miyaura
 
ワタシはSingletonがキライだ
ワタシはSingletonがキライだワタシはSingletonがキライだ
ワタシはSingletonがキライだTetsuya Kaneuchi
 

What's hot (20)

OpenModelica tutorials_7-5 Stream variable(超初級チュートリアル7-5.番外編 Stream変数)
OpenModelica tutorials_7-5 Stream variable(超初級チュートリアル7-5.番外編 Stream変数)OpenModelica tutorials_7-5 Stream variable(超初級チュートリアル7-5.番外編 Stream変数)
OpenModelica tutorials_7-5 Stream variable(超初級チュートリアル7-5.番外編 Stream変数)
 
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
 
続・モジュール / Introduction to C++ modules (part 2)
続・モジュール / Introduction to C++ modules (part 2)続・モジュール / Introduction to C++ modules (part 2)
続・モジュール / Introduction to C++ modules (part 2)
 
C++20 モジュールの概要 / Introduction to C++ modules (part 1)
C++20 モジュールの概要 / Introduction to C++ modules (part 1)C++20 モジュールの概要 / Introduction to C++ modules (part 1)
C++20 モジュールの概要 / Introduction to C++ modules (part 1)
 
Tortoise gitで日本語ファイル名を使うときのgitの選択について
Tortoise gitで日本語ファイル名を使うときのgitの選択についてTortoise gitで日本語ファイル名を使うときのgitの選択について
Tortoise gitで日本語ファイル名を使うときのgitの選択について
 
Mixed Reality Toolkit 3 Recap
Mixed Reality Toolkit 3 RecapMixed Reality Toolkit 3 Recap
Mixed Reality Toolkit 3 Recap
 
パネルディスカッション:WebXRメタバースの挑戦 in CEDEC2022 ~Mozilla Hubs活用事例と課題共有~
パネルディスカッション:WebXRメタバースの挑戦 in CEDEC2022 ~Mozilla Hubs活用事例と課題共有~パネルディスカッション:WebXRメタバースの挑戦 in CEDEC2022 ~Mozilla Hubs活用事例と課題共有~
パネルディスカッション:WebXRメタバースの挑戦 in CEDEC2022 ~Mozilla Hubs活用事例と課題共有~
 
MRTK V2.3 Spatial Awareness
MRTK V2.3 Spatial AwarenessMRTK V2.3 Spatial Awareness
MRTK V2.3 Spatial Awareness
 
2015 03 26 社内勉強会_オープンソースソフトウェアライセンスについて
2015 03 26 社内勉強会_オープンソースソフトウェアライセンスについて2015 03 26 社内勉強会_オープンソースソフトウェアライセンスについて
2015 03 26 社内勉強会_オープンソースソフトウェアライセンスについて
 
オープンソースで構築するWebメタバース ~Mozilla Hubsで学ぶUX開発から運用コスト最小化まで #CEDEC2022
オープンソースで構築するWebメタバース ~Mozilla Hubsで学ぶUX開発から運用コスト最小化まで #CEDEC2022オープンソースで構築するWebメタバース ~Mozilla Hubsで学ぶUX開発から運用コスト最小化まで #CEDEC2022
オープンソースで構築するWebメタバース ~Mozilla Hubsで学ぶUX開発から運用コスト最小化まで #CEDEC2022
 
ゲームエンジンとMVC
ゲームエンジンとMVCゲームエンジンとMVC
ゲームエンジンとMVC
 
PlasticSCMの活用テクニックをハンズオンで一緒に学ぼう!
PlasticSCMの活用テクニックをハンズオンで一緒に学ぼう!PlasticSCMの活用テクニックをハンズオンで一緒に学ぼう!
PlasticSCMの活用テクニックをハンズオンで一緒に学ぼう!
 
HoloLens 2を手に入れたらとりあえず試しておくべきアプリ
HoloLens 2を手に入れたらとりあえず試しておくべきアプリHoloLens 2を手に入れたらとりあえず試しておくべきアプリ
HoloLens 2を手に入れたらとりあえず試しておくべきアプリ
 
オープンソースライセンスの基礎と実務
オープンソースライセンスの基礎と実務オープンソースライセンスの基礎と実務
オープンソースライセンスの基礎と実務
 
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているやはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
 
OpenMDAOの最適化を試す(第23回オープンCAE勉強会@関西)
OpenMDAOの最適化を試す(第23回オープンCAE勉強会@関西)OpenMDAOの最適化を試す(第23回オープンCAE勉強会@関西)
OpenMDAOの最適化を試す(第23回オープンCAE勉強会@関西)
 
「PowerCMSクラウド」のご紹介
「PowerCMSクラウド」のご紹介「PowerCMSクラウド」のご紹介
「PowerCMSクラウド」のご紹介
 
久しぶりにMicrosoft Meshを使ってみた - 色々変わってたよ編 -
久しぶりにMicrosoft Meshを使ってみた - 色々変わってたよ編 -久しぶりにMicrosoft Meshを使ってみた - 色々変わってたよ編 -
久しぶりにMicrosoft Meshを使ってみた - 色々変わってたよ編 -
 
ワタシはSingletonがキライだ
ワタシはSingletonがキライだワタシはSingletonがキライだ
ワタシはSingletonがキライだ
 
今から始めるUbuntu入門_202307.pdf
今から始めるUbuntu入門_202307.pdf今から始めるUbuntu入門_202307.pdf
今から始めるUbuntu入門_202307.pdf
 

More from 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 (10)

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_2 coding (超初級チュートリアル 2.コーディング)