基于matlab的三自由度弹簧振动系统振动分析在对外激励的稳态相应编写matlab程序的时候,程序总是运行不出来.我写的是F1(t)=sint F2(t)=2sin(2t) F3(t)=3sin(3t) k1=k2=k3=k4=k m1=m2=m m3=2m在程序

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/24 03:24:22
基于matlab的三自由度弹簧振动系统振动分析在对外激励的稳态相应编写matlab程序的时候,程序总是运行不出来.我写的是F1(t)=sintF2(t)=2sin(2t)F3(t)=3sin(3t)k

基于matlab的三自由度弹簧振动系统振动分析在对外激励的稳态相应编写matlab程序的时候,程序总是运行不出来.我写的是F1(t)=sint F2(t)=2sin(2t) F3(t)=3sin(3t) k1=k2=k3=k4=k m1=m2=m m3=2m在程序
基于matlab的三自由度弹簧振动系统振动分析
在对外激励的稳态相应编写matlab程序的时候,程序总是运行不出来.
我写的是F1(t)=sint    F2(t)=2sin(2t)    F3(t)=3sin(3t)     k1=k2=k3=k4=k     m1=m2=m     m3=2m
在程序里面t已经定义了.t从1到20,每间隔0.1取点
但 matlab提示错误:
Undefined function or variable 't'.


Error in Forced (line 37)
QN1=AN'*F1*sin(w*t);



求解对外激励的稳态响应

建立函数文件Forced.m,并输入如下命令:
k=1;m=1;w=1;
k1=k;k2=k;k3=k;k4=k;
m1=m;m2=m;m3=2*m;
k11=k1+k2;k12=-k2;k13=0;
k21=-k2;k22=k2+k3;k23=-k3;
k31=0;k32=-k3;k33=k3+k4;
K=[k11,k12,k13;k21,k22,k23;k31,k32,k33];
M=[m1,0,0;0,m2,0;0,0,m3];
 
R=inv(M)*K;
D1=eig(R);
[p2,d]=sort(D1);
[V,Dm]=eig(R);
 
for i=1:3
    p(i,1)=sqrt(p2(i,1));
end
 
for i=1:3
    for j=1:3
        A1(i,j)=V(i,d(j))/V(1,d(j));
    end
end
Ap=A1;
 
Mp=Ap'*M*Ap;
Kp=Ap'*K*Ap;
for i=1:3
   AN(:,i)=Ap(:,i)/sqrt(Mp(i,i));
end
MN=AN'*M*AN;
KN=AN'*K*AN;
 
F1=[1;0;0];
F2=[0;2;0];
F3=[0;0;3];
QN1=AN'*F1*sin(w*t);
QN2=AN'*F2*sin(2*w*t);
QN3=AN'*F3*sin(3*w*t);
b1=[1/(p2(1,1)-w^2),0,0;
    0,1/(p2(2,1)-w^2),0;
    0,0,1/(p2(3,1)-w^2)];
b2=[1/(p2(1,1)-(2*w)^2),0,0;
    0,1/(p2(2,1)-(2*w)^2),0;
    0,0,1/(p2(3,1)-(2*w)^2)];
b3=[1/(p2(1,1)-(3*w)^2),0,0;
    0,1/(p2(2,1)-(3*w)^2),0;
    0,0,1/(p2(3,1)-(3*w)^2)];
XN1=b1*QN1;
XN2=b2*QN2;
XN3=b3*QN3;
 
T=20;
t=1:0.1:T;
X=AN*XN1+AN*XN2+AN*XN3;
figure;
subplot(3,1,1);
plot(t,X(1,:),'r');
subplot(3,1,2);
plot(t,X(2,:),'b');
subplot(3,1,3);
plot(t,X(3,:),'k');  

基于matlab的三自由度弹簧振动系统振动分析在对外激励的稳态相应编写matlab程序的时候,程序总是运行不出来.我写的是F1(t)=sint F2(t)=2sin(2t) F3(t)=3sin(3t) k1=k2=k3=k4=k m1=m2=m m3=2m在程序

应该把下面两句

T=20;
t=1:0.1:T;

放在

QN1=AN'*F1*sin(w*t);
QN2=AN'*F2*sin(2*w*t);
QN3=AN'*F3*sin(3*w*t);

之前,因为在这几句代码里就用到了变量t.