📄 linear3dof.m
字号:
function yp=linear3dof(tb,yb,n,te);
% The 3-DOF Linear System
% mass matrix: m1=6kg, m2=5kg, m3=4kg
m(1)=6; m(2)=5; m(3)=4;
mass=diag(m);
% Stiffness Matrix: k(1)=3000;k(2)=2000;k(3)=1000;
k(1)=300;k(2)=240;k(3)=180;
stiff=zeros(n);
stiff(1,1)=k(1)+k(2); stiff(1,2)=-k(2);
for i=2:n-1;
stiff(i,i-1)=-k(i);
stiff(i,i)=k(i)+k(i+1);
stiff(i,i+1)=-k(i+1);
end
stiff(n,n-1)=-k(n); stiff(n,n)=k(n);
% Natural frequencies are 0.5370Hz,1.3114Hz and 1.8813Hz
% Damping Matrix: c(1)=1.8N/m, c(2)=1.5N/m, c(3)=1.0N/m,
c(1)=1.8;c(2)=1.5;c(3)=1.0;
damp=zeros(n);
damp(1,1)=c(1)+c(2); damp(1,2)=-c(2);
for i=2:n-1;
damp(i,i-1)=-c(i);
damp(i,i)=c(i)+c(i+1);
damp(i,i+1)=-c(i+1);
end
damp(n,n-1)=-c(n); damp(n,n)=c(n);
% State transition matrix
A=zeros(2*n);
A(1:n,n+1:2*n)=eye(n);
A(n+1:2*n,1:n)=-inv(mass)*stiff;
A(n+1:2*n,n+1:2*n)=-inv(mass)*damp;
% Excitation localization matrix with excitation at the 3rd floor
locat=zeros(n,1); locat(n)=1.0;
B=zeros(2*n,1);
B(n+1:2*n)=inv(mass)*locat;
% White noise excitation
% load force.mat
% u=interp1(force(:,1),force(:,2),tb);
% load elcentro.txt
% u=interp1(elcentro(:,1),elcentro(:,2),tb);
% Sweep sine excitation at the 3rd floor
amp=20.0;
f0=.2;
fe=12.0;
u=amp*sin((f0+(fe-f0)/2/te*tb)*tb);
yp = A * yb+B*u;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -