FreeHILSプロジェクト

今回から、『FreeHILSプロジェクト』の内容を記事にしていきます。今回から始まる一連の記事では、1からHILSシステムを構築します。1からとは、HILSそのものから作るという意味です。HILS作成のための、極めて具体的なノウハウを色々とご提供できるかと思います。

『FreeHILSプロジェクト』とは、HILSを極力フリーのツールで構築して、そのHILSで何か検査装置を作ってみよう!というものです。

freehils01_00

まず、なぜこんなプロジェクトを始めるのか、簡単にご説明します。これまで書いてきた記事によって、私がHILSについて知っている一般論はだいたい書いてしまいました。残るは、個々の分野への適用事例か、具体的なHILSの機能の話だけです。

具体的な話をする時には、読んでいただいている方と同じHILSを使うのが望ましい形です。しかし、HILSは安いものではないので、ひょいと買いそろえる訳にもいきません。そうであれば、フリーのツールを寄せ集めて動くものを作り、この記事を読んでくださっている方にも、すぐに試せるような環境を提供したい!とそう考えました。

もう1点、HILSに関する情報をWebでいろいろ探しまわったのですが、『こうすればうまくいく』だの『HILSってこんなものですよ』という話は多少は転がっています。しかし、『こんな感じで失敗した!痛い目を見た!』という話は見受けられませんでした。何かを学ぶには、成功例と失敗例の両方が必要だ、というのが個人的な信念です。ですから、私が人柱となって失敗例も色々と提供できたらいいかな?という思いもあります。

これから作るのは、全てオープンソースで賄う無償のHILSです。これをFreeHILSと呼ぶ事にします。もともとのツールを組み合わせただけでは多分満足いくHILSにはなりません。そこで、いろいろと機能追加をしていく事になると思います。その成果もすべてオープンソースかつ無償でご提供します。

こんな感じで、FreeHILSプロジェクトの開始から完了までのプロセスを、記事にしていく事にします。ただし、このプロジェクトとは別に、Simulink関連のノウハウで書いておきたいものも沢山あります。気が向いたら、Simulink関連ノウハウの方に浮気する事もあるかと思います。

HILSシステム構築フェーズ

まずは、第一フェーズである『HILSシステム構築フェーズ』についてご説明します。この章を読んでいただくと、これから一体全体何をしようとしているのか?の全体像がつかめるかと思います。

このフェーズにおける目標は3つです。

・HILSを構築しながら、ノウハウの蓄積を行う
・極力フリーにして、だれでも簡単に追試できるようにする
・実際に検査装置として使っても差し支えのない性能を目指す

それぞれについてご説明します。

【HILSを構築しながら、ノウハウの蓄積を行う】

とにかく最小限の時間でHILSを構築します。そのため、フリーのツールを組み合わせてシステムを構築します。しかし、だからといって『動けばそれで良し』とは考えません。なぜそれは動くのか?どういう仕組みになっているのか?といった事をしっかり調べてノウハウ化していきます。それは、FreeHILSプロジェクトの目的が、システム構築そのものではなく、システム構築から得られるノウハウの蓄積にあるからです。そのため、優先順位を「ノウハウの蓄積」>「作業スピード」とします。

【極力フリーにして、だれでも簡単に追試できるようにする】

簡単に追試できない理由があるとしたら、それは『お金』と『手間』でしょう。

まず第一の障害は『お金』です。そこで、Scilab/ Scicosというフリーのツールをベースとして、リアルタイムLinux上でシミュレーション実行してやる事を考えます。さすがに、PCとかI/Oボードについては、タダという訳にはいきません。しかし、I/Oボードなども高いものは極力つかわず、目標予算20万円以下という所でやってみます。20万円以下であれば、勉強代としては悪くないレベルではないでしょうか。

・PC ⇒ 遊んでるやつがあれば、それを使いましょう
・I/Oボード、コネクタ、端子台 ⇒ 20万円以下を目標にする
・FreeHILS ⇒ 無料!

freehils01_04

もう1つの障害として、『手間』があります。フリーのツールは、結構あちこちでバラバラに開発されています。1つのシステムを構築するのに、あっちからダウンロードして、こっちからダウンロードして、環境を色々直して・・・という事は大変な手間です。この事だけでもヤル気がそがれてしまいます。そこで、なるべく簡単に環境構築が出来るよう、独自のインストーラを用意します。(当然のことながら、個々のツールのライセンスには従わないといけません。ですから、これはライセンスに違反しない限りにおいて極力そうする、というレベルです。)

【実際に検査装置として使っても差し支えのない性能を目指す】

どうせ作るのですから、実際に使ってもいいかなと思えるレベルにしたいものです。

高性能HILSに仕上げるような時間はたぶん取れません。(どこかの大金持ちが、スポンサーになってくれれば別ですが!)。ですから、低価格HILSとしてなら使ってもいいかな?というレベルを目指してみます。

たいがいのHILSにありそうな機能として、次のようなものを目指します。

・モデルを作成できる
・ボタン1つでコンパイル、リアルタイムLinuxへのロード、が出来る (めんどくさい手順があると、使いたくなくなりますからね)
・ハードリアルタイムでシミュレーションが出来る
・リアルタイムノード側で、ファイルの読み書きが出来る (実機データを再生したり、シミュレーション結果をロギングしたりするためには、必須!)
・AIO、DIO、CANなどが利用できる
・シミュレーションをGUI表示できる

ぱっと思いつくのはこれくらいです。

ECUの検証フェーズ

次に、第二フェーズである『ECU検証フェーズ』です。このフェーズでどんな事をするかは、おいおい考える事とします。(つまり、まだ何も考えていません)

とりあえず、リアルタイムLinux上でプラントモデルを動かして、マイコンとやりとりをするような、何かをします。

freehils01_01

無償ツールを使う意味とは?

FreeHILSにおいて『無償ツールを使う』というだけで、なんだこれじゃあ自分の仕事には使えないじゃないか!と思われる方も見えるでしょう。しかし、これからやろうとしている事は基本的に有償ツールでも共通のはずです。ですから、ノウハウだけは流用が可能なはずです。

あともう1点、無償ツールが必ずしも仕事に使えないとは限りません。無償ツールと有償ツールをうまく使い分ければ、開発工程のコストダウンが出来ます。この章では、そのために考えるべき事についてお話します。

まず、HILSとして実際に使われているシステムは、ほとんど全てMATLAB/Simulinkであったり、その他のプロプライエタリ製品であったりします。

MATLAB/Simulinkというのは、決して安いツールではありません。私も、MATLAB/Simimulinkのメンテナンス費として、毎年それなりのお金を払っています。ユーザーがちゃんとお金を払っているということは、The MathWorksではそのお金をベースに毎年MATLAB/Simulinkの機能を良くしていける、という事でもあります。サポートも比較的ちゃんとしていますし、企業で使うにはやはりこれがスタンダードになるのもうなづけます。

一方、Scicosのようなフリーのツールでは、そういう事が出来ません。ただしその代わり、ソースコードが公開されています。動きが気に入らないなら、自分で修正してしまえばいいのです。自分で修正する気があるのであれば、プロプライエタリ製品よりも有利な点もあるでしょう。

これらは結局、責任範囲をどこで線引きするか?という話です。エンドユーザーがツールをバリバリいじりたいなら、MATLABのようなプロプライエタリ製品を買わないといけません。そうでないと、なにかあった時にだれも助けてくれません。

freehils01_02

一方で、中身についてはすべて業者にお任せ!という考え方も出来ます。シミュレーションツールではなく、1つの検査装置としてシステムを作ってもらうと考えるわけです。この場合、中身が何で出来ていようがユーザー側の知った事ではありません。とにかく検査装置として動くものを用意する、というのが業者の責任です。したがって、検査装置としておかしな動きをしたら、業者に責任をとってもらえます。この方式がおいしいのは、有償ツールがない分だけトータルコストが抑えられるという点です。

freehils01_03

この仕組みは、業者にとってもおいしいものです。有償ツールに払うお金にはサポート費も含まれています。このサポート費分を、業者の収入とする事ができます。

ただし、ユーザーがそれをベースに、Scicosを使って好きなモデルを作る、という事はNGです。(やってもいいけど、自己責任で!)。というのは、業者の側では、Scicosの(たぶんあるであろう)不具合をうまく避けて、なんとかうごくシステムを作っているわけです。『どんなモデルを使って、どんな風にしても必ず正しく動く』と言う事は保証できません。もしもその保証が欲しいなら、ちゃんと有償ツールをベースにシステムを作るべきです。

まとめますと、次のようになります。

・モデルをバリバリいじって、検査装置を進化させていきたい場合
——–>ちゃんとお金を払って、有償ツールを使い、信頼性を確保する
・とにかく検査装置として動けばいい、中身はすべて業者にお任せ!という場合
——–>無償ツールをベースに業者さんに作ってもらい、トータルコストを削減する
・(おまけ)自社で検査装置をすべてコントロールしたい
——–>無償ツールをベースに自社で改良を加え、全てをコントロール下に置く

言い訳。

2点ほど、あらかじめ言い訳を。

まず、これからどうやってHILSを作ろうか?と考えるわけですが、うまくいく確証はどこにもありません。というのも、基本的に0からHILSを作り上げる時間はどこにもありません。ですから、フリーのツールを組み合わせて、必要最小限の時間でHILSを構築します。たぶん出来ると思っているのですが、ひょっとして何らかの壁にあたってとん挫する可能性もあります。ダメならダメで、なにがどうダメだったのかをこのブログ上でまとめます。それならそれで、1つのノウハウになるんじゃないかと考えています。したがって、最後まで完成するという保証はどこにもありませんのでご了承ください。

もう1点ですが、このブログの記事は、基本的に休みの日を削ってやっていて、いわば趣味のようなものです。大手ベンダーさんが出しているようなデモは、あれは給料をもらって作っているわけです。一方、わたしはこのブログを書いたからと言って1円ももらえるわけではありません。そのため、常に仕事優先で作業をしていて、ブログの記事書き作業は優先順位が低いです。その結果、作業スピードはかなり遅々としたものになると思います。まぁ、あまり期待しないでお待ち下さい。

次回

今回は、FreeHILSに関する要求項目をまとめました。しかし、具体的に何をどうして良いのやらさっぱりわかりません。そこで、まずは下調べを行い、関連技術をざっくりサーベイすることにします。