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