はじめての xcos
TRANSCRIPT
はじめての Xcos - Xcos for very beginners -
Scilab Enterprises S.A.S --- 143 bis rue Yves Le Coz --- 78000 Versailles (France) --- www.scilab---enterprises.com
Xcos for very beginners --- 2/15
This document has been written by Scilab Enterprises. This document has been translated by Teruhiko HINAJI P.E.Jp (Mechanical Eng.), Advanced Technology Research Laboratory. © 2013 Scilab Enterprises. All rights reserved.
Xcos for very beginners --- 3/15
目 次
はじめに
本書について 4 Scilab のインストール 4 メーリングリスト 4 関連する情報提供サイト 4
Xcos を使ってみる
実行環境 5 簡単なダイアグラムの設計例 6 スーパーブロック 9
付録
メニューバー 11
利用できるパレット 13
C コンパイラのインストール 14
Xcos for very beginners --- 4/15
はじめに
本書について
本書ではハイブリッド・ダイナミックシステムのモデラーやシミュレーターをはじめて使うユーザー
が、Scilab に組み込まれている Xcos の様々な基本機能をひとりで少しずつ学べるように説明し
ています。また、本書の例題は Xcos による学習を容易にするため、あえて本質的なものに絞っ
ています。
例題の図表やイラストは Scilab 5.4.1 で実行した結果です。これ以降のバージョンで本書の例題
は、すべて実行できます。
S c i l a b のインストール
Scilab は誰でも自由にダウンロードできる数値計算のためのオープンソース・ソフトウエアです。
Windows や Linux、Mac OS X のいずれにも対応しているので、以下のサイトから Scilab をダウ
ンロードしてください。 http://www.scilab.org/
次のアドレスにある通知チャンネルへご登録いただくと Scilab ソフトウエアのリリースやバージョ
ンの更新情報を入手できます。 http://lists.scilab.org/mailman/listinfo/release
メーリングリスト
S c i l a b ユーザーの交流を図るため、メーリングリストが開設されています (教育関
係者用リスト (仏語 )、英語による国際リスト )。使い方は簡単で、電子メールにより
登録者間の意見交換を行います。 (質問、回答、文書の共有、フィードバック… )
メーリングリストの閲覧や登録については、以下のアドレスからお願いいたします。
http://www.scilab.org/communities/user_zone/mailing_list
関連する情報提供サイト
Scilab ウェブサイトには Scilab 利用に関する専用のページ
(http://www.scilab.org/en/resources/documentation)があり、役立つリンクの他にダウンロードや
印刷が自由にできる文書が用意されています。
本書の関連図書で『はじめての Scilab – Scilab for very beginners -』というタイトルの文書(ダ
ウンロード可)も、同じページに用意されています。
Xcos for very beginners --- 5/15
Xcos を使ってみる
現在のシステム設計プロセスにおいて数値シミュレーションは必須です。費用がかかる実際の
実験を行わなくても、複雑な現象のシミュレーション(物理、機械、電子機器など)は、それらの振
る舞いや結果などの研究を可能にしています。また産業界では幅広く活用されていますし、エン
ジニアや科学者を志望する若者にはモデリングやシミュレーションの考え方を高等学校から教え
ています。
Xcos は連続や離散化の両モデルを含むハイブリッド・ダイナミックシステムのモデリングやシミ
ュレーションに特化した Scilab ツールです。また明示的な方程式(因果的シミュレーション)や暗
示的な方程式(非因果的シミュレーション)が支配するシステムのシミュレーションもできます。
Xcos にはブロック間を接続しブロック線図としてモデルを簡単に表せるグラフィックエディタが
あります。各ブロックはあらかじめ定義された基本機能やユーザーが定義した機能を表します。
実行環境
Scilab を起動すると、デフォルトの実行環境はコンソールやファイル、変数ブラウザとコマンド履
歴で構成されています。
コンソール内でプロンプト“ --> ”に続いて、コマンドを打ち込みエンター・キーを押すことで入力
に応じた結果が得られます。
Xcos を実行するためには、
• ツールバーから、アイコン をクリックする。 • メニューバーから、アプリケーション/Xcos を選択する。
• コンソールから、以下のコマンドを打ち込む。
-->xcos
Xcos for very beginners --- 6/15
Xcos は 2 つのウィンドウがデフォルトで開きます。
• パレットブラウザ : あらかじめ定義されたブロックセットを提供 • 編集ウィンドウ : ダイアグラムを設計する作業スペース
ダイアグラムの設計は、 パレットブラウザのブロックを選択し編集ウィンドウに持ってくる
だけです (クリックしてドラッグ、そして離す)。ブロックごとに用意されたポート(入力、出力、イベ
ント)を相互に接続してモデルを作成しシミュレーションを行います。
簡単なダイアグラムの設計例
一次の伝達関数で表される連続時間システムのモデルをゼロから設計する方法について説明
を進めます。
Xcos を起動します。
前節で説明しましたが、Xcos はデフォルトでパレットブラウザと編集ウィンドウが開きます。パレ
ットブラウザから、以下のブロックを使うことになります。
名称 ブロック表記 サブ-‐パレット
ステップ 信号源 / STEP_FUNCTION
連続伝達関数 連続時間システム / CLR
時計 信号源 / CLOCK_c
表示 出力/表示 / CSCOPE
Xcos for very beginners --- 7/15
編集ウィンドウ内にブロックを配置します。インプットとアウトプットのポート間を接続するには、
以下の図で説明されるように、STEP_FUNCTION ブロック のアウトプット(黒の矢印)をクリ
ックしマウスの左ボタンを押しながら CLR ブロックの入力ポートにカーソルを移動させ接続しま
す(緑色にハイライトされた正方形は選択したポートが適切であることを示している)。
リンクが完成したらマウスのボタンを離します。
以下のダイアグラムになるようブロック間のリンクを完成させてください。
ブロック整列オプション(“書式メニュー/ブロックを整列”)や結合方法(“書式メニュー/結合方法”)
を使ってダイアグラムの見映えをよくすることができます。いつでも、複数のブロックを選択し、そ
してマウスの左ボタンをクリックしながらそれらを移動させ配置や位置を変えられます。選択した
ブロックを希望の位置に移動させたらマウスのボタンを離します。
シミュレーションの起動は、このアイコン をクリック(あるいは”シミュレーションメニュー/開
始”)し、停止には次のアイコン をクリック(または”シミュレーションメニュー/停止”)します。
シミュレーションの実行に伴って新しいウィンドウ (scope)が表示されます。ダイアグラム
編集ウィンドウ下側のステートメントバーにシミュレーションの状態が表示されます。
Xcos for very beginners --- 8/15
シミュレーション時間が非常に長く(実行途中でシミュレーションを停止させる必要があるかもしれ
ません)、そして応答も平坦になることがわかります。そこで、CLR ブロック とシミュレ
ーションのパラメータ変更を行います。
Scilab スクリプトを含む『コンテキスト』で Xcos ブロックの関数と変数の設定が容易になります。
このダイアグラムのブロックパラメータ設定に、このコンテキストを使うことにします。
メニューバーにある”シミュレーション/コンテキスト設定”を選択し
以下の変数を定義します。
• K = 1 • Tau = 1
これでダイアグラムのブロック設定にこれらの変数が使えるようになりました。
CLR ブロックをダブル・クリックします。デフォルト設定のダイアログ
ボックスが開きます。これらの値を以下のように変更します。
• Numerator: K • Denominator: 1+Tau*s
新しい伝達関数がブロックに表示されます。
表示がはみ出るようなら、ブロックを拡張し表示に合わせてください。
Xcos for very beginners --- 9/15
ステップ入力に対するシステムの時間応答を表示
するためシミュレーションとブロックの設定を行いま
す。そのために、積分終了時間(シミュレーションメニ
ュー/設定)を 5 秒に変更しシミュレーション時間を
制限します。
CSCOPE ブロックをダブル・クリックし出力の表示範
囲を 0 から 1.2 に、そして表示の更新間隔を 5 秒に
設定します。それを実施するため、以下の設定変更
を行います。
• Ymin: 0 • Ymax: 1.2 • Refresh period: 5
再び開始すると、次の結果が得られます。
スーパーブロック
特定のダイアグラムに対する理解を容易にするため、スーパーブロックや複合ブロックを使うこと
があります。スーパーブロックにはダイアグラムの一部や入力や出力を意味するブロックが含ま
れています。また、スーパーブロックは親ダイアグラム内で 1 つのブロックとして扱われます。
ダイアグラム設計後、一つのブロックに集約したいダイア
グラムの範囲 (あるいはサブ・ダイアグラム)を選択し、メ
ニューの”編集/選択範囲をスーパーブロックに変換”か
らスーパーブロックの作成を実行します。
変換されたスーパーブロック内のダイアグラムはダブル・
クリックで表示されます。新しい編集ウィンドウで変換時
に選択したブロックが表示されます。
Xcos for very beginners --- 10/15
サブ・ダイアグラムへのアクセスを無効としスーパーブロックを非表示にもできます。それは、マ
ウスの右ボタンでスーパーブロックをクリックし、”スーパーブロック・マスク/作成”を選択します。
マウスの右ボタンでスーパーブロックをクリックし、”スーパーブロック・マスク/カスタマイズ”を選
択すると、スーパーブロックを構成するパラメータの選択も一つの画面で行えます。
実際に画面を開き、値を調整したいパラメータを選択してください。
今回の説明はあえて内容を絞りました。利用できるブロックは他にも数多くあるためシステムの
シミュレーション対象は広くなります。Xcos を使い続けるためには、メニューバーにある”その他
/Xcos デモ”をクリックし、Xcos で実行できるダイアグラムの事例が豊富なデモウィンドウの利用
をお勧めします。
Xcos for very beginners --- 11/15
付録
メニューバー
Xcos で頻繁に使われるメニューバーはダイアグラム編集ウィンドウのメニューです。
ファイルメニュー
• 新規ダイアグラム (Ctrl+N : Windows と Linux / Cmd+N : Mac OS X) 新規に Xcos のダイアグラム編集ウィンドウを開く。
• 開く (Ctrl+O : Windows と Linux / Cmd+O : Mac OS X) .
.zcos や.xcos フォーマットでダイアグラムやパレットを含む Xcos ファイルを開く。
• Scilab カレントディレクトリのファイルを開く
Scilab カレントディレクトリから.zcos や.xcos フォーマットでダイアグラムやパレットを含む
Xcos ファイルを開く。 • 最近のファイル
最近開いたファイルを提示。 • 閉じる (Ctrl+W : Windows と Linux / Cmd+W : Mac OS X)
複数のダイアグラムが開いていたら、カレントのダイアグラムを閉じる。開いているダイ
アグラムが一つだけなら Xcos を終了する。すべてのダイアグラムを閉じたあとで、パレ
ットブラウザのような補助ウィンドウを閉じる。
• 保存 (Ctrl+S : Windows と Linux / Cmd+S : Mac OS X)
ダイアグラムの変更を保存する。新規ダイアグラムを保存する場合、名前を付けて保存
することが提案される。(別名で保存を参照) • 別名で保存 (Ctrl+Shift+S : Windows と Linux / Cmd+Shift+S : Mac OS X)
新しい名前でダイアグラムやパレットを保存します。保存後のダイアグラムは別名で保
存したファイル名(拡張子なし)に置き換えられる。 • エクスポート (Ctrl+E : Windows と Linux / Cmd+E : Mac OS X)
カレントの Xcos ダイアグラムを画像の標準フォーマット(PNG, SVG など)でエクスポート。 • Export all diagrams
ダイアグラムとそれを構成するスーパーブロックの内容をエクスポート。
• 印刷 (Ctrl+P : Windows と Linux / Cmd+P : Mac OS X)
カレントのダイアグラムを印刷。 • Xcos を終了 (Ctrl+Q : Windows と Linux / Cmd+Q : Mac OS X)
Xcos を終了。
編集メニュー
• 元に戻す (Ctrl+Z : Windows と Linux / Cmd+Z : Mac OS X)
直前の操作の取り消し。 • 再実行 (Ctrl+Y : Windows と Linux / Cmd+Y : Mac OS X)
取り消された直前の操作を再実行。 • 切り取る (Ctrl+X : Windows と Linux / Cmd+X : Mac OS X)
選択したダイアグラムのオブジェクトを削除しクリップボードにコピーを保存。 • コピー (Ctrl+C : Windows と Linux / Cmd+C : Mac OS X)
クリップボードに選択したオブジェクトのコピーを保存。
• 貼り付け (Ctrl+V : Windows と Linux / Cmd+V : Mac OS X) クリップボードの内容をカレントのダイアグラムに貼り付け。
Xcos for very beginners --- 12/15
• 削除 (Delete) 選択したブロックとリンクを削除する。ブロックが削除されると、そこに接続していたリンク
もすべて削除される。 • 全てを選択 (Ctrl+A : Windows と Linux / Cmd+A : Mac OS X)
カレントのダイアグラム全要素を選択。 • 選択の反転
カレントの選択を反転。
• ブロックパラメータ (Ctrl+B : Windows と Linux / Cmd+B : Mac OS X)
選択したブロックの設定。(詳細は選択したブロックのヘルプを参照のこと) • 選択範囲をスーパーブロックに変換
選択範囲をスーパーブロックに変換。
表示メニュー
• 拡大 (Ctrl+NumPad + : Windows と Linux / Cmd+NumPad + : Mac OS X) 10%ずつ表示を拡大。
• 縮小 (Ctrl+NumPad - : Windows と Linux / Cmd+NumPad - : Mac OS X)
10%ずつ表示を縮小。
• Fit diagram or blocks to view ブロックなどの表示をウィンドウの大きさに合わせる。
• 標準 100 %
デフォルトサイズに表示を合わせる。
• パレットブラウザ
パレットブラウザの表示 / 非表示。
• ダイアグラムブラウザ
ダイアグラムのグローバルなプロパティやダイアグラムを構成するすべてのオブジェクト
(ブロックとリンク)をツリー状にしてウィンドウに表示する。
• ビューポート
カレントのダイアグラム全体図を表示/非表示。ビューポートで全体図を見ながら、ユーザ
ーはダイアグラムの特定部分に作業領域を移すことができる。
シミュレーションメニュー
• 設定
シミュレーションパラメータの設定。
• 実行トレースとデバッグ
デバッグモードにシミュレーションを設定。
• コンテキスト設定
ダイアグラムのブロック設定で参照する変数や関数を Scilab スクリプトで定義し
シミュレーション実行時に反映させる。 • コンパイル
ダイアグラムのコンパイル。
• Modelica 初期化
非因果的ダイアグラムのサブシステムにおける変数の初期化が可能。
• 開始
シミュレーションの開始。
• 停止
シミュレーションの停止。
Xcos for very beginners --- 13/15
書式メニュー
• 回転 (Ctrl+R : Windows と Linux / Cmd+R : Mac OS X)
選択したブロックを左方向に 9 0 度回転。 • フリップ (Ctrl+F : Windows と Linux / Cmd+F : Mac OS X)
選択したブロックの上側に位置するイベントの入力端子と下側に位置するイベントの出力
端子を入れ替える。
• 反転 (Ctrl+M : Windows と Linux / Cmd+M : Mac OS X)
選択したブロックの通常左側に位置するデータの入力端子と右側に位置するデータの
出力端子を入れ替える。 • 影の表示 / 非表示
選択したブロックの影の表示 / 非表示。
• ブロックを整列
複数のブロックを選択することで、それらを垂直軸(左、右、中心)あるいは水平軸(トップ、
一番下、中央揃え)に揃えて整列させることができる。 • 境界色
選択したブロックの境界色を変更。
• 色を塗る
選択したブロックの色を変更。
• 結合方法
結合方法の設定。 • ダイアグラムの背景
ダイアグラムの背景色を変更。
• グリッド
グリッドを有効/無効にする。グリッドのおかげで、ブロックやリンクの配置が容易になる。
ツールメニュー
• コード生成
選択したスーパーブロックのシミュレーションコードを生成。
その他メニュー
• Xcos ヘルプ
Xcos の機能やパレット、ブロック、例題などのヘルプを開く。
• Block ヘルプ
選択したブロックのヘルプを開く。
• Xcos デモ
ダイアグラムの例題を開きシミュレーションを実行する。例題のダイアグラムはユーザ
ーが自由に修正でき、今後の使用に合わせ保存も可能である。(デモダイアグラムの実
行には、使用するコンピュータに C コンパイラのインストールが必要な場合もあるので、
注意すること。15 ページを参照願います。)
利用できるパレット
• 汎用ブロック
頻繁に使われるブロック。
• 連続時間システム
連続ブロック。 (積分, 微分, PID)
• 不連続
Xcos for very beginners --- 14/15
入力に対し出力が不連続関数となるブロック。(ヒステリシス) • 離散時間システム
離散時間におけるモデル化のためのブロック。(微分、サンプリング、遮断) • ルックアップ・テーブル
入力から出力の近似値を計算するブロック。 • イベント・ハンドリング
ダイアグラム内のイベントを管理するブロック。 • 数値計算
一般的な数学の関数(余弦(cos)、正弦(sin)、除算(÷)、乗算(×))をモデル化する
ブロック。
• 行列
シンプルかつ複雑な行列演算用のブロック。
• 電気工学
基本的な電気部品(電圧源、抵抗、ダイオード、コンデンサ)を表すブロック。 • 整数
整数(論理演算、論理ゲート)の操作ができるブロック。
• ポートとサブシステム
サブシステムを作るためのブロック。
• ゼロクロス検出
シミュレーション中のゼロ交差検出に用いられるブロック。これらのブロックはゼロ交差検
出のためソルバー機能(ODE あるいは DAE)を利用している。 • 信号の配線
信号の配線、多重化、サンプル/遮断のためのブロック。
• 信号処理
信号処理アプリケーション用のブロック。
• 暗示的
暗示的なシステムモデリングのためのブロック。
• 注釈
注釈用のブロック。
• 出力/表示
出力ブロックはグラフ表示(scope)やデータ出力(ファイルや Scilab)に用いられる。
• 信号源
信号源(パルス、ランプ、正弦波)や Scilab のファイルまたは変数からデータを読み込む
ブロック。 • 熱水力学
基本的な熱・油圧部品を表すブロック。(圧力源、パイプ、バルブ) • ブロック・デモ
デモダイアグラムで用いられるブロック。
• ユーザー定義関数
現象をモデル化するユーザー・ブロック。(C, Scilab あるいは Modelica 用ブロック)
C コンパイラのインストール
特定のシステムシミュレーション(例えば油圧や電気などのブロックを含む非因果的システム)につ
いては、使用するコンピュータに C コンパイラのインストールが必要になります。
Windows の場合
Scilab の”アプリケーションメニュー/モジュール管理 – ATOMS” / Windows Tools から MinGW
モジュールをインストールしてください。MinGW モジュールは Scilab と GCC コンパイラ(別途、
Xcos for very beginners --- 15/15
インストールが必要)をリンクさせます。モジュールのインストールウィンドウに MinGW と GCC コ
ンパイラのインストール手順を細かく示してあるので、それに従ってください。
Linux の場合
Linux OS の場合、デフォルトで GCC コンパイラが使えます。コンパイラがインストールされ
(Synaptic や Yum などのパッケージ管理システムを介して)最新であることを確認するだけです。
Mac の場合
App Store(Mac OS 10.7 以上)もしくはコンピュータ(Mac OS 10.5、10.6)付属の CD から Xcode を
ダウンロードしてください。それ以前の OS は、Apple のウェブサイトを確認してください。Xcode
以外でコンパイラが使えることを確認してください。その後、Xcode を起動して『Preferences』を開
き、 『 Downloads 』から 『 Components 』 タブを選択して 『 Check for and install updates
automatically』をチェックし、拡張機能の『Command Line Tools』をインストールします。
当然、 使用するコンピュータに C コンパイラがインストールされていれば、あえてインストー
ルは必要ありません。もしコンパイラがインストールされているなら、%T を返す以下のコマン
ドを使って、Scilab がコンパイラを検知することを確認してください。
--> haveacompiler()