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

Dec. 10, 2019

(広島大学)

フリーソフトを用いた MBD

Dec. 10, 20191 / 31

Matlab とフリーソフト

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

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

フリーソフトを用いた MBD

Dec. 10, 20192 / 31Octave

特徴

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

フリーソフトを用いた MBD

Dec. 10, 20193 / 31

インストール
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

Dec. 10, 20194 / 31

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

Dec. 10, 20195 / 31

Scilab特徴

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

フリーソフトを用いた MBD

Dec. 10, 20196 / 31

インストール

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

Simulink に似た Xcos

(広島大学)

フリーソフトを用いた MBD

Dec. 10, 20197 / 31

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

フリーソフトを用いた MBD

Dec. 10, 20198 / 31

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

3

4

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

exit, start(広島大学)

フリーソフトを用いた MBD

Dec. 10, 20199 / 31ヘルプ

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

フリーソフトを用いた MBD

Dec. 10, 201910 / 31

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)
フリーソフトを用いた MBDDec. 10, 201911 / 31配列の終わり：$ (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

Dec. 10, 201912 / 31

注意-->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

Dec. 10, 201913 / 31同じ関数名で結果の異なるものの一部
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

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

フリーソフトを用いた MBD

Dec. 10, 201915 / 31Xcos
Xcos は GUI を用いてシステムを定義しシミュレーションを行うことができる Scilab アプリケーション

Xcos の起動
Scilab コンソールメニューの「アプリケーション」の「Xcos」
を指定アイコンをクリック

通常，画面左側パレットブラウザ，右側エディタ(広島大学)

フリーソフトを用いた MBD

Dec. 10, 201916 / 31

Xcos と Simulink との主な違い

パレットブラウザー (Simulink ライブラリブラウザー)
アクティベーションの概念
上側にアクティベーション入力を持つブロックが存在
下側にアクティベーション出力を持つブロックが存在

ブロックを右クロックすると Block help (Simulink ダブルクリック)
ブロックの接続方法
引き出し点の作成方法

Modelica が利用可

(広島大学)

フリーソフトを用いた MBD

Dec. 10, 201917 / 31

パレットブラウザ(広島大学)

フリーソフトを用いた MBD

Dec. 10, 201918 / 31

ブロック
入力ポート，出力ポート，アクティベーション入力ポート，アクティベーション出力ポート

Figure: DLRADAPT f(広島大学)

フリーソフトを用いた MBD

Dec. 10, 201919 / 31

エディタ

1

2

パレットブラウザでブロック上で左クリックし，そのままダイアグラムへドラッグしドロップ
パレットブラウザでブロック上で右クリックすると，「追加」のプルダウンメニューがでるのでコピーしたいダイアグラムを選択(広島大学)

フリーソフトを用いた MBD

Dec. 10, 201920 / 31

ブロックパラメータ
ブロックを右クリックすると，パラメータ変更(広島大学)

フリーソフトを用いた MBD

Dec. 10, 201921 / 31

ブロックの接続方法
ポートを右クリックし，緑の□から右クリックしたままドラッグ(広島大学)

フリーソフトを用いた MBD

Dec. 10, 201922 / 31

ブロックの接続方法
接続したいポートまでドラッグし，緑の□でドロップままドラッグ

折点が必要な場所ではクリック (既存の線に折点を追加したい場合はその場でダブルクリック)(広島大学)

フリーソフトを用いた MBD

Dec. 10, 201923 / 31

引き出し点の作成方法 1
引き出し点をとりたい線をマウスで指定すると線が緑に変化

クリックで引き出しを開始し，そのままドラッグしポートでドロップで接続(広島大学)

フリーソフトを用いた MBD

Dec. 10, 201924 / 31必要に応じて整形(広島大学)

フリーソフトを用いた MBDDec. 10, 201925 / 31

引き出し点の作成方法 2
ポートから引き出し点をとりたい線をマウスで指定すると線が緑に変化．クリックで引き出し点を作成．必要に応じて整形．

Figure: 引き出し点の作成方法 2(広島大学)

フリーソフトを用いた MBD

Dec. 10, 201926 / 31

ファイル

ダイアグラムは保存可能
ダイアグラムには拡張子 xcos
「エクスポート」はダイアグラムを指定する画像フォーマッ
トで出力(広島大学)

フリーソフトを用いた MBD

Dec. 10, 201927 / 31

シミュレーション
シミュレーション「開始」
シミュレーション「停止」「設定」シミュレーションの終了時間，誤差，時間間隔(広島大学)

フリーソフトを用いた MBD

Dec. 10, 201928 / 31

コンテキスト

各ブロックから参照できる変数を設定．たとえば，ブロックの共通パラメータとして利用．

(広島大学)

フリーソフトを用いた MBD

Dec. 10, 201929 / 31

スーパーブロック

複数のブロックから構成されたブロック
左クリック・ドラックで範囲を選択
右クリックあるいは編集メニューで「スーパーブロックへのセレクション」(広島大学)

フリーソフトを用いた MBD

Dec. 10, 201930 / 31Modelica

https://www.modelica.org/
非営利国際組織の Modelica 協会
Xcos では Modelica を用いるブロック (Modelica Block)
Fortran または C++ コンパイラ(広島大学)

フリーソフトを用いた MBD

Dec. 10, 201931 / 31