【FMI/FMU】最小構成のMBD事例 第2章 その256【CANoe⑨】

【FMI/FMU】最小構成のMBD事例 第2章 その256【CANoe⑨】 事例
【FMI/FMU】最小構成のMBD事例 第2章 その256【CANoe⑨】

バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/

はじめに

前回はCANoeへのFMUインポートを実施。
FMUのInput、OutputがCANoeのシステム変数と紐づき、そのシステム変数を読み書きすることでFMUを制御できるようである。

今回はCANoe内で生成したネットワークノードの内、指令器からの指令値をCANoeの機能で作り出してみようというお話。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1

エンジニア歴8年の太郎くん

技術者太郎

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1

次は指令器

太郎くん
太郎くん

FMUインポートもできたし、そろそろCAPLを弄ったりする感じかな?

フクさん
フクさん

いんや。
その前の指令器を作ってしまおう。

太郎くん
太郎くん

あれ?
指令器って指令器用のFMUで制御するんじゃなかったっけ?

フクさん
フクさん

それでも良いんだけど、
簡単に指令値を弄れた方が良いじゃん?

太郎くん
太郎くん

まぁそうだね。
指令値を変えるために毎回FMUをOpenModelicaから生成するってのも手間かかり過ぎだもんね。

フクさん
フクさん

というわけでCANoeの機能を使って指令値を作ってしまおうって話になる。

太郎くん
太郎くん

おー!
そんなことができるのか!

フクさん
フクさん

dbcファイルで定義したCANメッセージ上のシグナルを叩くことになるので、
CANoe.ILのありがたさがわかる手法でもあるな。
CAPLも書かないからお手軽。

太郎くん
太郎くん

いいね!
それやろう!

CANoe シグナルジェネレータ機能

フクさん
フクさん

で、今回使うCANoeの機能が「シグナルジェネレータ

太郎くん
太郎くん

どんな機能になるの?

フクさん
フクさん

まぁ名前のまんまだね。
MATLAB/SimulinkSignal Builderっていう好きな波形を定義できるブロックがあったじゃん?

太郎くん
太郎くん

あったね。
あれも指令器で使うことが多かったと思う。

フクさん
フクさん

イメージとしてはそのSignal Builderと一緒。
まぁさまざまなプリセットな波形が用意されてたりしてもうちょっと使い勝手良いかもしれない。

太郎くん
太郎くん

使い方をよろしく。
当然図解付きで。

フクさん
フクさん

じゃ、まずは手順を書き出す。

  • CANoe上部のメニューのシミュレーションを選び、その中のシグナルジェネレータをクリック。
  • 「シグナルジェネレータとシグナル再生」が開くので「+」ボタンをおして制御したいシグナルを選択。
    • 今回の場合は指令値に相当するTargetというシグナルを選択。
  • 「ジェネレータの設定」でプリセットのパターンである「傾斜とパルス」を選択。
  • 「ジェネレータの設定 – 傾斜とパルス」が開き「ジェネレータの設定」を以下にする。
    • 前遅延:200[ms]
    • 上昇:800[ms]
    • 保持:1000[ms]
    • 下降:1000[ms]
    • 後遅延:1000[ms]
    • 値1:0
    • 値2:100
  • 上記設定により0~100の範囲で振れる台形波を出力する指令器になる。
フクさん
フクさん

雰囲気を掴めるよう図解もしておこう。

CANoeシグナルジェネレータで指令値を生成、シミュレーション、シグナルジェネレータ、シグナルジェネレータとシグナル再生、Target、ジェネレータの設定、ジェネレータの設定 - 傾斜とパルス、前遅延:200[ms]、上昇:800[ms]、保持:1000[ms]、下降:1000[ms]、後遅延:1000[ms]、値1:0、値2:100
フクさん
フクさん

これで、CANoeでシミュレーションを開始すると、

ここで指定した指令値がTagetというシグナルに乗って出力されることになる。

太郎くん
太郎くん

CANoe上で設定を弄れるのはたしかに楽だね。
他にもいろいろなパターンがあるから、あとで弄ってみよう。

まとめ

フクさん
フクさん

まとめだよ。

  • FMUの中に指令器もあったが、CANoeから指令値を変えられた方が便利なのでシグナルジェネレータ機能を使用する方針となる。
    • dbcファイルで定義したシグナルに対して自由は波形を載せることが可能な機能。
  • シグナルジェネレータで台形波を作成しTargetシグナルとして出力できるように設定。
    • さまざまは波形を設定可能。

バックナンバーはこちら。

コメント

タイトルとURLをコピーしました