Upload
dodan
View
239
Download
5
Embed Size (px)
Citation preview
オープンソースの活用
(平成 24年度「モデルベースース開発」人材養成研修)
大野修一
1 Scilab
1.1 起動と初期設定
(起動時に [Scilab 5] が書いてあるロゴが消えない場合は再起動してください.)
• コンソール• プロンプト• コマンドライン• SCIHOME と SCI
• scilab.start
SciNotes では,起動時に読み込むファイルを scilab.start にするよう help には書いていますが,これ
までどおり scilab.ini でないとダメのようです.
1. pwd
2. cd SCIHOME
3. ls
4. cd SCI
5. pwd, ls
6. cd SCIHOME
1.2 エディタ SciNotes
• Windows で SciNotes の日本語文字化けは,たとえば「設定」の「フォントを指定」で日本語のフォン
トを指定
• コメント• スクリプトの拡張子 sce,関数のの拡張子 sci
1. 「アプリケーション」の SciNotes
2. 「ワーキングディレクトリ」(Working directories) の「ディレクトリを追加」(Add a directory)
3. 「ファイルをオープン」(Open file in),「ファイルをセーブ」(Save file in)
フォルダは作成できるが削除できない。
4. exit, start
5. scilab.ini の作成
1
1.3 ヘルプ
1.4 Scilab とMatlab との違い
• 特殊変数 (4.4 節:p. 37~) は変更不可
• 配列の終わり:$ (p.55) と end(Matlab)
• 変数の入れ替え
x=1;y=2;
[x,y]=(y,x)
• 注意
-->x= 1./[1 2 3]
x =
0.0714286
0.1428571
0.2142857
1
-->x=1 ./[1 2 3]
x =
1. 0.5 0.3333333
• 同じ関数名で結果の異なるものの一部– int8
– max min (p.81)
– gsort
– fft
• 図はデフォルトで上書き (p.124)
• 新しい Figure Window は,scf(n)
1.5 スクリプトと関数
• スクリプト,関数の実行方法 (明示的にロードしなくてはいけない) (p.114)
ただし,関数 getf は,少なくとも 5.3.x では利用できなくなってるようです.
• 関数の動作 (p.115)
• pause (p.120)
1. Test1 (p.115)の作成
2. 「エコーバックなしのファイル」で実行
3. 「エコーバック付きのファイル」で実行
4. Test6 (p.120)の作成と実行
2
1.6 制御関連
• Demo : CASD Inverted pendulum (PID は動かない)
• Scilab 入門―フリーソフトで始める数値シミュレーション第 13 章 (p.161~)
• システムの定義• システムの応答• ボード線図• ナイキスト線図
s=poly(0,’s’);
H=1/(20*s^2+10*s+80);
S1=syslin(’c’,H)
bode(S1)
t=0:0.01:25;
y=csim(’step’,t,S1);
f1=scf(1);
plot(t,y)
xtitle(’Step Response’,’Time (sec)’,’Amplitude’)
f2=scf(2);
nyquist(S1)
演習 1
1. 伝達関数が s+2s2+2s+3 の連続時間システムに単位インパルスを入力したときの出力を表示しなさい.
2. (線形)連続時間システムが与えられたとき,そのシステムが安定かどうか調べる関数を書きなさい.
3
2 Xcos
Xcos は GUIを用いてシステムを定義しシミュレーションを行うことができる Scilab のアプリケーション
です.
2.1 Xcos の起動
Xcos は Scilab コンソールメニューの「アプリケーション」の「Xcos」を指定するか,アイコン をク
リックすると起動します.
起動すると通常画面左側にパレットブラウザが,右側にエディタがあらわれます.
2.2 Xcos と Simulink との主な違い
• パレットブラウザー (Simulink ライブラリブラウザー)
• アクティベーションの概念– 上側にアクティベーション入力を持つブロックが存在
– 下側にアクティベーション出力を持つブロックが存在
• ブロックを右クロックすると Block help (Simulink ダブルクリック)
• ブロックの接続方法• 引き出し点の作成方法
2.3 パレットブラウザ
Xcos はある機能を持ったブロックを線でつなげることでシステムを構築します.結線された複数のブロッ
クをブロック線図あるいはダイアグラムとよびます.
パレットブラウザは,利用しやすいようにブロックをそのブロックの属性に対応するカテゴリーに分類して
います.たとえば,カテゴリー「連続時間システム」は連続時間システムに関連するブロックがひとつのパ
レットとなっています.
4
図 1 Simple Demo
図 2 パレットブラウザ
5
2.4 ブロック
ブロックは,入力ポート,出力ポート,アクティベーション入力ポート,アクティベーション出力ポートを
持つことができます.たとえば,ブロック DLRADAPT_f はふたつの入力ポート,ひとつの出力ポートとアク
ティベーション入力ポートを持っています.
図 3 DLRADAPT f
ブロックへの入力信号を入力ポートに接続し,ブロックの出力信号を出力ポートから出力します.
ブロックはアクティベーション入力ポートからのアクティベーション信号で制御されます.また,他のブ
ロックの動作を制御するアクティベーション信号をアクティベーション出力ポートから出力することができ
ます.
2.5 エディタ
エディタでは,構築したいシステムに必要なブロックをパレットブラウザからエディタのダイアグラムにコ
ピーし,ブロック間を接続し,パラメータなどを設定します.
図 4 エディタ
6
パレットブラウザからエディタのダイアグラムへのコピーは,以下のふたつがあります.
1. パレットブラウザでブロック上で左クリックし,そのままダイアグラムへドラッグしドロップ
2. パレットブラウザでブロック上で右クリックすると,「追加」のプルダウンメニューがでるのでコピー
したいダイアグラムを選択
2.6 ブロックパラメータ
ブロックのパラメータを設定することができます.設定したしブロックを右クリックすると,パラメータ変
更のメニューがでてきます.
図 5 ブロックパラメータ
7
たとえば,CLOCK c のブロックパラメータを指定すると,Period と Initialisation Time があり,その数
値を変更することができます.
図 6 ブロックパラメータを指定
ブロックのパラメータの値は,ブロックにマウスをあわせると表示されます.
図 7 ブロックのパラメータ値
8
エディタでブロックをクリックすると,緑の□を用いて選択したことが示されます.選択した後,頂点をク
リックしドラッグするとブロックの大きさがかわります.
図 8 ブロックの変形
ブロックは色は文字などを変更・追加することができます.まず,エディタでブロックをクリックし,でて
きたメニューの「Format」の「詳細」を選択します.たとえば色を変える場合は「色を塗る」を選択します.
図 9 「Format」 の「詳細」
9
色を変更した結果です.
図 10 ブロックの色の変更
なお,キャンバスの何もないところで右クリックすると編集メニューが表示されます.
図 11 編集メニュー
10
2.7 ブロックの接続方法
ポートを右クリックし,緑の□から右クリックしたままドラッグします.
図 12 ブロックの接続方法 1
なお,折点が必要な場所ではクリック (既存の線に折点を追加したい場合はその場でダブルクリック) し
ます.
接続したいポートまでドラッグし,緑の□でドロップすると接続します.
図 13 ブロックの接続方法 2
11
2.8 引き出し点の作成方法
引き出し点の作成方法はつぎのふたつがあります.
2.8.1 引き出し点の作成方法 1
引き出し点をとりたい線をマウスで指定 (線が直線じゃないとダメのよう)すると,線が緑に変化します.
図 14 引き出し点の作成方法 1-1
クリックで引き出しを開始し,そのままドラッグしポートでドロップすることで接続します.
図 15 引き出し点の作成方法 1-2
12
必要に応じて整形します.
図 16 引き出し点の作成方法 1-3
2.8.2 引き出し点の作成方法 2
ポートから引き出し点をとりたい線をマウスで指定すると線が緑に変化します.クリックで引き出し点を作
成し,必要に応じて整形します.
図 17 引き出し点の作成方法 2
13
2.9 ファイル
エディタの「ファイル」のメニューは,作成したダイアグラムの保存などに関連する項目から構成されてい
ます.
Xcos のダイアグラムには拡張子 xcos を付けます.たとえば,test.xcos です.
「エクスポート」はダイアグラムを指定する画像フォーマットで出力します.また,「印刷」を指定すると
ダイアグラムが印刷されます.
図 18 「ファイル」メニュー
14
2.10 編集 (Edit)
エディタの「編集」のメニューには,ダイアグラムの編集に関する項目があります.
図 19 「編集」メニュー
全てを選択を選択すると以下のようになります.
図 20 全てを選択
これをひとつのブロックにするには「選択範囲をスーパーブロックに変換」とします.
スーパーブロックはひとつのブロックとして扱うことができます.
15
図 21 選択範囲をスーパーブロックに変換
2.11 View
メニュー「View」 には,ダイアグラムの拡大や縮小などに関する項目があります.
図 22 「View」メニュー
16
2.12 シミュレーション (Simulation)
メニュー「シミュレーション」には,シミュレーションの実行に関する項目があります.「開始」を指定す
るとシミュレーションが始まり,「停止」をシミュレーションが止まります.
図 23 「シミュレーション」メニュー
「設定」でダイアグラムのシミュレーションの終了時間,誤差,時間感覚などのが設定できます.
図 24 シミュレーションの設定
17
「コンテキスト」では変数を設定することができます.この変数はダイアグラムの各ブロックから参照する
ことができます.たとえば,ブロックの共通パラメータとして利用することができます.
図 25 コンテキストの設定
Modelicaとは、フリーのオブジェクト指向のモデリング言語です.非営利国際組織の Modelica協会が開
発しており,その成果は標準ライブラリとして公開されています.Xcos には Modelica を用いるブロック
(Modelica Block)を利用することができます.ただし,Fortran または C++ コンパイラが必要となります.
Windows では Microsoft R⃝ Visual C++ をインストールすれば Modelica ブロックを使用できるようにな
ります.
18
2.13 Format
「Format」では,ブロックのなどの整列などが行えます.
図 26 「Format」メニュー
たとえば のブロックの縦横を整列したいとします.
図 27 整形の手順 1
19
まず,ある点からドラッグし Clock と CSCOPE を選択します.
図 28 整形の手順 2
選択されるとつぎのようになります.
図 29 整形の手順 3
20
ここで,「ブロックを整列」の中央を選択すると Clock と CSCOPE が中央揃いで垂直に整列します.
図 30 整形の手順 4
同様に水平方向を整列すると となります.
図 31 整形の手順 5
21
2.14 ?
「?」 はヘルプなどに関する項目があります.
図 32 「?」メニュー
演習 2
1. 伝達関数が s+2s2+2s+3 の連続時間システムに単位ステップを入力したときの出力を表示しなさい.
2. 1 の場合において単位ステップの出力も表示するようにしなさい.
3. 2 の場合において伝達関数が s+2s2+2s+3e
−s としたときの結果を示しなさい.
4. 3 において,ブロック PID を使用してシステムが入力に追従するようパラメータを設定しなさい.
22