コンテンツにスキップ
eGPU Lab.
eGPU Lab.
  • ホーム
  • プライバシーポリシー
  • 非公開・備忘録
    • LoRAに学習させる
  • ホーム
  • プライバシーポリシー
  • 非公開・備忘録
    • LoRAに学習させる
クローズ

検索

数学・物理竿燈シミュレータ

制御とは(4) ~Pythonで3方式を比較~

2026年10月9日
0

実際の竿燈FEMモデルではなく、「倒れやすい棒」を1自由度で表した骨格で制御器を差し替えながら同じplant_step()を使うと、制御方式の違いを比較できる。
ChatGPTに比較をイメージするアイキャッチ画像を作らせた。
まず、共通の簡易プラントでは、

import math

def plant_step(theta, omega, u, dt, a=9.0, damping=0.3):
# alpha = a*theta – damping*omega + u
alpha = a * theta – damping * omega + u
omega += alpha * dt
theta += omega * dt
return theta, omega

dt = 0.01
theta = math.radians(5.0)
omega = 0.0

for step in range(2000):
# ここをPID / LQR / Adaptiveの制御式に置き換える
u = 0.0
theta, omega = plant_step(theta, omega, u, dt)

LQR制御の制御入力は、

# 例として K = [20.0, 6.4149] が求まっている場合
k_theta = 20.0
k_omega = 6.4149u = -(k_theta * theta + k_omega * omega)

PID制御入力は、

error = 0.0 – theta
integral += error * dt
derivative = (error – prev_error) / dt
u = kp*error + ki*integral + kd*derivative
prev_error = error

Adaptive制御なら、固定の式を1行入れ替えるだけではなく、「観測 → 推定 → 制御器更新」という処理が追加されます。これがPID・固定LQRとの大きな違いです。
観測 → パラメータ推定 → 制御パラメータ更新 → u を計算 → 次の観測
となる。

投稿者

リタイア爺

フォロー
関連記事
前

制御とは(3) ~Adaptive制御~

コメントはまだありません。最初のコメントを投稿しましょう。

コメントを残す コメントをキャンセル

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

2026年10月
日 月 火 水 木 金 土
 123
45678910
11121314151617
18192021222324
25262728293031
« 9月    

最近の投稿

  • 制御とは(4) ~Pythonで3方式を比較~ 2026年10月9日
  • 制御とは(3) ~Adaptive制御~ 2026年10月9日
  • 雑感 ネット上の脅威 2026年10月8日
  • 雑感 最近の情報漏洩事件 2026年10月6日
  • 制御とは(2) ~LQR制御~ 2026年10月6日

カテゴリー

  • AIシミュレータ (14)
  • eGPU (22)
  • LLM (12)
  • セキュリティ (1)
  • 数学・物理 (8)
  • 昔話 (6)
  • 竿燈シミュレータ (13)
  • 雑感 (4)

最近のコメント

  • 雑感 ネット上の脅威 に リタイア爺 より
  • 雑感 最近の情報漏洩事件 に リタイア爺 より
  • 雑感 最近の情報漏洩事件 に 通りすがり より

アーカイブ

  • 2026年10月
  • 2026年9月
  • 2026年8月
にほんブログ村 IT技術ブログ IT技術メモへ
にほんブログ村

非公開・備忘録

  • プライバシーポリシー
  • 非公開・備忘録
    • LoRAに学習させる

TOP

https://www.wildflow.tech/blog/