「モデルベース開発」って知ってますか?
モデルベース開発(Model-Based Development, 略して MBD)という言葉、知ってますか?
ここ5〜6年くらいでよく耳にするようになった気がします。
というか、私自身は普通に仕事でも関わってますし、そもそも学生時代からモデルベース制御関連の研究とかもやってたので、個人的には身近な話ではあるんですが、世間的にはあまり馴染みのない人も多いんじゃないかと思います。
正直、単語だけ聞いても具体的なイメージがしにくいとは思うので、布教という意味も込めて、簡単にどんなものか書いておこうと思います。私自身の整理という意味も込めて。
そもそも「モデル」とは何か
Model-Based Development (モデルを基にした開発) っていうくらいだから、何か「モデル」っていうものがあって、それを使って「開発」していくんだろうなっていうのは伝わると思うんですが、そもそもこの「モデル」って何ぞやというのがまず疑問になるのではないでしょうか。
モデルというのは、一言で言えば「制御対象(プラント)の振舞いを数式化したもの」。
例えば「自動車のモデル」と言ったら、自動車にどんな入力を加えたらどんな動きをして、どんな出力がされるのか、というのを数式化したものを指します。(下記の記事で導出してるようなものを指します)

開発現場では図式化して扱われる
とはいえ、これを使って、クルマがどんな動きをするのか確かめる(シミュレーションする)のにいちいち数式を書いてゴリゴリ計算するのは面倒極まりないので、開発現場では、simulinkのような、モデルを図式として表せるようなソフトウェアを使っています。
なので、開発現場で「モデル」っていうと、simulinkなどで作られた、「制御対象(プラント)の動きが図式化されたもの」を指すことが多いです。例えば下記のような感じ。

引用元: https://jp.mathworks.com/help/simulink/slref/simulinkeditor.html
これだと、制御対象への入出力が何なのかわかりやすいですし、部品のつながりもわかりやすいので、単に数式で書き表すよりも構造的な理解がしやすくなります。
モデルを使って何をしていくのか
さて、モデルがどんなものかが分かったところで、次は、それをどうやって開発に活かしていくのか、なにが嬉しいのかというところを書いていこうと思います。
制御対象の動きを確認する
モデルを使うことの1番の利点は、制御対象の実物がなくても動きを確認できること。
なので、製品を現物として作る前に、事前に机上で動きをチェックし、おかしな動きにならないか確認するのに使います。
コントローラをモデルで作成する
ここまで、制御対象の振る舞いをモデルとして表現するということに関して書いてきましたが、さらにそれを制御する
コントローラもモデル上で設計することができます。
これができると、モデル上で制御器を作る→制御対象のモデルに繋いで効果確認ということができるので、わざわざ実物を作って、制御用のコンピュータとソフトを用意して、配線を繋いで…みたいなことをやらなくてもPCさえあればコントローラが設計できちゃうわけです。
HILS、MILS、SILS
呪文のような単語を羅列してしまいましたが、それぞれ
- Hardware In the Loop Simulation
- Model In the Loop Simulation
- Software In the Loop Simulation
の略です。
要は、シミュレーションを実施する際、制御対象とコントローラそれぞれに対して、実機とソフト(モデル)どっちを使うのかというので分類しています。
MILS
MILSは、文字通り、コントローラもプラントもモデルを使ってシミュレーションするというもの。
モデルのみでシミュレーションを行うので、PCが有れば実施できるというメリットがあります。
HILS
HILSは、プラントはモデルで、コントローラは実機(実際に製品として使う制御用コンピュータ)という組み合わせでシミュレーションするもの。
コントローラ部分は実際に製品で用いられるものを使うので、製品版の動きを正確に再現できるため、コントローラの動作チェックなどに使われることが多いです。
SILS
SILSは、プラントはモデルで、コントローラはモデルではなく実際に使われるソースコードを用いてシミュレーションするもの。
ちょっとややこしいですが、実際使われるコントローラは、制御用のコンピュータとそれに書き込まれるソフトウェアで構成されています。HILSはどっちも用意するのに対して、SILSはソフトだけは製品版のソフトで、コンピュータは仮想のもの(シミュレーション実施するPC)を使います。
なので、MILS同様にPC一台あればシミュレーションできるという利点と、製品版ソフトの動作確認ができるという利点があります。
MBDをちょっと体感してみたい方へ
色々書いてきましたが、実際にモデルを作ったりしてみるのが1番理解が進むと思います。
とはいえ、simulinkは有料で、かつ個人で買うにはそこそこ値が張りますし、ちょっとハードル高いですよね…。
そこでお勧めしたいのがscilab。無料で使えるソフトながら、MATLABやsimulinkみたいな計算や、モデル作成ができます。
具体的なモデルの作成例とかは、また気が向いたら書いてみようかと。
まとめ
モデルベース開発(MBD)について、どんな事をしているのかざっくり書いてみました。
具体的な開発の流れなんかは、下記のような書籍を読むとよりわかりやすいかもしれません。
また、自動車と制御の関わりについては、こちらの記事でも触れています。(だいぶ前に書いたものですが)
MBDを使って具体的に何を開発するんだ?というイメージの参考になるかもしれません。
コメント