SCICOSで遊ぼう(グラフ表示編)

ここでは単純な例題で遊びましょう。最初にSIN関数のグラフ表示を 行いましょう。三角関数等の初等関数はnon-linearのpaletteに纏め られています。勿論、Others PaletteからScilab-functionを選ん で記述しても構いません。他に必要なものは関数に与えるパラメータ、 グラフ表示を行うブロック等があります。次の図に必要な要素を コピーした様子を示します。

先ず、黒と赤の時計が二つあります。ここで黒の時計はInputs/Outputs、 赤の時計はEvents Paletteに含まれています。黒が解析時間を生成し、 赤が条件フラグ用の時間です。次にMScopeと言うブロックはグラフ表示 を行う要素です。デフォルトで2つのグラフ表示が行なえる様に信号の 入り口があります。この場合、黒の入り口から入った信号がグラフの 縦軸、赤の入り口の信号がグラフ表示の時間軸に対応します。似た要素 に"write AU to /dev/audio"と記述された要素がありますが、これは /dev/audioに結果を書き込む為の要素です。これらもInputs/Outputs Paletteに含まれています。最後に残ったのがSIN関数です。この様な 数学関数はNon-Linear Paletteに含まれています。これらの要素の 配置は単純にEditメニューからPaletteメニューを選択します。 すると各要素群が載ったPalette名一覧のメニューが出るので、 上記のPaletteを選択します。Scicosのモデル組み立てウインドウに 要素を写す方法は、単純にPaletteの要素を指定し、それをモデル組み立て ウインドウにマウスカーソルを持って行くと、矩形で表示されます。 それから、任意の場所をピックすると、その場所に要素が写されます。 尚、一旦置いた要素の移動はEditメニューからMoveを選択してから、 要素をピックすれば行えます。では、これらのブロックを繋げましょう。 基本的に黒の信号については、その入力は箱の左、出力は箱の右に なります。ここでは黒の時計が時間を出力し、それをSIN関数が受け、 SIN関数の出力をグラフ表示要素と/dev/audioに書き込む要素が受け 取ります。この要素同士の繋ぎ合せはEditメニュからLinkを選んでから、 各要素の矢印の個所を結んで行きます。

この作業を繰り返すと次のブロック線図が出来上がります。 尚、配線を間違えた場合にはEditメニューのdeleteを選択しで、直接 配線をピックします。その後に、消去した筈の配線が残っている場合、 モデルの書き換えを行います。これはDiagramメニューからReplotを 選択します。

ここで、MScopeの入力が前の図と比べて一つ減っています。先程の図で ObjectメニューからOpenを選んで、MScopeをクリックします。すると 次のダイアログが現れます;

ここでInput port sizeと言う項目が"1 1"になっています。ここでの "1"は入力ベクトルの大きさを現します。従って、"1 1"で二つの数値 データが入力となっている事が分ります。ここではSIN関数のグラフ一つ を出力するので"1"だけにします。ここで、下側にYmin,YMaxとあるのは グラフの縦軸の最少、最大値です。更にその下のRefresh Periodは指定 した時間毎にグラフを描き換えると言う意味です。今回の例では100秒毎 にグラフは描き換えられます。

修正したダイアログを以下に示します;

これでモデルは出来ました。これからグラフを描かせましょう。 又、/dev/audioが使える環境であれば、何か音が出る筈です。 ところで、グラフの設定は行いましたが、解析時間等の条件は 設定していません。この設定はSimulateメニューからSetupを選んで 条件の設定を行います。

Scicosでは解析時間をFinal Integration timeで行います。この初期値 は非常に大きなものですが、非常に安易なモデルの為、ここでは1000[sec] とします。尚、計算機の処理能力に不安があれば小さくしても構いませんが、 Scilabの場合、Stopメニューで止める事も可能です。その後はそのままで 良いでしょう。

いよいよ解析を行います。Simulationから一番下の"Run"を選べば、新しい ウインドウが現れグラフを表示しています。

どうです。簡単でしょう。

では、少し難しくしてみましょう。今度はSIN関数を時間微分したものも 表示してみましょう。先ず、Linear Paletteから"1/s"と描かれた箱を モデルにコピーして下さい。この"1/s"が積分要素で、黒の入力に対し 時間積分を行う要素です。尚、"1/s"の詳細を知りたい方はLaplace変換 を数学辞典等で調べて下さい。因に微分は"s"で表現されていますが、 数値微分を行う場合は誤差の問題があって、SCICOSには含まれていません。 しかし、一次の遅れ要素を用いて近似的に表現出来ます。 閑話休題、この積分要素を開いてみると、

には"0"が記入されています。時間t=0で積分計算の値は0と言う意味です。 数値積分を行う際に、t=0での関数の値を0として計算を行う為です。 ここではSINの積分として-COSのグラフを表示したいので、t=0で-1でなければ なりません。従って、-1を入力し直します。

次に-COS関数のグラフ表示用にMScopeをもう一つコピーします。 今回はInputs_Outputs paletteからでは無く、モデルのMScopeをコピー します。この場合はDiagramメニューからCopyを選び、MScopeをピックする とコピーされます。次に新しいMScopeには次の設定を行います;

ここでは"Dialog colors"の所でグラフの色を設定しています。この場合、 先頭から順に数字に対応する色が割り当てられます。今回、先頭の1を 消去して3を先頭に持って行きます。しかし、他の変更は行っていません。 又、"Output Window Number"の欄が"1"のままである事に注意しておいて 下さい。この数字に関しては後に述べます。

これが新しいモデルです。

では解析を行いましょう。

とSIN関数とCOS関数が一緒に表示されています。 これは"Output Window Number"の設定で同じ番号1を設定していた為、 1のウインドウにグラフが出力される仕様となっています。従って、 別の番号を指定していると別のウインドウに表示されます。


SCICOSで遊ぼうに戻る

数値・数式処理の目次に戻る

Last modified: Wed Jan 9 23:08:41 JST 2002