simulink

事例

【上流検証】最小構成のモデルベース開発事例 その49【Bypass⑮】

CANapeでは計測対象の変数以外にCANape内でのみ読み書き可能なグローバル変数が定義できる。 関数エディタから追加編集可能。 SimulinkにCANapeIOブロックを繋ぐことでCANapeと連携可能なDLLが作成可能。 CANoeと異なり、CANapeIOの変数名はCANapeと合わせる必要はない。 しかし、合わせておいた方が楽ではある。 グローバル変数をモニタすることが可能。 SimulinkDLLの動作確認だけであれば、グローバル変数で見た方が問題が起きた際の実機との切り分けがし易い。
事例

【上流検証】最小構成のモデルベース開発事例 その32【ネットワークRAPID⑤】

今回は、システム変数の定義と出力の仕方の話になる。 SimulinkモデルからCANoeのシステム変数に出力する場合はSystemVriableOutputブロックを使用する。CANoeでシステム変数を定義できる。システム変数の型は、扱うシグナルに近いものを選択しておいた方が良い。
事例

【上流検証】最小構成のモデルベース開発事例 その31【ネットワークRAPID④】

SimulinkDLLの出力を2つのシグナルに渡すには2つの手法がある。 Signal Outputブロックを2つ使用。 システム変数に書き込んでからCAPLで各シグナルへ分配。 複数の回線のシグナルを扱うにはゲートウェイノードを定義する必要がある。 SimulinkDLL、CAPLのどっちを使うにしても同様の対応が必要。
事例

【上流検証】最小構成のモデルベース開発事例 その30【ネットワークRAPID③】

前回はMicroAutoBoxで使用されていたSimulinkモデルを取得した。 このSimulinkモデルの主要ロジックだけを抜き出して単体テストをしてみる。 Simulinkモデルだけでは正しい保証は困難。 テストパターンとテスト結果もセットであれば、最も正しい仕様書になる可能性は高い。
事例

【上流検証】最小構成のモデルベース開発事例 その29【ネットワークRAPID②】

正直言うとまずはMicroAutoBox使った方が良い。 すでに精度や性能の見積が出来ているのであれば、費用対効果を意識しだしても良い。 プログラマブルな振る舞いの場合、MATLAB Functionブロックを使用した方が楽な場合がある。 可能であれば、StateFlowの利用も検討しておくと状態の見える化が出来て吉。
事例

【上流検証】最小構成のモデルベース開発事例 その27【ネットワークMILS⑥】

前回でCANoeのノードに組み込むSimulinkDLLを作成した。 今回こそは動かす! dbc、モデル生成ウィザード、SimulinkDLL、シミュレーションまでの流れを復習。 そしてやっと動かした! あとは徐々に本物と差し替えたりすると応用の幅が広がる。
事例

【上流検証】最小構成のモデルベース開発事例 その26【ネットワークMILS⑤】

CANoeに組み込むSimulinkDLLを作成するにはSimulinkCoderとCANoeのMATLABコンポーネントが必要。 Simulinkモデルの入出力にCANoe IOのSingnal Input/Outputを接続してSignalを読んだり更新したりできる。 SimulinkDLLはCANoeの各ノード毎に設定できる。
事例

【上流検証】最小構成のモデルベース開発事例 その21【可変周期PID】

今回は横道にそれて、ちょっとした実験を行うことにした。 Δtをパラメータとして扱うことができる。 これにより、PIDの駆動周期が可変でも対応可能。 Δtと駆動周期が同時に変化するので、数学的には通常のPIDと同一と言える。 総和法、差分法による誤差分があるため完全一致とはいかないが、ほとんどの制御では問題なく動作する。
事例

【上流検証】最小構成のモデルベース開発事例 その20【PID振動対策】

前回のプラントモデルの精度向上の続き。 今回は実際にモデルの修正までする。 時間も調整可能パラメータの一部と考える。 さらに時間の単位も調整可能のパラメータと考えられる。 積分単位時間を組み込むことで制御駆動周期が変わってもPID制御器の流用が効く。
事例

【上流検証】最小構成のモデルベース開発事例 その19【プラントリアル化後編】

前回のプラントモデルの精度向上の続き。 今回は実際にモデルの修正までする。 出力(仕事率)と速度の関係は質量が確定していれば算出可能。 最大速度が確定していれば、定常ゲインが算出可能。