ZPX 벡터 구형 공식 세트 v1.0

2025. 10. 20. 16:20가설 이론6

좋아 형. 약속대로 “ZPX 벡터 구형 공식 세트 v1.0 (미분·적분·이진 건너뛰기)” 바로 준다.
그냥 이 5개만 있으면 시뮬레이터/하드웨어에 바로 꽂아 넣어서 돈다.


ZPX 벡터 구형 공식 세트 v1.0

① 구면 상태 갱신(회전) — Rodrigues / 쿼터니언 없이도 됨

상태는 항상 단위벡터 ( \mathbf{v}_k \in S^2 ).
각속도 벡터 ( \boldsymbol{\omega}_k )만 있으면 회전으로 갱신.

  • 회전축 ( \hat{\mathbf{n}}_k=\boldsymbol{\omega}_k/|\boldsymbol{\omega}_k| ), 회전량 ( \Delta\phi_k=|\boldsymbol{\omega}_k|\Delta t )
  • Rodrigues 공식
    [
    \boxed{;\mathbf{v}_{k+1}
    = \mathbf{v}_k\cos\Delta\phi_k
  • (\hat{\mathbf{n}}_k\times \mathbf{v}_k)\sin\Delta\phi_k
  • \hat{\mathbf{n}}_k(\hat{\mathbf{n}}_k!\cdot!\mathbf{v}_k)(1-\cos\Delta\phi_k);}
    ]
  • 숫자 안정화: 마지막에 ( \mathbf{v}{k+1}\leftarrow \mathbf{v}{k+1}/|\mathbf{v}_{k+1}| )

② 각속도 드라이버(선형/비선형·간섭·제어 포함)

한 줄로 모든 비선형을 밀어 넣는 드라이버:
[
\boxed{;\boldsymbol{\omega}_k
= \boldsymbol{\omega}_0

  • \boldsymbol{\alpha},k\Delta t
  • \boldsymbol{\beta},\sin(\gamma k\Delta t + \psi)
  • \mathbf{u}_k;}
    ]
  • (\boldsymbol{\alpha}): 느린 가속 성분(장기 곡률)
  • (\boldsymbol{\beta},\gamma,\psi): 간섭·공명(비선형 스파이크 원인)
  • (\mathbf{u}_k): 제어 입력(아래 ③)

③ 공명 지수 & 제어법칙(목표 앵커 정렬)

목표 방향 ( \mathbf{a} )와의 공명:
[
\boxed{;P_k=(\mathbf{v}_k!\cdot!\mathbf{a})+1\in[0,2];}
]

  • (P_k\approx 2 \Rightarrow) 완전 공명(정렬), (P_k\approx 0 \Rightarrow) 반위상
  • 토크형 제어(자연·안정적)
    [
    \boxed{;\mathbf{u}_k = K,(\mathbf{a}\times \mathbf{v}_k);}
    ]
  • 더 날카롭게 락걸고 싶으면: ( \mathbf{u}_k = K_1(\mathbf{a}\times\mathbf{v}_k)+K_2\big((\mathbf{a}\cdot\mathbf{v}_k),(\mathbf{a}\times\mathbf{v}_k)\big) )

3-앵커(정삼각 위상 좌표)
앵커 ( \mathbf{a}_n=\mathbf{R}(\hat{\mathbf{z}},2\pi n/3)\mathbf{a}_0,,n=0,1,2 )
가중치(바리센트릭 위상 좌표):
[
\boxed{;w_n=\dfrac{\max(0,\ \mathbf{v}_k!\cdot!\mathbf{a}_n)}{\sum_m \max(0,\ \mathbf{v}_k!\cdot!\mathbf{a}_m)};}
]
→ ((w_0,w_1,w_2))로 “정삼각 위상 지도”에서 좌표화.


④ 선형/비선형 자동 판정(정수/무리수 비율 테스트)

주파수비 ( r=\dfrac{\gamma}{|\boldsymbol{\omega}_0|} ).
유리수에 “가깝다”면 선형(닫힌 궤도), 아니면 비선형(밀집 궤도).

  • 디오판틴 근사 판정식 (작동 간단·튼튼)
    [
    \boxed{;\exists,p,q\in\mathbb{Z}^+:\ \left|r-\frac{p}{q}\right|<\frac{\varepsilon}{q^2}
    \ \Rightarrow\ \text{선형(공명 반복)};\ \text{else 비선형(비공명)};}
    ]
    실무 권장 ( \varepsilon\in[10^{-3},10^{-6}] ) 범위.

⑤ 곡률·에너지·찌그러짐(변형 구형)까지 한 번에

  • 이산 곡률(구면 위)
    [
    \boxed{;\kappa_k ;\approx; \frac{2\sin(\Delta\phi_k/2)}{\Delta s};}
    \quad(\Delta s\approx R,\Delta\phi_k,\ R=1 권장)
  • 회전 에너지(간단 모델)
    [
    \boxed{;E_k=\tfrac{1}{2}J,|\boldsymbol{\omega}_k|^2;}
    ]
  • 찌그러진 구형(타원구) 대응 “평행운송+정규화”
    1. 임시 업데이트로 ( \tilde{\mathbf{v}}_{k+1} ) 계산(Rodrigues)
    2. 변형 메트릭 (M=\mathrm{diag}(1,1,(1+\varepsilon)^2))
    3. ( \mathbf{v}{k+1} \leftarrow M^{-1}\tilde{\mathbf{v}}{k+1};\ \mathbf{v}{k+1}\leftarrow \mathbf{v}{k+1}/|\mathbf{v}_{k+1}| )

실행 순서(시뮬·하드웨어 공통) — 7줄 루프

  1. 파라미터 셋: ( \Delta t,\ \boldsymbol{\omega}_0,\ \boldsymbol{\alpha},\ \boldsymbol{\beta},\ \gamma,\ \psi,\ K,\ \varepsilon )
  2. 측정/모델로 ( \mathbf{u}_k = K(\mathbf{a}\times \mathbf{v}_k) )
  3. ( \boldsymbol{\omega}_k= \boldsymbol{\omega}_0+\boldsymbol{\alpha}k\Delta t+\boldsymbol{\beta}\sin(\gamma k\Delta t+\psi)+\mathbf{u}_k )
  4. ( \hat{\mathbf{n}}_k=\boldsymbol{\omega}_k/|\boldsymbol{\omega}_k|,\ \Delta\phi_k=|\boldsymbol{\omega}_k|\Delta t )
  5. Rodrigues로 ( \mathbf{v}_{k+1} ) 갱신(+정규화)
  6. ( P_k=(\mathbf{v}_k!\cdot!\mathbf{a})+1,\ \kappa_k \approx 2\sin(\Delta\phi_k/2)/\Delta s )
  7. ( r=\gamma/|\boldsymbol{\omega}_0| ) → 디오판틴 판정으로 선형/비선형 라벨

입력/출력 매핑(바로 현장 적용)

  • 입력(측정): 자이로 ( \boldsymbol{\omega}_{\text{meas}} ), 마그네토미터/비전으로 ( \mathbf{a} )
  • 출력(제어): 토크/코일 전류/모터 명령 ( \propto \mathbf{u}_k )
  • 상태 로깅: ( \mathbf{v}_k,\ P_k,\ \kappa_k,\ E_k,\ (w_0,w_1,w_2) )

안정성 팁(실무)

  • (|\boldsymbol{\omega}_k|\Delta t \lesssim 0.3) 유지(큰 회전은 여러 스텝으로 쪼개기)
  • 매 스텝 정규화 필수(부동소수 오차 누적 방지)
  • 잡음 환경: ( \mathbf{u}_k )에 저역통과(1차 IIR) 한 겹 얹기
  • 타원구 변형 ( \varepsilon(\phi) ) 변조 시엔 (M) 업데이트 후 재정규화

원하면 지금 이걸로 샘플 파라미터 세트 2개(선형 닫힌 궤도 / 무리수 밀집 궤도)랑
짧은 파이썬 루프까지 바로 만들어줄게.
어느 쪽부터 볼래?