■制御方法定義
1.PID制御
最初の基準制御としてPIDを採用した。目標角を0 rad(鉛直)とし、角度誤差 e、積分、角速度相当の微分項から支持点トルクを生成する。調整が直感的で、剛体モデルからFEMモデルへ移行した際にも基準比較器として使える。まあ、古典的な制御。
実装では積分飽和、最大トルク、安全停止、トルク応答時間などを制御器とは別層で制約する。(倒れるところまでは表示しないで停止させる)
2.LQR制御
LQRでは角度・角速度などを状態ベクトル x とし、線形化した状態方程式に対して二次評価関数を最小化するフィードバックゲイン K を求める。PIDより状態空間表現へ自然に拡張でき、Pitch/RollやFEM縮約状態との統合に向くはず。
Q で状態偏差、R で操作量を重み付けする。GUIでは主要なQ/Rパラメータを比較調整できるようにした。
3.Adaptive制御
質量、長さ、継竹、風条件が変わると同じ固定ゲインでは応答が変わる。Adaptiveモードではオンライン同定用の共分散・忘却係数を持ち、推定した系パラメータに応じて制御ゲインを補正する構成とした。目的は「完全に未知の系を学習する」ことではなく、既知の物理モデルに対するパラメータずれへ追従することである。
⇒ここはそのうち学習モデルを組込み、AIの登場となる・・・予定。
■差し手の練度と制御系
制御器の数式と人体練度は同一概念ではない。制御器が理想トルクを計算しても、差し手側では反応遅れ、最大トルク、トルク変化率がある。そこで「制御器」と「人間がその指令を実現する動特性」を分離し、練度によって後者を変える。これにより、PID/LQR/Adaptiveの比較と人間の熟練度の比較を混同しないようにした。
■Safety Trip(まあ、シミュレーションの保護機構)
角度、角速度、先端変位などが安全圏を超えた場合は物理状態を凍結し、Resetまで暴走を継続させない。これは「現実の竿燈が止まる」という意味ではなく、数値発散や極端な姿勢が後段の描画・ログへ伝播するのを防ぐシミュレーション保護機構である。