OpenModelicaミニ講習会
Motorサンプル
オープンCAE学会
西 剛伺
ミニ講習会の内容
モータのサンプル(Modelica.Thermal.HeatTransfer.Examples.Motor)を用いて,
OpenModelicaの使用方法基礎を学ぶ.
1.Motorサンプルを使ってみる
2.Modelicaのコンポーネントについて
3.自分でMotorサンプルを作ってみる
2016/2/20 OpenModelicaミニ講習会 - オープンCAE勉強会@関東(流体など) 2
ミニ講習会参加のための事前準備
OpenModelicaをインストールしたPCを持参してください.
(PCなしでも参加可能ですが,内容の大半がハンズオンであるため.)
OpenModelicaは,以下のページからダウンロード可能です.
https://www.openmodelica.org/
Downloadのリンクからインストール
する環境(OS)を選ぶと,ダウンロー
ドページに移動します.
※ ミニ講習会の内容は,Windows
版OpenModelica v1.9.3で動作確認
しています.
32016/2/20 OpenModelicaミニ講習会 - オープンCAE勉強会@関東(流体など)
4
サンプルの内容を調べるには
ドキュメントビューアイ
コンをクリックすると,
ドキュメントブラウザ
に説明が表示される.
本講習会ではHeatTransfer
のモータサンプルを題材に
しますが,使い方に慣れた
ら,さまざまなサンプルを試
してみてください.
2016/2/20 OpenModelicaミニ講習会 - オープンCAE勉強会@関東(流体など)
Motorサンプルを使ってみる
Motorサンプルを開く
1.OpenModelica Connection Editor(OMEdit)を起動する.
2.ウィンドウ内左側にあるライブラリブラウザのModelica ->
Thermal -> Heat Transfer -> Examples -> Motorをダブルクリッ
クすると,以下のサンプルが開く.
62016/2/20 OpenModelicaミニ講習会 - オープンCAE勉強会@関東(流体など)
Motorサンプルの構成
Gc = hA
Tw
TA
熱伝達 Q = Gc(Tw-TA)
発熱
熱コンダクタンス
Q = G・ΔT
7
銅損 鉄損
巻線の
熱容量
鉄心の
熱容量
熱伝導
2016/2/20 OpenModelicaミニ講習会 - オープンCAE勉強会@関東(流体など)
Motorサンプルを使ってみる
3.トップメニューのシミュレーション -> シミュレートを選択すると,以下のようなウィン
ドウが開いてコンパイルが開始される.
4 . コ ン パ イ ル が 正 常 に 終 了 す る と , コ ン パ イ ル が 100% に 到 達 し ,
Simulation process finished successfully.というメッセージが表示される.
8
使用するPCにも依りますが,コンパイルとシミュレーションの完了には数分か
かります.その間に,少しModelicaのコンポーネントについて学びましょう!
2016/2/20 OpenModelicaミニ講習会 - オープンCAE勉強会@関東(流体など)
Modelicaのコンポーネントについて
Motorサンプルの構成
Gc = hA
Tw
TA
熱伝達 Q = Gc(Tw-TA)
発熱
熱コンダクタンス
Q = G・ΔT
10
銅損 鉄損
巻線の
熱容量
鉄心の
熱容量
熱伝導
2016/2/20 OpenModelicaミニ講習会 - オープンCAE勉強会@関東(流体など)
Modelica.Thermal.HeatTransferの構成
Modelica.Thermal.HeatTransferはサンプル(Examples)の他,以下のコンポーネント
が含まれる.主に使用するのはComponents(伝熱経路),Sensors(モニタ),
Sources(境界条件).
112016/2/20 OpenModelicaミニ講習会 - オープンCAE勉強会@関東(流体など)
Modelica.Thermal.HeatTransfer
- Components & Sources
伝熱経路を構築するにはComponentsとSourcesが必要.
熱抵抗 [K/W]
熱容量 [J/K]
熱コンダクタンス [W/K]
伝熱量 [W]を入力として受ける
熱伝達(熱コンダクタンス入力=hA [W/K])
熱伝達(熱抵抗入力=1/hA [k/W])
熱放射(要確認)
複数の伝熱経路を接続
固定伝熱量 [W]
固定温度 [K]
温度 [K]を入力として受ける
122016/2/20 OpenModelicaミニ講習会 - オープンCAE勉強会@関東(流体など)
Modelica.Thermal.HeatTransfer
- Sensors
Sensorsは温度もしくは伝熱量を確認するのに利用する.
条件付き固定伝熱量センサ [W] ※
温度センサ [K]
温度差センサ [K]
伝熱量センサ [W]
※ useFixedTemperatureがfalseのとき,伝熱量センサと同じ.
useFixedTemperatureがtrueのとき, 伝熱量(Q_flow)を
ゼロとし,センサ温度を293.15 [K]にセット.
132016/2/20 OpenModelicaミニ講習会 - オープンCAE勉強会@関東(流体など)
Modelica.Thermal.HeatTransfer
- 温度表示
Sources,Sensorsに含まれるブロックでは,温度単位はK(ケルビン)なので,それ以
外の温度単位を使用したい場合には,Celsius等にある同じアイコンのコンポーネン
トを使用する.
degC(摂氏)表示
degF(華氏)表示
degRk(蘭氏)表示
K(ケルビン)表示
K(ケルビン)表示
142016/2/20 OpenModelicaミニ講習会 - オープンCAE勉強会@関東(流体など)
Motorサンプルの結果を確認する
5.ウィンドウ内右側の変数ブラウザでTcore(鉄心の温度)とTwinding(巻線の温度)
のチェックボックスをオンにすると,グラフにこれらの温度がプロットされる.
152016/2/20 OpenModelicaミニ講習会 - オープンCAE勉強会@関東(流体など)
Modelica.Blocks.Sources
- 定数とコンビタイムテーブル
Blocksには,さまざまな入出力コンポーネントがある.
定数
コンビ
タイム
テーブル
162016/2/20 OpenModelicaミニ講習会 - オープンCAE勉強会@関東(流体など)
Motorサンプルの構成
定数
17
コンビタイムテーブル
2016/2/20 OpenModelicaミニ講習会 - オープンCAE勉強会@関東(流体など)
鉄損と銅損を確認する
18
6.ウィンドウ内右側の変数ブラウザで, Tcore(鉄心の温度)とTwinding のチェック
ボックスをオフにし,coreLossesのQ_flow(鉄損)とwindingLossesのQ_flow(銅損)
のチェックボックスをオンにすると,グラフにこれらの値がプロットされる.
鉄損は一定値
銅損は600秒を1周期として,0〜
360秒 は100W,360〜600 秒 は
1000Wと変動している.
2016/2/20 OpenModelicaミニ講習会 - オープンCAE勉強会@関東(流体など)
コンビタイムテーブルのパラメータ
19
コンビタイムテーブル
7.ウィンドウ内右下にある「モデリング」タブを
選択すると,Motorサンプルが再表示され
る.
8.Motorサンプルのコンビテーブルを右クリッ
クし,右クリックメニューのパラメータを選択
すると,「コンポーネントパラメータ」が表示
される.
2016/2/20 OpenModelicaミニ講習会 - オープンCAE勉強会@関東(流体など)
コンビタイムテーブルの設定
20
tableに設定値が入って
いる.改行して見やすく
すると・・・
[0, 100, 500;
360, 100, 500;
360, 1000, 500;
600, 1000, 500]
つまり,右のようなテーブルになる.
ExtrapolationでPeriodicが選択され
ているので,これを周期的に繰り返す.
2016/2/20 OpenModelicaミニ講習会 - オープンCAE勉強会@関東(流体など)
シミュレーション時間等の設定は?
21
9.ウィンドウ内左側のライブラリブラウザで,
Motorサンプルを右クリックし,右クリックメ
ニューの「シミュレーションのセットアップ」
を選択すると,「シミュレーションのセット
アップ」が表示される.
2016/2/20 OpenModelicaミニ講習会 - オープンCAE勉強会@関東(流体など)
TemperatureSensorの記述
222016/2/20 OpenModelicaミニ講習会 - オープンCAE勉強会@関東(流体など)
自分でMotorサンプルを作ってみる
Motorサンプルの構成
242016/2/20 OpenModelicaミニ講習会 - オープンCAE勉強会@関東(流体など)
Modelicaクラスを新規作成
25
1.ファイル -> Modelicaクラス
新規作成を選択すると,
「新規Modelicaクラス作成」
が表示される.
2.名前を付け,[OK]ボタンを
クリックすると,ライブラリブ
ラウザにクラスが表示され
る(以下のキャプチャ画面
では,myModelという名前
にしている).
2016/2/20 OpenModelicaミニ講習会 - オープンCAE勉強会@関東(流体など)
「熱伝導」部分の作成
26
最初に「熱伝導」部分を作りま
す.
3.使用するコンポーネントをド
ラッグアンドドロップすると,
「モデリング」タブ内に配置
できる.下の黒枠内のコン
ポーネントを配置しましょう.
ドラッグアンドドロップ
2016/2/20 OpenModelicaミニ講習会 - オープンCAE勉強会@関東(流体など)
「熱伝導」部分の作成
27
4.向きを変えたいコンポーネントがある場合には,
コンポーネント上で右クリック,右クリックメニュー
の回転や反転を選択することで,好みの向きにコ
ンポーネントの表示を変更する.
5.コンポーネント同士を接続する.接続したい一方の
コンポーネントの■もしくは□をドラッグし,別の場
所でドロップした後,もう一方のコンポーネ
ントの■もしくは□の上でクリックすること
でコンポーネント同士をコネクタでつなぐ.
※ 特定点を通るようにコネクタを配線したい場
合には,もう一方のコンポーネントにつなぐ前
に通過させたい場所でクリックする.
2016/2/20 OpenModelicaミニ講習会 - オープンCAE勉強会@関東(流体など)
「熱伝導」部分の作成
28
6.各コンポーネントに値を設定する.
コンポーネントをダブルクリックする
と,パラメータウィンドウが開く.
以下のように,コンポーネントに値
を設定しましょう.
heatCapacitor1 : C = 2500 [J/K]
heatCapacitor2 : C = 25000 [J/K]
thermalConductor1 : G = 10 [W/K]
2016/2/20 OpenModelicaミニ講習会 - オープンCAE勉強会@関東(流体など)
29
7.各コンポーネントに名前を付ける.
コンポーネントを右クリックし,右クリックメ
ニューで属性を選択すると,属性ウィンド
ウが開く.
以下のコンポーネントの名前をそれぞれ
変更しましょう.
heatCapacitor1 → winding
heatCapacitor2 → core
thermalConductor1 → winding2core
temperatureSensor1 → Twinding
temperatureSensor2 → Tcore
「熱伝導」部分の作成
2016/2/20 OpenModelicaミニ講習会 - オープンCAE勉強会@関東(流体など)
「熱伝導」部分の作成 ー モデルのチェック
30
8.モデルに誤りがないかチェックする.
トップメニューのシミュレーション -> モデルチェックを
クリックするか,右図のモデルチェックアイコンをクリッ
クして,モデルチェックを実行しましょう.
(ある程度の規模のモデルを作成する際,入力ミスがあると
どこがエラーの原因か分かりにくくなる.こまめにモデル
チェックを実行することで早めに入力ミスを修正するようにし
ましょう.)
エラーがなければ,以下のようなメッセージが表示される.
2016/2/20 OpenModelicaミニ講習会 - オープンCAE勉強会@関東(流体など)
「熱伝達」部分の作成
31
次に、「熱伝達」部分を作ります.
9 . Convection コ ン ポ ー ネ ン ト を 配 置 し ,
winding2coreと接続する(※1).続いて,
FixedTemperatureコンポーネントを配置し,
先 に 配置済 み の convection1 と 接 続する
(※1).
※1 必要に応じて、配置したコンポーネントを回転もしくは反転させ、見やすくしておきましょう。
※2 分からなくなったら,「熱伝導」部分の作成の手順を確認しましょう。
10.(Blocks.Sourcesの下にある)Constantコンポーネントを配置
し,先に配置済みのconvection1と接続する(▼と▽をコネクタ
で接続する)(※2).
11.fixedTemperature1とconstに以下の値を設定する.
fixedTemperature1 : T = Tamb
const : k = 25
2016/2/20 OpenModelicaミニ講習会 - オープンCAE勉強会@関東(流体など)
「熱伝達」部分の作成
32
12.以下のコンポーネントの名前をそれぞれ変更する.
convection1 → convection
fixedTemperature1 → environment
const → convectionConstant
ここまでで,以下のようになっているはずです.
2016/2/20 OpenModelicaミニ講習会 - オープンCAE勉強会@関東(流体など)
「熱伝達」部分の作成 - モデルのチェック
33
13.モデルに誤りがないかモデルチェックをかけてチェックする.
すると,メッセージブラウザに以下のようなエラーが表示されるはずです.
※ 分からなくなったら,「熱伝導」部分の作成の手順を確認しましょう。
エラーの記述Variable Tamb not
found in scope mvModel.による
と,Tambが定義されていないよう
である.
environment コ ン ポ ー ネ ン ト に
Tambを設定したにもかかわらず,
Tambを定義していませんでした.
Modelica で は , 定 義 済 み の 型
(SIunits)が用意されており,それ
を利用することで簡単に変数を利
用できる.
2016/2/20 OpenModelicaミニ講習会 - オープンCAE勉強会@関東(流体など)
変数の宣言
14.Text Viewアイコンをクリックすると,Modelicaのプログラムが表示さ
れる.
15.プログラムの冒頭”model”の次の行に,以下の行を挿入する.
16.再度モデルチェックを実行する.
今度はエラーが出ないはずです.
parameter Modelica.SIunits.Temperature Tamb(displayUnit = "degC") =
293.15 "Ambient temperature";
※ 分からなくなったら,「熱伝導」部分の作成の手順を確認しましょう.
342016/2/20 OpenModelicaミニ講習会 - オープンCAE勉強会@関東(流体など)
「発熱」部分の作成
35
最後に,「発熱」部分を作ります.
17.ダイヤグラムビューアイコンをクリックして,再びコンポーネント
配置画面に戻る.
18.(Blocks.Sourcesの下にある)CombiTimeTableコンポーネント
を配置する.
※ 分からなくなったら,「熱伝導」部分の作成の手順を確認しましょう.
2016/2/20 OpenModelicaミニ講習会 - オープンCAE勉強会@関東(流体など)
「発熱」部分の作成
36
19.combiTable1コンポーネントに値を設定する.
コンポーネントをダブルクリックすると,パラメータウィンドウが開く.パラメー
タウィンドウが開いたら,以下の2つの欄に値を入力する.
table [0, 100, 500; 360, 100, 500; 360, 1000, 500; 600, 1000, 500]
extrapolation Modelica.Blocks.Types.Extrapolation.Periodic
(periodicを選択しても良い.)
2016/2/20 OpenModelicaミニ講習会 - オープンCAE勉強会@関東(流体など)
「発熱」部分の作成
37
20.PrescribedHeatFlowコンポーネントを2つ配置する.
(winding側に置くものをprescribedHeatFlow1 ,core側に置く
ものをprescribedHeatFlow2とする.)
21.CombiTimeTableコンポーネントをprescribedHeatFlow1と
prescribedHeatFlow2に接続する(▽と▼をコネクタで接続します)(※1).この
とき,以下のような配列の接続ウィンドウが開くので,prescribedHeatFlow1の
場合には1を,prescribedHeatFlow2の場合には2を入力し、OKボタンを押す.
22.prescribedHeatFlow1をwindingに,2つ目prescribedHeatFlow2をcoreに接
続する(□と■をコネクタで接続する)(※1).
※1 必要に応じて,配置したコンポーネントを回転もしくは反転させ,見やすくしておきましょう.
※2 分からなくなったら,「熱伝導」部分の作成の手順を確認しましょう.
2016/2/20 OpenModelicaミニ講習会 - オープンCAE勉強会@関東(流体など)
「発熱」部分の作成
38
23.以下のコンポーネントの名前をそれぞれ変更する.
ここまでで,以下のようになって
いるはずです.
24.再度モデルチェックを実行
し,エラーが出ないないこと
を確認する.
combiTimeTable1 → lossTable
prescribedHeatFlow1 → windingLosses
prescribedHeatFlow2 → coreLosses
2016/2/20 OpenModelicaミニ講習会 - オープンCAE勉強会@関東(流体など)
シミュレーション時間の設定と実行
39
25.トップメニューのシミュレーション -> シミュ
レーションのセットアップをクリックするか,
右図のシミュレーションのセットアップアイコ
ンをクリックすると,「シミュレーションのセッ
トアップ」が表示される.
26.終了時刻を7200に変更したら,シ
ミュレートボタンを押す.
27.グラフをプロットし,Motorサンプル
と同じ結果になっているか確認する.
以上で,ミニ講習会は終了です.
2016/2/20 OpenModelicaミニ講習会 - オープンCAE勉強会@関東(流体など)

OpenModelicaミニ講習会