본문 바로가기

AnyBody/FAQ

Inverse dynamics 해석 시 KKT Matrix Solver Error가 발생하는 이유?

Inverse dynamics 해석 시 KKT 행렬 에러 문제

 

AnyBody Modeling System에서 Inverse dynamics를 수행할 때 종종 아래와 같은 에러 메시지가 발생하는 경우가 있습니다.  "Musucle recruitment solver: Solver aborted due to singluar KKT matrix."

 

 

이 에러 메시지는 일반적으로 시스템 균형에 문제가 있을 때 발생하게 됩니다.  일반적으로 모델이 하나의 자유도에 대해  muslce 또는  reaction force에 의해 지지 받지 못할 때, 또는 Segment의 가속도가 너무 커서 muscle에 너무 큰 힘이 발생하는 경우입니다. 

 

예를 들면, 의자가 없이 사람이 앉아 있는 자세를 모델링 하려고 하면 근육이 이 자세를 지탱하지 못하고 KKT 에러가 발생하게 됩니다. 이때 무릎에 보조하는 토크를 추가하게 되면 이 문제를 해결할 수 있습니다.또는 일부 구속의 반력을 ON (Reaction.Type= {On, ...}; 또는 가상적인 근육 요소를 추가해서도 해결할 수 있습니다. 

 

모델링하면서 인체모델이 어떤 도움 없이 자세를 유지할 수 있는지 고민해보면 문제를 해결하는데 도움이 됩니다.