今回は、FreeHILSに使えそうなパーツについて、ざっくりと情報を集めてみました。「HILSシステムのコストダウンの可能性検討」をされている方や、「モデルベース開発に関する情報は何でも集めて、シミュレーション関連に強くなりたい!」と考えていらっしゃる方にとっては、面白い話になるかと思います。
さて、Scicosと、ScicosでHILSっぽい処理が出来るようにしてあるものが、既に存在するという事は知っていました。ここにあるPDFファイルの中で、Scicosを使ってリアルタイムシミュレーションをするための一連の流れがレポートされているからです。(しかし、FreeHILSの要件を全て満たしてくれるかどうかは分かりません。)
ですが、レポートは流し読みしただけで、具体的なツールチェーンについてはまだ読んでいませんでした。ですから、具体的にどんなモジュールが必要で、それらのライセンスはどうなっているのか?という所を調べることにしました。
理想の構成は、こうでした。一般的なHILSはこんな感じが多いです。

しかし、既存のツールを組み合わせると、こうなってしまいそうです。Linux上でGUIを操作しないといけない、というのがやっかいです。

FreeHILSは、Scicosと、あとRTAI-Labというツールがあればベースが出来そうです。しかし、このRTAI-LabがLinuxベースなのです。ですが、今のところは気にしない事にしましょう。
続きを読む
今回から、『FreeHILSプロジェクト』の内容を記事にしていきます。今回から始まる一連の記事では、1からHILSシステムを構築します。1からとは、HILSそのものから作るという意味です。HILS作成のための、極めて具体的なノウハウを色々とご提供できるかと思います。
『FreeHILSプロジェクト』とは、HILSを極力フリーのツールで構築して、そのHILSで何か検査装置を作ってみよう!というものです。

まず、なぜこんなプロジェクトを始めるのか、簡単にご説明します。これまで書いてきた記事によって、私がHILSについて知っている一般論はだいたい書いてしまいました。残るは、個々の分野への適用事例か、具体的なHILSの機能の話だけです。
具体的な話をする時には、読んでいただいている方と同じHILSを使うのが望ましい形です。しかし、HILSは安いものではないので、ひょいと買いそろえる訳にもいきません。そうであれば、フリーのツールを寄せ集めて動くものを作り、この記事を読んでくださっている方にも、すぐに試せるような環境を提供したい!とそう考えました。
もう1点、HILSに関する情報をWebでいろいろ探しまわったのですが、『こうすればうまくいく』だの『HILSってこんなものですよ』という話は多少は転がっています。しかし、『こんな感じで失敗した!痛い目を見た!』という話は見受けられませんでした。何かを学ぶには、成功例と失敗例の両方が必要だ、というのが個人的な信念です。ですから、私が人柱となって失敗例も色々と提供できたらいいかな?という思いもあります。
これから作るのは、全てオープンソースで賄う無償のHILSです。これをFreeHILSと呼ぶ事にします。もともとのツールを組み合わせただけでは多分満足いくHILSにはなりません。そこで、いろいろと機能追加をしていく事になると思います。その成果もすべてオープンソースかつ無償でご提供します。
こんな感じで、FreeHILSプロジェクトの開始から完了までのプロセスを、記事にしていく事にします。ただし、このプロジェクトとは別に、Simulink関連のノウハウで書いておきたいものも沢山あります。気が向いたら、Simulink関連ノウハウの方に浮気する事もあるかと思います。
続きを読む
今回は、FPGAによるHILS高速化についてご説明します。FPGAを使う事で何ができるのか?を理解する事で、HILSを構築する際の、技術的な引き出しが1つ増える事になります。
さて、HILSの高速化方法ですが、CPUを使った演算をする限りは、もう限界に達してしまいました。これ以上高速化するには、FPGAに頼るしかありません。(FPGAって何?)

CPUは、クロックは数GHzととても高速です。それに、ソフトウェアも比較的柔軟に書く事ができます。しかし残念ながら、処理を行うのは逐次実行です。1つ1つ処理していかないといけません。
一方、FPGAというものがあります。これは、クロックは数百MHzですし(もちろん、もっと高速なものもありますが)、処理内容を柔軟に書く事も難しいです。そのかわり、処理を並列実行できます。
この並列実行という性質のおかげで、ものすごく高速に処理ができます。たとえばモデルを1マイクロ秒ステップで動かす、というのは、CPUには無理です。しかし、FPGAであればこれが可能です。
ただし、FPGAは高速に実行できる一方で、固定小数点しか扱えません。浮動小数点を扱えない事もないのですが、そうしてしまうとスピードが犠牲になってしまいます。
このように、FPGAは素晴らしいものではありますが、簡単にCPUを置き換えられるようなものではありません。
そこで今回は、FPGAをHILSに使用するための原理をご紹介します。
続きを読む
前回は、マルチレートモデルを作る事によって並列処理を行うための方法をご紹介しました。
今回は、それをマルチノードという仕組みを使って行う方法をご紹介します。マルチノードシステムを組むのは、なんとかしてHILSを高速化するためです。なんとかして高速化するためには、マルチノードの原理を理解しておくことが重要です。原理を理解すれば、マルチノードのシステムを組む際に、何に注意すれば良いのかが分かるようになります。
さて、マルチノードHILSの基本的な考え方は、『複数のノードを使って処理を分散しよう』というものです。

ノードが複数あれば、モデルの演算や、I/O処理などの負荷を分散させる事ができます。マルチノードシステムとは、これらを並列実行することにより、トータルでの実行速度を稼ごう、というアイデアです。
続きを読む