Это проще всего кодировать, отделяя вращательную часть от поступательной части.
У вас есть сумма сил, приложенных к шару A - например, сила тяжести + тяга от двигателя + сила трения.Пусть это будет FA (вектор).У вас есть сумма сил, приложенных к шару B - например, сила тяжести + сила трения.Пусть это будет FB (вектор).
Центр масс объекта расположен на стержне.Он находится в местоположении (ма A + мб B ) / (ма + мб).Это расстояние ca от массы A, где ca = mb / (ma + mb). | AB |и расстояние cb от массы B, где cb = ma / (ma + mb). | AB |.Пусть U будет нормализованной версией AB (т. Е. U имеет длину блока).
Смоделируйте систему так, чтобы у вас былоцентр масс = X и угол тета.Вы также сохраняете скорость V и скорость вращения w.Мы хотим найти линейное ускорение A и ускорение вращения w '.
Движение центра масс регулируется законом Ньютона с использованием ВСЕГО силы в системе и ВСЕЙ массы, так:
FA + FB = (ма + мб). A
Вращение регулируетсякрутящие моменты участвуют.(скалярное) Крутящий момент = сила x вектор от центра масс .Следовательно, крутящий момент на каждом объекте составляет:
TA = FA x ca.- U
TB = FB xcb. U
Обратите внимание, что это двумерный перекрестный продукт, т.е. TA = FA [x] * ca.- U [y] - FA [y] * ca.- U [x]
Момент инерции определяется как
I = ca * ca* ma + cb * cb * mb
Затем
TA + TB = I.w '
Вывод местоположения каждой заданной массы X и тэта оставлена читателю в качестве упражнения:)