PID

事例

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

今回は、CAPLを使用したシステム変数のシグナルへの分配を行う。CAPLはValueObjectというイベントハンドラを起点に処理を走らせる。シグナル更新とCAN送信は別物。シグナルの更新有無に関係なく送信周期を定義できる。
事例

【上流検証】最小構成のモデルベース開発事例 その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の利用も検討しておくと状態の見える化が出来て吉。
事例

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

前回まででネットワークMILSは終了したが、何となく似たようなのネタスタート。違いは、ブラックボックスを許容してしまっている点?ダミーの信号を作る際は、普通はラピッドコントローラを使用する。時間精度がそれほど求められないのであれば、PCから制御するタイプでもある程度なんとかなる。
事例

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

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

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

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

【上流検証】最小構成のモデルベース開発事例 その17【S-Function】

S-Functionを作る具体的な手順ってどうなってるの?という質問が来たので、S-Function Builderの使い方の説明。これ以外のS-Functionの作成方法もある。Simulinkに抵抗ある人はS-Functionから始めても良いかもしれない。出力を波形で見れる。複数のロジックの入出力の簡単な繋ぎ替えができる。
事例

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

成果物として上がってくるがCコード。これの正当性を評価したい。CコードをS-Function化することでSimuklinkブロックとして扱えるようになる。MILSの一部を差し替えても同様の動きになるかを確認できる。元のSimulinkモデルと同一の入力にして出力を比較することで一致性確認ができる。