モデルベース開発超入門
モデルベース開発って聞いた事があるけど、なんだか難しそう、とか、時間とお金がかかる事なんじゃないか、とか思っている方、多いと思います。
はい。その通りです。
そうはいっても、我々も、モデルベース開発の環境構築を進めていくうちに、特にデジタル電源設計のモデルベース開発は非常に高付加価値であるということを実感してきました。
電源設計だからこそやりやすい事、そして、電源設計だからやりにくい事があるという事が、10年間電源のモデルベース開発と向き合ってきて分かってきました。
時間とお金をかけても、やりたいモデルベース開発
それはなぜなのか。
モデルベース開発の記事、第一弾は超入門「モデルベース開発とは」についてお話します。
一連の記事では、モデルベース開発において、モデルベース開発で何ができるのか、どのように利用すれば時間とお金が(すごく)かからないかということをお伝えできればと思っています。
目次
何のためにモデルベース開発するのか
モデルベース開発の目的
モデルベース開発、その言葉は最近では当たり前のことになってきました。
特にデジタル制御を行う機器の開発現場でも多く使われるその手法は、開発効率を向上し、資産化を進め、技術の継承と学習速度の向上を促進します。
もう答えを言ってしまいましたが、筆者の考えるモデルベース開発の目的は
「開発効率向上」、「資産化」、「技術の継承、習得」です。
現在最も多く使われている分野としては、自動車業界です。
その背景としては、排ガス規制や、高度な機能向上による急速なデジタル化によって自動車内のECUが大量に増加し、ソフトウエア開発、組み込み開発にかかる工数が膨大な量に増えていった事が一つの要因です。
車の窓を、ハンドルでクルクル回したり、サイドミラーを手で畳んでいた頃が懐かしいです。
今や、自動車のソフトウエア開発は、一昔前とは比べ物にならないほど複雑化しています。そして、最近では高度な安全機能や、自動運転など、まだまだソフトウエアの領域は増えていきます。
このような開発の中では、当然、「開発効率向上」、「資産化」、「技術の継承、習得」を一度に行いながら、開発対象に合わせて環境自体も進歩させていく必要があるのです。
開発環境が、経営と一体となって良い製品をタイムリーに世の中に発信していく
アジャイルやDevOpsなどと同様に、モデルベース開発も戦略的な環境構築と言えるでしょう。
でも現場ではどう使う?
大きな枠組みでビジネスまでとらえればそうかもしれませんが、そうはいっても、実際は、
天の一声で変わる仕様に対して、迅速に対応する
あるいは、
説明を求められたときに合理的に回答する
現場に寄り添った使い方が、とにかく始めやすいのではないでしょうか。
では、モデルとは何か
この記事では、モデルはMATLAB/Simulinkを使って記述するものを単にモデルと呼びますが、まずは、モデルベース開発で一般的にモデルと呼ばれるものについて解説しましょう。
一般的にモデルとは
モデルベース開発におけるモデルとは一体なんでしょうか?
モデルベース開発に必要なモデルとは
「ある目的のために適切な方法で表現されたもの」
と筆者は定義しています。
(ここではあえて、MATLAB/Simulinkを使ったモデルベースに限定せず、MBD, MDDを含んでモデルベースと言っています)
とかく、モデルベース開発は、開発を円滑に進められるという事が目的で、モデリングはその手段です。
どのような手法でどのようにモデリングするかはモデラーの腕の見せ所ではあり、目的に応じて適切な方法でモデリングを行う必要があります。
そして、開発対象に必要なモデルとして有益なものであればあるほど開発効率向上、資産化、継承は行いやすくなります。
モデルの仲間を以下に示します。
いわゆる数式や状態遷移などは、MATLAB/Simulinkが得意とする範囲です。特にSimuilnkユーザーが単にモデルという場合、このことを指す事が多いです。
次に構造モデル、状態遷移モデル、振る舞いモデルについて、これはUMLやSysMLなどのモデリング言語を用いて表されたもののことを言います。数式モデルと異なり、シミュレーションして答えを出してくれるというものではありませんので、開発に関わる方々がモデリング言語のことを理解している必要があります。
数式によるシミュレーションは、1Dシミュレーションなどと言われますが、これに対して3Dモデルを作成し、有限要素法(FEM)などを使ってシミュレーションを行う方法もあります。これは、機械系や磁気、熱、流体などの解析によく用いられます。
また、全員で意思疎通をするための図や図面などもモデルと呼んで良いでしょう。
モデルと呼べないものとしては、自然言語による仕様書などがそれにあたります。解釈が一様ではなくなってしまうことや、表現のルールが明確でないという事が問題になります。
さて、デジタル制御では、この数式によるモデリングを非常に上手にできたこと、それがモデルベース開発が自動車業界で非常に多く広まった理由だと思います。
デジタル制御では良いモデルが作りやすい、といってよいでしょう。
なぜかについては、次回以降に記事にしていきたいと思います。
また、良いモデルとは何でしょうか。それも次回以降に、
モデルはどう使う?
さて、MATLAB/Simulinkや回路シミュレータなどで扱うシミュレーションモデルについて話を戻します。
これらのシミュレータによる開発環境が、一番効果を上げやすい対象として、制御系の設計があります。
なぜでしょうか。
制御系設計で課題となるのは、制御対象が無いと設計が難しいということです。
たとえばモーター制御であれば、モーターが目の前にないと制御系設計が大変だということはお分かりいただけると思います。制御設計を全て想像の中だけでやらなければいけなくなり、熟練者しか立ち向かえなくなります。
しかし、仮に実機が目の前にあったとしても、それをいきなり制御するのは恐ろしいはずです。ちょっと制御を間違えてしまったらすぐに壊れてしまう可能性があるのですから。
電気の世界は見えない世界、オシロの波形と、音と臭いを頼りに(おおげさですが)五感を研ぎ澄ませて開発しなければなりません。
そして、デジタル制御では、ソフトウエアのバグが直接的に装置の故障につながります。
そんな中で実験するのは、エンジニアも気が気でないはずです。
そう、ここで、モデルによるシミュレーション環境があれば、実装前のソフトウエアをじっくりテストし、仕様通り動作するか徹底的に確認することができ、故障の確立は格段に下げることができるのです。
高価な部品や試作機を、壊し続けるということはなくなるでしょう。
難しいのはプラントモデリング
モデリングは制御系設計と、制御対象の設計の両方を行います。
ここで、制御系をコントローラモデル、制御対象をプラントモデルと言いますが、これらの両方を作ることで、フィードバック制御を含むシミュレーションを行うことができるようになります。
ここで、プラントモデルをどう作るかですが、図の様に大まかに3つの方法があります。
物理モデリングとして、状態方程式などを用いて表されたモデル。
統計情報を用いてモデリングされた同定モデル。Look up tableなどを使って実験データなどからシステム同定し、シミュレーションを行います。
最後に、専用ツールによるモデリング
弊社の製品でもある、パワエレ向け高速回路シミュレータScideam(サイディーム)もこのプラントモデルを作るためのシミュレータです。
モデルベース開発は、このプラントモデルを如何に上手に作ることができるかで、シミュレーションが役に立つかが決まるといっても過言ではありません。
特にデジタル電源の場合は、ソフトウエアの動作周期と、スイッチング素子の動作周期で大きな差がある場合があり、また、共振やソフトスイッチング技術など、プラントモデルを作ることが大変な対象であるため、設計に時間をかけすぎないよう専用ツールを使うことをお勧めします。
いずれにせよ、設計対象とって最も適切な方法を選び、環境構築をすることがとても重要です。
プラントモデルを上手にモデリングし、徹底的にコントローラモデルを試験することで、ソフトのバグは無くなります。
そこにあるのは、要求仕様の欠陥であり、早く要求仕様の間違いに気づくことができるのです。
遠回りに見えるかもしれませんが、急がば回れです。
シミュレーションで動いていないソフトは、実機に入れても動くことは無いのですから
まとめ
今回、モデルベース開発の入門ということで、一般的に言われていることが多かったかもしれませんが、
モデルとその使い方についてざっくりとお話いたしました。
書きたいことが多く、デジタル電源までたどり着けませんでしたが、次回以降は、デジタル電源について、なぜデジタル電源がモデルベース開発しやすいか、デジタル電源制御のためのプラントモデリング、モデルベース開発とVプロセス、自動コード生成などなどについて書いていこうと思います。
なお、デジタル電源の概要について知りたい方は以下のまとめをご覧ください。
▼関連投稿 ーデジタル電源まとめー
https://www.smartenergy.co.jp/technical-blog/tag/digital-control/