PID

数値計算

MATLAB,Python,Scilab,Julia比較 その76【PID制御⑤】

PID制御離散化式からブロック線図を作成。 同一の数式が埋まっている箇所は同一の信号線を参照できる。 よって、比較的にシンプルになる。 正しさの証明はやはりシミュレーション。 構成図、ブロック線図、ソースコードの3点セットで見て行けばそれほど混乱はしない。(たぶん)
数値計算

MATLAB,Python,Scilab,Julia比較 その75【PID制御④】

PID制御の数式をオイラー法で微分解決して離散化。 一見するとカオスには見えるが、似たような式が並んではいる。 上記がブロック線図にする際にいい感じに効いてくる。(たぶん)
数値計算

MATLAB,Python,Scilab,Julia比較 その74【PID制御③】

PID制御の基本式を確認。 上記の積分を外側に追いやった変形式を確認。 積分を外側に追いやる方がワインドアップ対策がし易いので、こちらが使用されることが多い。
数値計算

MATLAB,Python,Scilab,Julia比較 その73【PID制御②】

これまでの状態空間モデルの構成を確認。 オープンループ制御になっている。 今回の構成を確認。 PID制御でクローズループにする。 角速度ωをフィードバックすることで角速度制御をすることが分かる。
数値計算

MATLAB,Python,Scilab,Julia比較 その72【PID制御①】

DCモータ状態空間モデルを制御すべくPID制御器を追加予定。 上記に至るロードマップ提示。 「PID制御器の離散化」がやや数式まみれになるためちょっと鬼門。 オイラー法による微分解法するだけなので比較的簡単にするつもり。
事例

最小構成のMBD事例 第2章 バックナンバー

Modelicaによるプラント設計。 それをFMUにして他のプラットフォーム(Python等)での再利用。 さらに制御器との様々な接続方法(ASAM XCP等)の事例を紹介していく話。 Modelica用ツールとしてはOpenModelicaを使用する。
事例

【CANoe】最小構成のMBD事例 第2章 その271【仮想ECU連携⑧】

CANoe仮想HILS、AUTOSAR-XCP仮想ECUの実験構成を再確認 上記の動作確認実施。 かなりキレイな波形が取れている。 CANoe環境であれば1msオーダーの応答性が確保可能。 Python環境、CANoe環境を検証プロセスに含めると確保難な設備利用の回数を減らす効果が期待できる。
事例

【CANoe】最小構成のMBD事例 第2章 その270【仮想ECU連携⑦】

AUTOSAR-XCPこと仮想ECU側の修正コード開示。 PID制御器の処理周期修正。 ecu_t10ms_job()関数からecu_t1ms_job()関数へ移動。 PID制御器か内の微分、積分の演算で使用しているΔtを修正。 #define dTを0.001に変更。
事例

【CANoe】最小構成のMBD事例 第2章 その269【仮想ECU連携⑥】

AUTOSAR-XCP側こと仮想ECUもちょっとだけ修正が必要。 修正しなくても動くがCANoe側が1ms駆動なので仮想ECU側も1ms駆動にしたい。 修正は以下。 PID制御器の処理周期を1ms化。 PID制御器の演算用の想定処理周期パラメータを1ms化。
事例

【CANoe】最小構成のMBD事例 第2章 その268【仮想ECU連携⑤】

ネットワークノード(Controller)に追加するXCP DAQ/STIM関連のCAPLコード開示。 CAPLのCAN送信/受信の機能を使って、無理やりXCPを実現。 on message 2でDAQ受信を実現、stimでSTIM送信を実現。 同時にシグナル単位の単位変換も行っている。