バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/
はじめに
前回までで
テストノードにXCPセットアップ関連のCAPL。
ネットワークノードのControllerにXCP DAQ/STIM関連のCAPL。
を実装したところ。
おおよそ準備は整ったところだが、AUTOSAR-XCP側も修正しておいた方が良いところがちょっとだけある。
登場人物
博識フクロウのフクさん
イラスト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側も修正するのか?
CAPLでXCPの実装も終わったことだし、あとは実際に動かすだけだねー。
いんや。
AUTOSAR-XCP側こと仮想ECUもちょっとだけ修正を入れる。
え?
なんか修正するところあったっけ?
まぁぶっちゃけ修正しなくても動作はするんだけど、
CANoe側のFMUとかCAN送信周期を1msにしてるんで、
仮想ECU側のPID制御の処理周期も1ms周期にしておいた方が良いかな。
って思って。
元々はどのくらいで回してたんだっけ?
10ms周期で回してるね。
10ms周期を1ms周期にするのってなんか大変なイメージがあるんだけど・・・。
今回のコード構成だと割と一撃な予定。
なんだ。
実は制御周期が変わることも想定済みってことだったのか。
想定済みか。
と問われるとあまり想定はしてなかったけど、
制御器の処理周期が変わることってのはプロトタイプ時にはあるあるなんでね。
本能的にそういう風にしてたってだけかな。
(本能に刷り込まれてるのか。それはそれでやべぇな・・・。)
仮想ECU側の修正
で、仮想ECU側の修正だけど、
ecu.cの中を弄るだけでOKなはずだ。
以下の修正を想定している。
- PID制御器の制御周期パラメータdTを0.01から0.001へ
- ecu_t10ms_job()でPID制御器を処理していたのをecu_t1ms_job()へ移動。
あ、そんなもんなんだ。
大した変更じゃないで次回までに修正よろしく。
って、僕がやるの?!
「あ、そんなもんなんだ。」
って言ってたじゃん!
いや、自分でやるってことになるとちょっと事情が変わってくるよう!
まぁ間違ってたら指摘してあげるからやってみな。
つまるところ、呼び出す処理周期を変えるって話とPID制御器が想定している処理周期のパラメータがあるからそこも合わせて修正するってことなんだろうけど・・・。(ぶつくさぶつくさ)
(たまには頭使わせないとな)
まとめ
まとめだよ。
- AUTOSAR-XCP側こと仮想ECUもちょっとだけ修正が必要。
- 修正しなくても動くがCANoe側が1ms駆動なので仮想ECU側も1ms駆動にしたい。
- 修正は以下。
- PID制御器の処理周期を1ms化。
- PID制御器の演算用の想定処理周期パラメータを1ms化。
バックナンバーはこちら。
コメント