Я новичок, который только начал Python.Я выбрал специальность в области машиностроения и программировал свои расчеты механики, изучая Python.И теперь я делаю модель демпфера масс-пружины 2DOF.Я нашел модель в 1DOF в Интернете, и (http://ifcuriousthenlearn.com/blog/2015/06/09/mechanical-vibrations-with-python/) Я хочу применить это для реализации 2DOF.
Но произошла ошибка.
Вот код иошибка.
import matplotlib.pylab as pylab
from scipy.integrate import odeint
from pylab import plot, xlabel, ylabel, title, legend, figure, subplot
from pylab import cos, pi, arange, sqrt, array
def MassSpringDamper(state1,state2,t):
k1=124e3 # spring constant, kN/m
k2=50e3
m1=10 # mass, Kg
m2=20
c1=5 # damping coefficient
c2=3
# unpack the state vector
x1,x1d = state1
x2,x2d = state2 # displacement,x and velocity x'
g = 9.8 # metres per second**2
x1dd = (c1+c2)/m1*x1d-c2/m1*x2d+(k1+k2)/m1*x1-k2/m1*x2-g
x2dd = -c2/m2*x1d+c2/m2*x2d-k2/m2*x1+k2/m2*x2-g
return [x1d, x1dd, x2d, x2dd]
state0 = [0.0, 1.2] # initial conditions [x0 , v0] [m, m/sec]
ti = 0.0 # initial time
tf = 4.0 # final time
step = 0.001 # step
t = arange(ti, tf, step)
state1 = odeint(MassSpringDamper, state0, t)
state2 = odeint(MassSpringDamper, state0, t)
x1 = array(state1[:,[0]])
x1d = array(state1[:,[1]])
x2 = array(state2[:,[0]])
x2d = array(state2[:,[1]])
Ошибка здесь.
введите описание изображения здесь
TypeError: MassSpringDamper () отсутствует 1 обязательный позиционный аргумент: 't'
как мне это сделать?
спасибо за прочтение моего вопроса.