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

検索

eGPU竿燈シミュレータ

竿燈シミュレータ(3)

2026年9月29日
0

物理モデル定義はこんな感じで考えた。

■座標系と状態量

3Dでは位置ベクトル p=[x,y,z]^T を用い、y軸を鉛直方向とする。竿の傾きは2方向の独立状態として扱い、画面上のPitch/Rollに対応する2軸の角度・角速度を保持する。各提灯は吊り点から下向きの単位ベクトル d_i ∈ R^3 で姿勢を表し、||d_i||=1 の拘束を数値的に維持する。
i は46個の提灯番号。d_i は吊り紐方向の単位ベクトルで、各step後に正規化して ||d_i||=1 を維持する。

■竿の剛体モデル
いきなり竹の撓りを入れるのはちょっと難しいので、とりあえず竿全体を支持点まわりの回転剛体として扱った。制御トルク、風荷重、重力によるモーメント、回転減衰を合成し、角加速度を積分する。これは制御器の設計・UI・安全停止を先に成立させるための基準モデルにした。
I は支持点まわりの等価慣性、c は回転減衰、θ は竿傾斜角。3D統合後は同じ考え方をPitch/Rollの2軸へ拡張する。

■竿の梁FEM
Euler-Bernoulli梁を用いた1次元梁FEMへ拡張した。竿を節点・梁要素へ離散化し、分布質量に加えて46個の提灯を点質量として与える。線形系では質量行列 M、減衰行列 C、剛性行列 K を用いて運動方程式を構成する。
q は節点変位・回転自由度をまとめた一般化座標ベクトル。f(t) に風荷重、支持点運動、提灯質量の効果などを反映する。
リアルタイム性を得るため、全自由度をそのまま毎フレーム解くのではなく、低次の固有モードへ縮約する。固有ベクトルを列にもつ Φ を用い q≈Φη とし、η の低次元方程式を時間積分する。初期FEM基準では固有振動数 0.428 / 2.676 / 7.768 Hz (それぞれ一次、二次、三次固有振動数)を確認した。
Φ は採用固有モードを列に並べたモード行列、η はモード座標。低次モードへ縮約して大域的な撓りを軽量に再現する。

■大撓み・非線形復元・Corotational
竿燈では先端変位が小変位仮定に収まらない場合があるため、v0.2.1で幾何学的な大撓みを扱う補正を追加した。局所要素座標系を現在姿勢へ追従させるCorotational投影により、剛体回転と局所変形を分離する。さらに復元力へ3次項を加え、変形増大時の非線形な硬化を表現した。
⊙ は成分ごとの積。竹材の詳細材料非線形を直接解くのではなく、リアルタイム用の等価なcubic hardeningとして扱う。
非線形ステップではModified Newton型の反復を用い、過大な反復によるFPS低下を避けながら収束性を確保する。時間積分にはNewmark法を採用し、剛体系・FEM系の時間発展を安定に扱う。

■継竹とタガ
実物合わせでは継竹を0~3本の離散状態として持ち、全長・質量・慣性・FEM形状を更新する。接手は「タガ(ステンレス)」として剛体カラー近似し、標準値として内径約0.075 m、幅約0.040 mを採用した。ここでは局所接触応力や塑性を解くのではなく、全体系の長さ・剛性・質量への影響を優先する。

■46個の提灯:質量と独立3D振り子
各提灯は横竹の吊り点から自由にぶら下がるspherical pendulumとして扱う。吊り点は竿・横竹の動きに従い、提灯方向ベクトル d_i は重力、風、吊り点加速度、減衰に応答する。これにより竿が傾いても提灯が横竹へ固定されたまま傾く不自然さを避ける。
a_t は吊り紐方向に直交する接線加速度、L は有効吊り長、γ は減衰。更新後に d_i を再正規化する。提灯そのものは完全な柔軟体ではなく、吊り紐方向に従う剛体シェルとして描画する。形状は最大径を中央より少し上に置き、下側をわずかに絞った共通メッシュへ変更した。

■3次元風
風は水平方向の3Dベクトルとして与え、平均風速と方位角から各軸成分へ分解する。竿と46個の提灯に対する抗力を加え、さらにガスト成分を重畳する。CFDは行わず、抗力係数と投影面積による工学的近似を使用する。
ρ は空気密度、C_D は抗力係数、A は投影面積、v_rel は物体に対する相対風速ベクトル。

■差し手の人体モデル
これがなかなか難しい。
人体を頭部、胴体、骨盤、上腕・前腕、大腿・下腿などの関節セグメントへ分け、各支持技に応じた姿勢を生成する。身体各部の代表質量から全身CoM(重心)を計算し、足部支持領域に対する余裕を表示する。
j は人体セグメント番号。詳細筋骨格解析ではなく、姿勢・支持点・重心移動をつなぐ簡略モデルである。(とりあえず、”棒人形”)
差し手の練度を0~3に設定できるようにして、これらに対して反応遅れを 280 / 200 / 130 / 80 ms とし、制御指令が即時に人体へ反映される理想系を避けた。HAND/FOREHEAD/SHOULDER/HIP では支持点高さと身体姿勢を変え、額・肩・腰へ竿を移す際は一旦手で握って移すので、その動作は再現しない方針とした。

■蝋燭・炎・御幣は「表示モデル」として分離
祭りの文化的側面を考え、これらもグラフィックで表現したい。
提灯内部の蝋燭は提灯に固定されているため、提灯が振れて傾けば蝋燭本体も同じ姿勢で傾く。一方、炎は浮力方向を簡略化して世界座標の鉛直上向きを維持する。炎の形状と明るさには個体ごとに位相をずらした弱い揺らぎを与える。
御幣は全体系の力学へ有意な荷重を与えるモデルではなく、文化表現として描画する。板状にすると縮尺上不自然だったため、最終的には白い細線の束として存在感だけを残す方針にした。

投稿者

リタイア爺

フォロー
関連記事
前

シミュレータのリスク

次へ

竿燈シミュレータ(4)

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

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

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

2026年9月
日 月 火 水 木 金 土
 12345
6789101112
13141516171819
20212223242526
27282930  
« 8月   10月 »

最近の投稿

  • 雑感 ネット上の脅威 2026年10月8日
  • 雑感 最近の情報漏洩事件 2026年10月6日
  • 制御とは(2) ~LQR制御~ 2026年10月6日
  • 制御とは(1) ~PID制御~ 2026年10月6日
  • 雑感 生成AIとHow to文化 2026年10月5日

カテゴリー

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

最近のコメント

  • 雑感 最近の情報漏洩事件 に リタイア爺 より
  • 雑感 最近の情報漏洩事件 に 通りすがり より

アーカイブ

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

非公開・備忘録

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

TOP

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