Wolfram Computation Meets Knowledge

テキストビューでのモデリング

Hello Worldモデル練習問題

最も基本的なModelicaモデルは,微分方程式である.この例では,微分方程式を実装してシミュレーションを行う.また,モデルをグラフィックスで表すアイコンの作成手順も詳細に述べる.

このチュートリアルに使用されているモデル
HelloWorld

Hello Worldモデル

コンピュータ言語における最初の例は,伝統的に文字列「Hello World」を表示する小さなプログラムである.System Modelerで使用されているModelica言語は方程式ベースの言語であり,文字列を表示することは,限られた用途である.よって,Hello Worldの例の代りに,Modelicaクラスで簡単な微分方程式を解いてみる.

モデルの作成

方程式の変数xは,時間と共に値が変化する動的変数(および状態変数の自然な選択)である.時間導関数はxの導関数で,Modelicaではder(x)と書く.すべてのModelicaクラスには,クラス宣言(blockmodelpackage等)が含まれる.この例では,modelとしてクラスを宣言する.

まずModelicaパッケージの階層の最上位レベルに,新しいモデルを作成することから始める.つまり,モデルはパッケージ内部には置けない.「ファイル」 「新規クラス」を選択する.

2.gif

「ファイル」メニューから「新規クラス」を選択する

新規クラスダイアログボックスが開く.ここでは,モデルの名前とその説明を指定する.モデル名を「HelloWorld」,説明を「A differential equation」とする.アイコンをあとで作りたい場合は,アイコンのセクションのチェックを外す.アイコンセクションがチェックしてあると,新規クラスに対して定義済みアイコンからアイコンを選ぶことができる.

3.gif

新しいモデルの名前と説明を指定する

「OK」ボタンをクリックすると,モデルが作られ,クラスブラウザに表示される.同時に,モデルはクラスウィンドウにも開く.ツールバーの中の「Modelicaテキストビュー」ボタンをクリックすると,クラスウィンドウのModelicaテキストビューに切り替わる.

4.gif

Model Centerのツールバーの「Modelicaテキストビュー」ボタン

空のモデルのテキスト表現は以下のようなものである.

model HelloWorld "A differential equation"
»;
end HelloWorld;

2行目のシンボル»は,モデルについての隠されたグラフィカル情報で,クラスウィンドウのいずれかのグラフィカルビューでモデルに変更が加えられるたびに自動的に更新される.ダイアログボックスに入力した説明はモデルに加えられている.あとは変数と方程式を加えるだけである.これをModelicaテキストビューで直接モデルの定義を編集して行う.

model HelloWorld "A differential equation"
Real x(start = 1);
equation
der(x) = -x;
»;
end HelloWorld;

変数を宣言するときに,そのstart属性に値1を指定することで初期値も設定する.

これでHelloWorldモデルの準備ができた.モデルのシミュレーションを行う前に,ツールバーの「クラスの検証」ボタンをクリックしてモデルが正しいかどうかを検証する.

5.gif

Model Centerのツールバーの「クラスの検証」ボタン

クラスウィンドウの下にあるメッセージビューでレポートが生成される.初期化の問題が劣決定であることについての通知があるのみで,HelloWorldの検証は成功した.初期化の問題について詳しくは Removing Underdetermined Initialization(劣決定初期化の削除)を参照のこと.

6.gif

Model Centerのメッセージビュー

モデルのシミュレーション

モデルのシミュレーションを行うためには,Model Centerのクラスのシミュレーションの実行」ボタンをクリックする.

7.gif

ツールバーのクラスのシミュレーションの実行ボタン

モデルにエクスペリメント情報が見付からなかったことを示す警告が現れる.現段階ではデフォルト設定でよいとして,ダイアログの「シミュレーション」ボタンをクリックする.

Simulation Centerが起動し,HelloWorldモデルが自動的に実行可能に変換される.Simulation CenterのエクスペリメントブラウザHelloWorldのエクスペリメントが作成される.

8.gif

エクスペリメントブラウザにおけるHelloWorldのエクスペリメントの設定ビュー

エクスペリメントブラウザでは,シミュレーションの設定,パラメータの値,変数の初期値が指定できるが,今はそのままにしておくことにする.

プロットウィンドウで時間に対する変数xをプロットするためには,エクスペリメントブラウザプロットタブを開き,変数xの前のチェックボックスをクリックする.

9.gif

Simulation CenterでHelloWorldモデルの変数xをプロットする

アイコンの追加

HelloWorldモデルのアイコンを作成するためには,Model Centerに戻り,ツールバーの「アイコンビュー」ボタンをクリックして,クラスウィンドウのアイコンビューに切り換える.

10.gif

ツールバーの「アイコンビュー」ボタン

アイコンを作成するには,Model Centerのグラフィックスツールツールバーにある描画ツールを使用する.

11.gif

Model Centerのツールバーの描画ツール

長方形ツール等の適切な描画ツールを,ツールバーの対応するボタンをクリックして選ぶ.すると,カーソルの外観が変わる.マウスの左ボタンを押したまま希望の長方形の大きさと形になるまでドラッグして描画する.ボタンを放すと長方形が作成される.編集したり長方形のプロパティを見たりするためには,長方形をダブルクリックする.

12.gif

長方形のプロパティの編集

罫線のパターンを取り除き,角の半径を25に設定し,塗潰し色を「濃い緑」に,塗潰しパターンを「単色」に変更して「OK」ボタンをクリックする.次にEscキーを押して,アイコンビューの選択項目を解除する.最後にテキストツールツールを選び,長方形全体を覆うテキスト項目を描き,テキストのプロパティダイアログボックスでテキストを「Hello World」に,テキストの色を白に変更する.

テキスト項目を描く前に選択項目を解除しなければならない理由は重要である.すべての描画ツールは選択項目を動かすのにも使えるので,選択項目を解除しないと,テキスト項目を加えるのではなく,長方形を動かすことになってしまうのである.

モデルのアイコンは次のようなものになる.

13.gif

HelloWorldモデルのアイコン

HelloWorldモデルは,今後使用される場所のすべてにおいてこのアイコンで表される.

練習問題

HelloWorld モデルを動的なモデルに変更してみよう.例えば,方程式の減衰率を変えるパラメータを追加して,その結果を試してみよう.