Scilabで学ぶフィードバック制御入門
ようこそ
 はじめに
数学の準備
 高校数学
 複素数
 ラプラス変換
 ラプラス逆変換
Scilab入門
 概要
 四則演算
配列
 グラフ表示
 プログラム1
 プログラム2
伝達関数
 概要
 poly,syslin,csim
 ステップ応答法
 RLC回路
周波数応答
 ゲイン・位相
 ボード線図
 比例・微分・積分
 1次遅れ,ムダ時間
 パデ近似の導出
 pade関数の作成
制御の安定性
 ブロック線図
 フィードバック
 2次遅れ系
 ステップ応答法
 周波数応答法
 ナイキスト線図
 安定性の判別
 判別の仕組み
 安定余裕の評価
 評価の例題
Xcos
 入門
 例・運動方程式
PID制御(Xcos)
 概要
 比例(P)動作
 積分(I)動作
 微分(D)動作
 PID・ボード線図

Scilab入門:配列


他のプログラム言語と同様にScilabも配列を扱うことが出来ます。
配列の使用法について解説します。

配列を使う

tblという名前の配列を考えます。
[ ]で囲んだ中に、数値を記述することで配列を作ることが出来ます。
数値と数値の間は、空白かカンマで区切ります。
各要素には、数式を使うことも出来ます。

n番目の要素を参照するには、tbl(n) と記述します。
要素は、1 から始まります。
C言語は 0 からです、間違いやすいので注意してください。

コンソール画面
-->a=10;                   //←変数 a に 10 を設定

-->tbl=[5 10 a*3,1,100]    //←tblの要素1〜5へ各種値を設定 式も使える
 tbl  =
    5.    10.    30.    1.    100.  

-->tbl(1)+tbl(3)           //←要素1番目と3番目参照
 ans  =
    35.  

-->tbl(2.5)+tbl(5.9)       //←要素の指定に小数点付きも可能、この場合小数点以下は切り捨て
 ans  =
    110.

コロン演算子と連結

Scilabに特徴的な演算子として コロン があります。
a:b:c が書式です(a=初期値、b=刻み地、c=最終値)。
これは、a,a+b,a+2*b,a+3*b,・・・・,c の数値列を表します。
(cと数値列が一致しなければ、cを超えない値が最終値)
b を省略した場合は、1 とみなされます。
また、マイナスを使うことも可能です。

配列同士を連結させることもできます。
配列名を数値のように [ ] で囲みます。

コンソール画面
-->tbl1=3:2:10           //←初期値=3、刻み値=2、最終値=10 最終値は10と一致しないので9になる
 tbl1  =
    3.    5.    7.    9.  

-->tbl2=2:8              //←コロンが1個の場合、刻み値が省略されたと解釈 刻み値=1 が使われる
 tbl2  =
    2.    3.    4.    5.    6.    7.    8.  

-->tbl3=10:-2:0          //←マイナスも使用可能
 tbl3  =
    10.    8.    6.    4.    2.    0.  

-->tbl4=[tbl1,tbl2]      //←配列の連結
 tbl4  =
         column 1 to 7   //←1行に表示できない場合はこのようなメッセージを表示し、複数行で表示する
    3.    5.    7.    9.    2.    3.    4.  //←要素1〜7の表示

         column  8 to 11
    5.    6.    7.    8. //←要素8〜11の表示

配列の演算

配列の全要素に対して一括で計算できます。
コンソール画面
-->a1=tbl1 + 5, a2=tbl1 - 3, a3=tbl1 .* 2, a4=5 ./ tbl1  //←配列の演算
 a1  =
    8.    10.    12.    14.    //←加算結果

 a2  =
    0.    2.    4.    6.       //←減算結果

 a3  =
    6.    10.    14.    18.    //←乗算結果

 a4  =
         column 1 to 3         //←除算結果 分母に配列を持ってきてもOK
    1.6666667    1.    0.7142857  

         column 4
    0.5555556  

-->a5=tbl1 .^ 3                //←もちろん、べき乗も可能
 a5  =
    27.    125.    343.    729. 
加減算は通常の演算子と同じですが、乗除算・べき乗に関しては、通常の演算子の前にピリオドを付けてください。
* → .*
/ → ./
^ → .^

linspace、logspace

配列の別の作り方を紹介します。
linspace(a,b,n) は、a から始まり b で終わるn個の等差数列を作ります。
logspace(a,b,n)は、10^a から始まり 10^b で終わるn個の等比数列を作ります。
コンソール画面
-->a1=linspace(0,10,5)    //←0〜10を等差5分割
 a1  =     0.    2.5    5.    7.5    10.   

-->a2=logspace(0,3,4)    //←10^0〜10^3を等比4分割
 a2  =     1.    10.    100.    1000.