Scilabには制御系の構成と解析をGUI操作で行えるSCICOSが付属する。 ここではSCICOSを用いた制御系の構成と解析について単純なモータの フィードバック系を用いて説明する。
図2-1.にScilabのフロントエンドでscicos()と入力したところを示し、 図2-2.にSCICOSのフロントエンドを示しておく。
図2-1.scicosの起動
図2-2.SCICOSの起動画面
図2-2.に示す様にSCICOSの上部にメニューが並んでいる。 これらのメニューについて今回の制御系の解析に関係のある 個所のみの概要を説明する。
ここで行うのは制御系のイメージデータの出力とウインドウのクローズ等であり、 SCICOSで作成したモデルの保存と読み込みは行わない。 モデルの保存と読み込みはDiagramメニューのloadとsave等で行う。
制御系の拡大を行う。制御系の拡大は領域を選ぶと自動的に行う。
拡大した制御系を元の大きさに戻す。この場合、領域の選択等は不要。
制御系の編集を行う。尚、このEditメニューからPalettesを選択すると 図3-1.に示すウインドウが開き、ここからSCICOSで用意された制御系要素 をグループ別に纏めたパレットを開く事が出来る。
図3-1.Palettes
図3-1.に示すウインドウからグループを選択すると対応する制御要素の パレットが表示される。例えばLinearを選択すると 図3-3.に示す線形の制御要素のパレットが表示される。この図に示す様に 制御要素は入力と出力をもつブロックとして表現されているが、各ブロックは 入力に対する出力を表す方程式であり、Scilabのプログラムである。
しかし、SCICOS上では必要に応じてSCICOSのEditメニューからcopyを 選択し、パレットから制御要素をマウスでピックするだけで SCICOSのウインドウに要素がコピーされる。そして、SCICOSのウインドウ 上で各制御要素の入力と出力をGUI操作で繋いで行く事で制御系が構成される。
以下、代表的なグループを示す。
解析パラメータの設定と解析実行を行う。
制御系の読み込み、保存等とSCICOSの終了はここで行う。
制御要素のパラメータ等の修正、制御要素のScilab内部での 情報等の表示等を行う。
このメニューにはSCICOSのフォントやLinkの色等の 設定とヘルプ、SCICOSを一時中断してScilabを用いた 計算等が行える。ここで、Calcを選択するとScilabで通常の 計算が行える。尚、SCICOSに戻る場合はreturnを入力する。
ここではモータの制御系を構成の方法について述べる。 図4-1.にモータの制御系の全体図、図4-2.に図4-1.の 右上側でMotor Blockと記された制御ブロックの内容を 示す。この部分の関してはSuper Block で説明を行う。
図4-1.モータの制御系全体図
図4-2.モータ本体のSuper Block
最初に制御要素を各パレット上からSCICOSのウインドウにコピーする。 その方法はSCICOSのEditメニューからcopyを選択し、次に、各パレット から必要な要素をマウスでピックするだけでSCICOSのウインドウに 選択した制御要素が自動的にコピーされる。
尚、各要素をSCICOSのウインドウにコピーした状態では、各要素が どの様に関連しており、又、各要素のパラメータもデフォルトのままである。
次に各要素のリンクを行う。ここでは制御要素の出力を別の要素の 入力へと繋いで行く。この操作はEditメニューからLinkを選択し、関連 付ける要素の入力と出力をマウスでピックすれば良い。
ここで要素の入力はブロックに突き刺さった三角形の底辺側になり、 出力はブロックに底辺を定着させた三角形の頂点側になる。
尚、入力と出力側のデータのタイプが合わない場合はリンクが出来ない。
SCICOSにはSuperBlock要素がある。これはユーザが制御要素を用いて構成した 系を一つの制御要素として扱うものである。
SuperBlockはOtherパレットに含まれている。 図3-6.の左下にあるブロックがSuper Block である。
使い方は他の制御要素と同様にSCICOSのウインドウにコピーし、Objetcメニュー からOpen/Setを選択して、SuperBlock要素を直接マウスでピックすと別のSCICOS ウインドウが立ち上がり編集可能になる。以降、各パレットから制御要素を コピーして制御系を構成する。
この方法ではSuper Block要素を位置から構成するが、構成した制御系の一部を 選択してSuper Blockとして扱う事も可能である。この場合、Diagramメニューから Region to Super Blockを選択し、SCICOSのSuper Block化したい領域を選択する。 すると、選択された領域が自動的にSuperBlockに変換される。
各制御要素のパラメータの設定はObjectメニューから Open/Setを選び、SCICOSのウインドウ上の制御要素をピックすると パラメータ設定用のウインドウが現れる。尚、このパラメータの変更は 解析中でも可能である。
図4-3.に制御要素のパラメータ表示の様子を示す。この例では図4-2.の 左上にある一次遅れ系要素をObjectメニューからOpen/Setを選択した状態で、 ピックする事でこのウインドウが表示される。現在設定されている値の確認 と変更はこの様にして行う。
図4-3.制御要素パラメータ設定例(一次遅れ系)
SCICOSでは各ノードをグラフ表示する事が可能である。 ここでは、Input/OutputパレットのMScope要素を用いる。 このMScope要素は標準で2つのノードのグラフ出力が 可能である。入力ノードの数と表示するグラフの大きさの設定は ObjectメニューからOpen/Setを選択し、直接MScope要素をピックする。 すると、図4-4.に示すウインドウが開かれる。
図4-4.MScopeのパラメータ
入力ノードの変更は最上段のInput ports sizeで表される行ベクトルの サイズを変更する事で行う。この例の場合、入力ノードは5個であり、 そのままグラフに表示する為、"1 1 1 1 1 1"と要素が1でサイズが5の 行ベクトルを設定している。
次に表示するグラフの領域はYmin vectorで各々の最小値、Ymax vectorで 最大値の設定を行う。
このMScopeでは横軸を時間とする。図4-1.の右上の時計がその入力の時間を示す。 図4-4.のRefresh periodで横軸の幅を指定している。 MScopeではグラフの表示が解析と平行して行われる為、Refresh periodに 横軸が達した時点でグラフの領域が描き直される。今回のモデルでは 5秒を設定している。
尚、グラフの表示ではMScopeの左側にある入力ポートにLinkしたノードが 上から順に表示される。この例題では回転角度のDisp、回転角速度のVel.、 回転目標値と実際の回転角度の差のDiff.Dis.、回転速度の目標値と 実際の回転角速度との差であるDiff.Vel.と目標回転角度のtargetの 順にグラフが表示される。
解析はSCICOSのSimulateメニューからrunを選択すると、直ちに 解析を実行する。解析の条件の設定はSimulateメニューからSetup を選択し、図5-1.に示すウインドウが現れるので、ここに解析の終了時間、 積分の誤差に関する設定と、Scilabの常微分方程式ソルバが用いる時間刻幅 の最小値と最大値の設定を行う。
図5-1.解析パラメータの設定
次に、Simulateメニューからrunを選択すると解析が実行される。 この例題では、MScopeを用いてグラフの表示を行う為、解析と 同時にグラフの表示が行われる。ここでは解析が終了した時点での グラフを図5-2.に示す。
図5-2.グラフ表示
グラフの表示はMScopeの入力の順に表示される。このモデルでは、 図4-1.に示す様に、回転角度のDisp、回転角速度のVel.、回転角度 目標値と実際の回転角度の差のDiff.Dis.、回転速度の目標値と 実際の回転角速度との差であるDiff.Vel.と目標回転角度のtargetの 順に表示される。
モデルの保存、読み込みはSCICOSのDiagramメニューからSave、Loadを 選ぶ。すると図6-1.に示すウインドウが現れる。ここでファイル名を指定し 下の段のokを選択すると、ファイルの保存・読み込みが行われる。
図6-1.ファイルメニュー