|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
自己做的主动吸振器LQR控制MATLAB仿真拿出来分享下。如有错误可以一起讨论讨论
clc
clear
syms w re im T g dg m M c C k K mu wn Wn z Z s
t=0:0.0001:10;
%System Parameters
m=0.0195;
c=0.173;
k=11.223;
M=0.195;
K=135.7979;
C=0.05;
Z=C/(2*sqrt(M*K));
z=c/(2*sqrt(m*k));
Wn=sqrt(K/M);
wn=sqrt(k/m);
mu=m/M;
%input signal
w=Wn;
f=w/2/pi;
u=1*cos(w*t);
% %%%%%%% State space matrix from Jap Paper%∨∨∨∨∨∨∨∨∨∨%
AA=[0 1 0 0;-(1+mu)*wn^2 -2*(1+mu)*z*wn Wn^2 2*Z*Wn;0 0 0 1;mu*wn^2 2*mu*z*wn -Wn^2 -2*Z*Wn];
BB=[0;-(1/M+1/m);0;1/M];
CC=[1 0 0 0];
DD=0;
%∨∨∨∨∨∨∨∨∨∨% Without Control %∨∨∨∨∨∨∨∨∨∨%
A_p=[0 1;-Wn^2 -2*Z*Wn];
B_p=[0;1/M];
C_p=[0 1];
D_p=0;
s2=ss(A_p,B_p,C_p,D_p);
q=[0 0 1 0];
Q=diag(q,0);
R=0.001;
[KK,P]=lqr(AA,BB,Q,R);
s1=ss(AA-BB*KK,BB,CC,DD);
[y1,T1,x1]=lsim(s1,u,t);
figure(1)
subplot(2,2,1)
plot(T1,x1(:,1))
title('Primary system displacement')
xlabel('time')
ylabel('Displacement[m]')
subplot(2,2,2)
plot(T1,x1(:,2))
title('Primary system velocity')
xlabel('time')
ylabel('Velocity[m/s]')
subplot(2,2,3)
plot(T1,x1(:,3))
title('Absorber displacement')
xlabel('time')
ylabel('Displacement[m]')
subplot(2,2,4)
plot(T1,x1(:,4))
title('Absorber velocity')
xlabel('time')
ylabel('Velocity[m/s]')
[y2,T2,x2]=lsim(s2,u,t);
% figure(2)
% subplot(2,2,1)
% plot(T2,x2(:,1))
% title('Primary system displacement')
% xlabel('time')
% ylabel('Displacement[m]')
% subplot(2,2,2)
% plot(T2,x2(:,2))
% title('Primary system velocity')
% xlabel('time')
% ylabel('Velocity[m/s]')
figure(3)
subplot(2,1,1)
plot(T2,x2(:,1),T1,x1(:,1))
title('Primary system& Absorber displacement')
xlabel('time')
ylabel('Displacement[m]')
legend('Without Absorber','With Absorber')
subplot(2,1,2)
plot(T2,x2(:,2),T1,x1(:,2))
title('Primary system& Absorber velocity')
xlabel('time')
ylabel('Velocity[m/s]')
legend('Without Absorber','With Absorber')
|
|