机械振动系统的matlab仿真分析

您所在的位置:网站首页 matlab力学仿真 机械振动系统的matlab仿真分析

机械振动系统的matlab仿真分析

2024-07-13 07:23| 来源: 网络整理| 查看: 265

[t,y]=solver('F',tspan,y0)

function ydot=F(t,y)

ydot=[function1;function2;function3;....]

functionn是以列向量形式组成为系统的状态方程(一阶微分方程组)

tspan运算的起止时间[t0,t1]

y0为初始状态值,用列向量来表示,维数为状态向量数

时域响应函数:

initial(零输入响应)

impulse(单位冲击响应)

step(单位阶跃响应)

lsim(任意输入响应)

频域响应函数:

bode(系统频率响应-伯德图曲线)

nyquist(系统奈奎斯特曲线)

单自由度振动系统和多自由度振动系统:---自由度:状态变量的个数

 m_1x''_1=f_1-c_1(x'_1-x'_2)-k_1(x_1-x_2)m_2x''_2=c_1(x'_1-x'_2)+k_1(x_1-x_2)+f_2-c_2x'_2-k_2x_2

X_1=x_1;X_2=x'_1;X_3=x_2;X_4=x'_2

X'_1=X_2

X'_2=-\frac{k_1}{m_1}X_1-\frac{c_1}{m_1}X_2+\frac{k_1}{m_1}X_3+\frac{c_1}{m_1}X_4+\frac{1}{m_1}f_1

X'_3=X_4

X'_4=\frac{k_1}{m_2}X_1+\frac{c_1}{m_2}X_2-\frac{k_1+k_2}{m_2}X_3-\frac{c_1+c_2}{m_2}X_4+\frac{1}{m_2}f_2

\bigl(\begin{smallmatrix} X'_1\\ X'_2\\ X'_3\\ X'_4 \end{smallmatrix}\bigr)=\begin{pmatrix} 0 & 1& 0 & 0\\ -\frac{k_1}{m_1}&-\frac{c_1}{m_1} &\frac{k_1}{m_1} &\frac{c_1}{m_1} \\ 0 & 0 & 0 & 1\\ \frac{k_1}{m_2}&\frac{c_1}{m_2} &-\frac{k_1+k_2}{m_2} &-\frac{c_1+c_2} {m_2} \end{pmatrix}\begin{pmatrix} X_1\\ X_2\\ X_3\\ X_4 \end{pmatrix}+\begin{pmatrix} 0 &0 \\ \frac{1}{m_1}& 0\\ 0&0 \\ 0&\frac{1}{m_2} \end{pmatrix}\begin{pmatrix} f_1\\ f_2 \end{pmatrix}

另外一种整理方法

\bigl(\begin{smallmatrix} m_1&0\\ 0 & m_2\\ \end{smallmatrix}\bigr)(\begin{smallmatrix} X''_1\\ X''_2 \end{smallmatrix}\bigr)+\bigl(\begin{smallmatrix}c_1&-c_1\\ -c_1 &c_1+c_2\\ \end{smallmatrix}\bigr)(\begin{smallmatrix} X'_1\\ X'_2 \end{smallmatrix}\bigr)+\bigl(\begin{smallmatrix} k_1&-k_1\\ -k_1 & k_1+k_2\\ \end{smallmatrix}\bigr)(\begin{smallmatrix} X_1\\ X_2 \end{smallmatrix}\bigr)=(\begin{smallmatrix} f_1\\ f_2 \end{smallmatrix}\bigr)

Y=\bigl(\begin{smallmatrix} x'\\ x \end{smallmatrix}\bigr)=\bigl(\begin{smallmatrix} x'_1\\ x'_2\\ x_1\\ x_2 \end{smallmatrix}\bigr)=\bigl(\begin{smallmatrix} \frac{c_1}{m_1} & -\frac{c_1}{m_1}&\frac{k_1}{m_1} &-\frac{k_1}{m_1} \\ -\frac{c_1}{m_2} &\frac{c_1+c_2}{m_2} &-\frac{k_1}{m_2} &\frac{k_1+k_2}{m_2} \\ 1 &0 &0 &0 \\ 0 & 1 & 0& 0 \end{smallmatrix}\bigr)\bigl(\begin{smallmatrix} x'_1\\ x'_2\\ x_1\\ x_2 \end{smallmatrix}\bigr)+\bigl(\begin{smallmatrix} \frac{1}{m_1}& 0\\ 0 &\frac{1}{m_2} \\ 0 &0 \\ 0& 0 \end{smallmatrix}\bigr)\bigl(\begin{smallmatrix} f_1\\ f_2 \end{smallmatrix}\bigr)

取弹簧和阻尼器对左侧壁和质量m1的水平作用力z1、z2和质量m1、m2的位移z3、z4为所要研究的输出

c=\bigl(\begin{smallmatrix} 0 &c_2 & 0 &k_2 \\ -c_1& c_1 &-k_1 &k_1 \\ 0& 0& 1&0\\ 0& 0 &0 & 1 \end{smallmatrix}\bigr)

D=0

m1=1.5 c1=0.5 k1=0.3 m2=2 c2=0.3 k2=0.6 t1=0:0.1:10 f1=0*t1 f2=0.1*sin(5*t1) u=[f1;f2] A=[-c1/m1 c1/m1 -k1/m1 k1/m1;c1/m1 -(c1+c2)/m2 k1/m2 -(k1+k2)/m2;... 1 0 0 0;0 1 0 0] B=[1/m1 0;0 1/m2;0 0;0 0] C=[0 c2 0 k2;-c1 c1 -k1 k1;0 0 1 0;0 0 0 1] D=0 G=ss(A,B,C,D) x=[0 0 0 0] [y,t1,x]=lsim(G,u,t1,x) plot(t,x(:,1),'g',t,x(:,2),'r',t,x(:,3),'--',t,x(:,4),'-*') legend('x(1)','x(2)','x(3)','x(4)')

 其中遇到的问题:

错误使用 DynamicSystem/lsim (第 84 行) Invalid syntax for time or frequency response command. See command help for more information.

出错 main (第 21 行) [y,t1,x]=lsim(G,f1,f2,t1,x)

解决:

lsim(SYS,U,T)绘制动态系统SYS对输入信号用U和T表示,时间向量T表示为的时间单位,由规则间隔的时间样本组成。矩阵U的列数与SYS中的输入数一样多,并且它的第i行指定

T(i)时刻的输入值。

f1=0*t1 f2=0.1*sin(5*t1) u=[f1;f2]  

上图中,图线x1、x2、x3、x4为质量块m1、m2的状态变量-位移(也即输出变量z3、z4)。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3