多级弹簧-质量系统下瞬态计算。
目的:Numpy的矩阵运算
模型如下图所示。三个弹簧两个质量块串联。单个自由度(x向)
实现代码:
#coding:utf-8
"""
Created on Tue Nov 20 12:41:40 2018
@author: yujin.wang
"""
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
################Force###############
def CenterDiff(t,endtime,m,k,fext,u,delta,du0):
fint = k.dot(u)
ddu = m.I.dot((fext - fint))
du = du0 + ddu * delta
u = u + du*delta
print u[0,0]
t+=delta
t_list.append(t);u1_list.append(u[0,0]);u2_list.append(u[1,0])
if t > endtime:
return t_list,u1_list,u2_list
else:
return CenterDiff(t,endtime,m,k,fext,u,delta,du)
if __name__ == "__main__":
m1=1;m2=1
k1 = 100.;k2=100.;k3=0.001