Я хочу вычислить форму главной оси тензора инерции, который остается согласованным с изменениями инерции.В настоящее время собственное значение выводит вычисленные собственные значения (Ia, Ib, Ic) от наименьшего к наибольшему, что скремблирует порядок моментов инерции x, y и z.Это не позволяет мне отображать собственные значения непосредственно в тензор диагональной инерции.
Для начала у меня есть многотельная система, для которой я рассчитываю моменты инерции Ixx, Iyy, Izz и произведения Ixy, Ixz, Iyzвокруг центра масс.Отсюда я строю инерционную матрицу 3х3.Эта инерция находится в системе координат A и может иметь ненулевые недиагональные компоненты.Я могу наблюдать, как эта матрица инерции непрерывно меняется в зависимости от движения моих тел.
Например, первоначально моя вычисленная инерция выглядит примерно так:
0.25 0 0
0 0.22 0
00 0,02
тогда собственные значения выглядят примерно так:
0,02
0,22
0,25
, а собственные векторы выглядят примерно так:
0 0 1
0 1 0
1 0 0
Как видно, eigensolver сортирует собственные значения в порядке возрастания, что приводит к вектору Izz, Iyy, Ixx,который не желаемый Ixx, Iyy, Izz заказ.Когда я перемещаю тела, инерция меняется, как и порядок собственных значений (Ixx, Iyy и Izz могут легко поменяться местами).Два из этих собственных значений могут оставаться постоянными, в то время как третье изменяется настолько сильно, что влияет на порядок.Я хотел бы найти отображение, которое сохраняет значения согласованными - всегда добивайтесь порядка Ixx, Iyy и Izz моих собственных значений.