Найдя уравнение движения, я хочу определить его так, чтобы я мог легко найти ускорение, учитывая текущее состояние (положение, скорость) и приложенную силу.
В процессе получения уравненияmotion, dynamicsymbols
используется для представления функций времени (положения) и его производных (скорость, ускорение).
Код похож на следующий
from sympy.physics.vector import dynamicsymbols
from sympy.utilities.lambdify import lambdify
from sympy import Symbol, diff
t = Symbol('t')
theta1 = dynamicsymbols('theta1')
theta1_d = diff(theta1, t)
# theta1 = Symbol('theta1') # Uncommenting this works
# theta1_d = Symbol('theta1_d') # Uncommenting this works
tau1 = Symbol('tau1')
theta1_dd_eom = theta1 + theta1_d + tau1
calc_theta1_dd = lambdify([theta1, theta1_d, tau1],
theta1_dd_eom)
Однако, это бросаетследующая ошибка
Traceback (most recent call last):
File "test.py", line 16, in <module>
theta1_dd_eom)
File "/usr/lib/python3/dist-packages/sympy/utilities/lambdify.py", line 434, in lambdify
func = eval(lstr, namespace)
File "<string>", line 1
lambda _Dummy_140,Derivative(theta1(t), t),_Dummy_141: (Derivative(_Dummy_140, t) + _Dummy_140 + _Dummy_141)
^
SyntaxError: invalid syntax
Я использую sympy 1.1.1