【仮想ECU】最小構成のMBD事例 第2章 その210【PID制御①】

【仮想ECU】最小構成のMBD事例 第2章 その210【PID制御①】 事例
【仮想ECU】最小構成のMBD事例 第2章 その210【PID制御①】

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

はじめに

AUTOSAR-XCPによるSTIMの実現を確認できた。
しかし、現所はXCPのプロトコルが実装されているだけで、
ECUっぽい制御は入っていない。

ECUっぽいXCPスレーブである仮想ECUとして仕上げる必要がある。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラスト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

次にやること

太郎くん
太郎くん

AUTOSAR-XCPでSTIMが出来たことだし、
HILSもどきとしてはおおよそ完成なんじゃない?

フクさん
フクさん

まぁHILS側としていい線まで来たが、
そもそもECU側の制御がXCPスレーブ側に居ないだよね。

太郎くん
太郎くん

あれ?
制御というとPID制御がFMUの中に入ってたから
それを使うのかとおもってたんだけど?

フクさん
フクさん

FMUはHILS側で制御対象を実現することに使用するが、
制御としてはECU側に居ないと現実に即していない

フクさん
フクさん

以前、見せた絵ではあるが、以下を実現するにはECU側にPID制御器を入れる必要がある。

HILSとXCPの関係、FMU、XCP、センサ入力、f(x)、アクチュエータ出力
太郎くん
太郎くん

と、いうことは前回まで使用していたAUTOSAR-XCPにPID制御を埋め込む必要があると・・・。

使用するPID制御器

フクさん
フクさん

使用するPID制御器だが、
過去に作ったものをそのまま流用しよう。

太郎くん
太郎くん

PID制御は確かに過去何回かやった記憶はあるが・・・。
やったという記憶しかないな・・・。

フクさん
フクさん

まぁ代表的な記事としては以下を参照かな。

太郎くん
太郎くん

あ、そうそう。
こんか感じでやってた。

PIDを実装する箇所

太郎くん
太郎くん

で、PIDのコードとしてはどこに入れ込むの?

フクさん
フクさん

AUTOSAR-XCPにECUの処理周期として、
1ms、10ms、100ms、200msをすでに用意してある。
今回のPID制御としては10msの処理周期に入れ込む感じになるかな。

太郎くん
太郎くん

なるほど。
すでにどこに入れ込むかも想定ずみだったのね。

動作確認方法

太郎くん
太郎くん

PID制御器をAUTOSAR-XCPに入れ込むのは分かったけど、
動作確認はどうするの?
以前のやり方だとSimulinkのS-Functionにしたりとかしてたけど。

フクさん
フクさん

以前やった方式はS-FunctionはPID制御器のコードとSimulinkモデルの振る舞いの一致性を評価する目的だった。
今回はソースコードレベルであれば、問題無いことが保証されてるから、
XCP経由で入出力を指定して、PID制御器の特性が見て折れればOK。
って感じでしてしまおうかと思ってる。

太郎くん
太郎くん

そうか。
XCP経由でRAM値の読み書きができるから、
そういった動作確認の仕方もできるのか。

フクさん
フクさん

本当はちゃんとしたプラントモデルと繋ぎたいが
まずは仮想ECU側の正しさを証明するため、
テスト用のデータパターンを入れて見て、
目標値に対して追従してそうかだけを評価しよう。

まとめ

フクさん
フクさん

まとめだよ。

  • 仮想ECUを作るべくAUTOSAR-XCPに制御器を組み込む必要がある。
    • PID制御器は過去記事で作ったものを流用予定。
  • 制御周期はとりあえず、10msあたりにしておく。
  • PID制御器の動作確認はXCP経由で入出力を制御することで実施する予定。
    • PID制御器自体のソースコードは以前、SILS等で確認済み。

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

コメント

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