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のどっちを使うにしても同様の対応が必要。