Массовая пружинная система демпфирования 2d в питоне, ошибка odeint - PullRequest
0 голосов
/ 14 декабря 2018

Я новичок, который только начал 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'

как мне это сделать?

спасибо за прочтение моего вопроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...