PID

事例

【上流検証】最小構成のモデルベース開発事例 その56【ドライビングシミュレータ⑥】

PID制御が弱い場合、PゲインかIゲインを調整するのが一般的。しかし、今回はそもそも想定周期が異なっていた。時間の刻み(タイムスタンプ)が明確であれば、前回値との差で時間差が特定できる。この時間差を積分単位時間としてPIDの演算に組み込むことができる。(無事、伏線回収!)
事例

【上流検証】最小構成のモデルベース開発事例 その55【ドライビングシミュレータ⑤】

オープンソースドライビングシミュレータであるCARLAの話。PID制御の組み込みと、車速の取得ができたので動かす。PythonAPIを叩きすぎると重くなる。Sleep関数等を使用して処理の頻度を下げることで回避可能。
事例

【上流検証】最小構成のモデルベース開発事例その54【ドライビングシミュレータ④】

CARLAのサンプルのmanual_control.pyに制御を組み込む際はKeyboardControlクラスの_parse_vehicle_keysメソッドあたりに突っ込めば良い。車速はworld.player.get_velocity()で取得可能。ただし、3次元ベクトルで取得されるのでノルムに変換する必要がある
事例

【上流検証】最小構成のモデルベース開発事例 その53【ドライビングシミュレータ③】

オープンソースドライビングシミュレータであるCARLAの話。今回はとりあえず起動させるところまで。CARLAはWindows向け環境はある程度揃っている。とりあえず、動かす場合はmanual_control.pyがお手頃。
事例

【上流検証】最小構成のモデルベース開発事例 その52【ドライビングシミュレータ②】

オープンソースドライビングシミュレータであるCARLAの話。今回はPythonAPIについて。CARLAはPythonAPIを使ってPythonから制御できる。PythonはDLLを呼び出すことができる。よって、C言語書かれたPID制御をPythonから利用する場合はDLLにした方が良い。
事例

【上流検証】最小構成のモデルベース開発事例 その51【ドライビングシミュレータ①】

今回からオープンソースドライビングシミュレータであるCARLAの話。いつもの小芝居でスタート。オープンソースドライビングシミュレータのCARLA。自動運転のトレーニング用。車両だけでなく人も動かせる。
事例

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

いろいろ準備は整ったので今回は動かす!CAPLもブレークポイント、ステップ実行などのデバッグ機能は保有している。ただし、シミュレーションバスの時だけ可能。送信周期はプロットで見るか、CAN回線モニタで確認できる。
事例

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

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

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

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

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

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