이 포스팅은 System Dynamics 시리즈 8 편 중 3 번째 글 입니다.
목차
행렬의 종류에 대해서는 링크로 대체한다!
Orthogonality
두 벡터를 곱했을 때 수직! 자기 자신이 나온다.
→a⋅→b=→aT→b=0자기 자신을 곱한다면 자기자신의 크기의 제곱이 나와야 한다.
→a⋅→a=→aT→a=|→a|2Orthonomality
여기서는 두 벡터가 단위 벡터이다! 따라서 자기 자신을 곱했을 때, 1이 나와야 한다.
→a⋅→a=→aT→a=1사실 Orthogonal Matrix는 각 열(혹은 행) 벡터가 모두 단위 벡터일 때 정의를 만족한다!
Vector Differentiation
Scalar Function by Scalar
f=functionof(q1,q2,…,qn,t)qi=gi(t),i=1,2,3…,n이때 t에 대해 미분하면,
dfdt=∂f∂q1dq1dt+∂f∂q2dq2dt+⋯+∂f∂qndqndt+∂f∂t이를 벡터 형식으로 나타내면,
dfdt=[∂f∂q1∂f∂q2…∂f∂qn][dq1dtdq2dt⋮dqndt]+∂f∂t여기서 벡터로 표현된 녀석을 다음과 같이 표현하자.
[∂f∂q1∂f∂q2…∂f∂qn]=∂f∂→q=f→q그렇다면 위의 식은 다음과 같이 정리된다.
dfdt=f→qd→qdt+dfdtVector Function by Scalar
벡터함수 f는 각각의 요소에 변수 (q1~qn, t) 를 갖는 스칼라 함수를 m개 갖는다고 하자.
f1=f1(q1,q2,…,qn,t)f2=f1(q1,q2,…,qn,t)f3=f1(q1,q2,…,qn,t)⋮fm=fn(q1,q2,…,qn,t)→f=[f1f2f3…fm]T그렇다면 이 함수를 스칼라 변수 t로 미분하면,
각각의 요소는,
dfjdt=∂fj∂→qd→qdt+dfdtj=1,2,…,m그렇다면, 벡터 함수를 t로 미분한 최종 결과는,
d→fdt=[df1dtdf2dt⋮dfndt]=[∂f1∂q1…∂f1∂qn⋮ ⋮∂fm∂q1…∂fm∂qn][dq1dt⋮dqndt]+[df1dt⋮dfmdt]여기서 행렬이 만들어진다는 것을 잊으면 안된다! 각각의 크기만 적어보면,
d→fdt=∂→f∂→qd→qdt+∂→f∂t(m×1)=(m×n)(n×1)+(m×1)Scalar Function by Vector
스칼라 함수를 스칼라로 미분하는 가장 위의 예에서, 함수 f를 벡터 q로 미분하면, 다음과 같다.
dfd→q=[dfdq1dfdq2…dfdqn]Vector Function by Scalar
벡터 함수를 스칼라로 미분하는 두번째 예에서, 벡터 함수 f를 q1으로 미분한다면,
d→fdq1=[df1dq1df1dq1…df1dq1]정리
- 스칼라 함수를 스칼라로 미분하면 스칼라함수다.
- 스칼라 함수를 벡터 함수로 미분하면 1xn 벡터가 나온다.
- 벡터 함수를 스칼라로 미분하면 1xm 벡터가 나온다.
- 벡터 함수를 벡터로 미분하면 nxm 행렬이 나온다.
Skew-Symmetric Matrix Representation
Skew-Symmetric Matrix는 벡터의 외적을 사용해서 다르게 표현이 가능한데, 간단한 예를 들어 생각해보자.
→a=[a1a2a3]T→b=[b1b2b3]T이 두 벡터를 내적하면,
→a×→b=[a2b3−a3b2−(a1b3−a3b1)a1b2−a2b1]=[0−a3a2a30−a1−a2a10][b1b2b3]=∼a=⋅→b외적 식을 b벡터를 활용해서 나타내면 다음과 같이 나타낼 수 있다. 이때 중간에 skew-symmetric matrix 가 나오고, a 벡터가 왼쪽에 놓인 외적을 수행했을 때 발생하는 행렬을 위와 같이 표현했다. 마찬가지로, b벡터에 대해 하면,
→a×→b=[0−b3b2b30−b1−b2b10][a1a2a3]=∼b=⋅→a이와 같다.
Property
a 의 단위벡터와 a 벡터를 외적하면, 0이다.
ˆ→a×→a=−→a׈→a=→0이 표현을 Skew-symmetric Matrix를 써서 표현하면,
−→a׈→a=−→a=⋅ˆ→a=→0Skew-Symmetric Matrix 의 특징을 사용하면,
−→a==→a=T역학에서 사용예
시스템 내에서 역학적 Joint 에서 위치 벡터와의 관계는 다음과 같이 빈번하게 묘사된다.
→a×→x=→0즉, a 벡터와 x 벡터가 수직임을 나타낸다. 수직인 벡터는 무수하게 많이 나온다는 점을 기억한 상태로 다음을 보자. Skew-symmetric Matrix를 사용해서 나타내면,
∼a=⋅→x=→0∼a==[0−a3a2a30−a1−a2a10]a 행렬에 대해 Determinant를 구해보면, 0이다. 즉, a 행렬은 특이 행렬이다. 즉, Rank가 matrix size보다 작다. 즉, x 벡터는 하나로 결정되지 못한다.
Jacobi’s Theorem
det(∼a=)=→0Determinant 의 성질에 의해서,
det(A=)=det(A=T)이 때 n이 짝수이게 되면, 양쪽 식의 값이 동치가 되어 det(a)의 값은 부정이다. 따라서 n의 값은 홀수여야 한다. 즉, Skew-symmetric Matrix의 행렬식의 값이 0이 되려면, 행렬의 size가 홀수 차원이어야 한다.