フリーソフトを用いた MBD
大野修一
広島大学

December 11, 2018

(広島大学)

フリーソフトを用いた MBD

December 11, 20181 / 18

Matlab とフリーソフト

Matlab (1984 ver.1.0, 現在 ver. 9.5)
https://jp.mathworks.com/products/matlab.html
https://ja.wikipedia.org/wiki/MATLABGNU Octave (1993 ver. 1.0 , 現在 version 4.4.1)
https://www.gnu.org/software/octave/
https://ja.wikipedia.org/wiki/GNU Octave

Scilab (1994 ver.1.1, 現在 ver. 6.0.1)
http://www.scilab.org/
https://ja.wikipedia.org/wiki/Scilab(広島大学)

フリーソフトを用いた MBD

December 11, 20182 / 18Octave

特徴

Matlab との互換
Toolbox の関数を部分的に実装
help は英語
Simulink に対応するものは無(広島大学)

フリーソフトを用いた MBD

December 11, 20183 / 18

インストール
jave runtime environment が必要
https://java.com/ja/download/
ホームページよりダウンロードしてインストール
https://www.gnu.org/software/octave/
パッケージ (toolbox)
octave forge https://octave.sourceforge.io/
pkg install -forge control % インストール
pkg load control % control のロード
pkg load all% 全てのロード
ロードのコマンドを startup.m に書けば起動時に自動的にロード(広島大学)

フリーソフトを用いた MBD

December 11, 20184 / 18

Matlab との主な違い
https://wiki.octave.org/FAQ#How is Octave diﬀerent from Matlab.3F
行頭に % の他に # で、その行をコメント++, --, +=, *=, /= などの C 言語の演算子^ だけでなく **~= だけでなく !=’ の他に、" を使っても文字列を定義
xx ... end だけでなく xx ... endxx
たとえば if ... endif， for ... endfor
Line continuation
コマンドラインの! は，文字列
図をセーブしたときの拡張子 .fig ではなく .ofig(広島大学)

フリーソフトを用いた MBD

December 11, 2018

5 / 18

Scilab特徴

Matlab との非互換
Matlab へのコンバータがあるが完全ではない
独自の Toolbox
help の主要部分は日本語化(広島大学)

フリーソフトを用いた MBD

December 11, 20186 / 18

インストール

ホームページよりダウンロードしてインストール
http://www.scilab.org/
モジュール管理 (ATOMS)

Simulink に似た Xcos

(広島大学)

フリーソフトを用いた MBD

December 11, 20187 / 18

起動と初期設定(起動時に [Scilab 5] が書いてあるロゴが消えない場合は再起動)
コンソール
プロンプト
コマンドラインスタートアップファイル
SCIHOME/.scilab および SCIHOME/scilab.ini は, (もし存在する場合,) ファイル SCI/etc/scilab.start
SCIHOME と SCI
1
2
3
4
5
6pwd
cd SCIHOME
ls
cd SCI
pwd, ls
cd SCIHOME(広島大学)

フリーソフトを用いた MBD

December 11, 20188 / 18

エディタ SciNotes
Windows で SciNotes の日本語文字化けは，たとえば「設定」の「フォントを指定」で日本語のフォントを指定
コメント
スクリプトの拡張子 sce，関数のの拡張子 sci
12

3

4
5

「アプリケーション」の SciNotes「ワーキングディレクトリ」(Working directories) の「ディレクトリを追加」(Add a directory)「ファイルをオープン」(Open file in)，「ファイルをセーブ」(Save file in)
フォルダは作成できるが削除できない。

exit, start
scilab.ini の作成(広島大学)

フリーソフトを用いた MBD

December 11, 2018

9 / 18ヘルプ

主要部分は日本語化(広島大学)

フリーソフトを用いた MBD

December 11, 201810 / 18

Scilab と Matlab との違い
特殊変数 (4.4 節：p. 37〜) は変更不可
Scilab の定義済み定数名は，通常，% で始まります．定義済み
定数を表 1 に示します．
Table: 特殊定数
変数%eps%inf%nan%i%pi%e%t(%T)%f(%F)(広島大学)

意味
1 + %eps = 1 となる最も大きい値
無限大値なし√虚数単位 −1
円周率 π = 3.1415927 · · ·
ネイピア数 (自然対数の底)，e = 2.7182818 · · ·真 (true)
偽 (false)
フリーソフトを用いた MBD

December 11, 201811 / 18

配列の終わり：$ (p.55) と end(Matlab)-->A=[1,2,3;4,5,6;7,8,9]
A =!
1.
2.
3. !
!
4.
5.
6. !
!
7.
8.
9. !
-->A($)ans =9.
変数の入れ替え

x=1;y=2;[x,y]=(y,x)(広島大学)

フリーソフトを用いた MBD

December 11, 201812 / 18

注意-->x= 1./[1 2 3]x =0.0714286
0.1428571
0.2142857
1-->x=1 ./[1 2 3]x =1. 0.5 0.3333333(広島大学)

フリーソフトを用いた MBD

December 11, 201813 / 18同じ関数名で結果の異なるものの一部
int8
max min (p.81)-->max(A),max(A,’c’),max(A,’r’)
ans =
9.
ans =
3.
6.
9.
ans =
7.
8.
9.
gsort
ﬀt

(広島大学)

フリーソフトを用いた MBD

December 11, 201814 / 18

図はデフォルトで上書き (p.124)
図を上書きしないモードに変更するには-->da=gda();da.auto_clear = ’on’;とします．逆に，上書きモードに変更するには-->da=gda();da.auto_clear = ’off’;とします．なお，上の da は変数であり，別の名前でもかまいません．
新しい Figure Window は，scf(n)(広島大学)

フリーソフトを用いた MBD

December 11, 201815 / 18

スクリプトと関数

function [y1,y2]=Test1(x1,x2)
y1=x1+x2
y2=x1-x2
endfunction
この関数は-->[y1,y2]=Test1(1,1)
y2 =0.
y1 =2.

(広島大学)

フリーソフトを用いた MBD

December 11, 201816 / 18

制御関連

Demo : CASD Inverted pendulum (PID は動かない)
Scilab 入門―フリーソフトで始める数値シミュレーション第13 章 (p.161〜)
システムの定義
システムの応答
ボード線図
ナイキスト線図(広島大学)

フリーソフトを用いた MBD

December 11, 201817 / 18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)(広島大学)

フリーソフトを用いた MBD

December 11, 201818 / 18