|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
本帖最后由 luckygyy 于 2014-3-18 10:11 编辑
​一般的主动振动控制中使用的控制器是最优控制,自适应,鲁棒等常见方式。但是最近读了一篇名为
Structural vibration control using an active resonator absorber modeling and control implementation
的论文。论文提出了一种的ARA控制器。其模型和控制方式和书上尝过的控制方式有很大的差距。
目前为至大部分公式我都理解,并且通过MATLAB中的仿真做了前半部分的建模.由于后半部分的建模无法理解,被卡往好久了。
希望研究的主动振动控制领域或者感兴趣的朋友们,看一看这篇,大家相互交流交流共同进步。
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:1;
%PZT system Parameters [Table 1]
m=.21214;
c=401.5;
k=11.48;
M=.1072;
K=3814.9;
C=79.49;
Z=C/(2*sqrt(M*K));
z=c/(2*sqrt(m*k));
Wn=sqrt(K/M);
wn=sqrt(k/m);
%input signal
w=Wn;
f=w/2/pi;
u=1*cos(w*t);
%Control Parameter
gc=m*(c^2/(m^2*(w^2-k/m))-k/m/w^2+1); %Equ 9
tc=c*sqrt(k/m)/(sqrt(m*k)*(w^2-k/m)); %Equ 9
gc=subs(gc);
tc=subs(tc);
%%%%%%%%%%%%%%%%%%%%%%%%%% Characteristic equation ↓↓↓↓↓↓↓↓↓↓
dg=re*((2*T*c*w^2-k+k*T^2*w^2)/w^2)+im*((c-T^2*w^2*c+2*k*T)/w^2);
dt=re*((c-T^2*w^2*c+2*k*T)/g/w^2+im*(k-2*T*c*w^2-k*T^2*w^2)/g/w^3+T/g*dg);
de4=(m*M+tc*c*M+tc*m*c+tc*m*C-gc*M)/(tc*m*M);
de4=subs(de4);
de3=(c*M+m*c+m*C+tc*k*M+tc*c*C+tc*m*k+tc*m*K-gc*C)/(tc*m*M);
de3=subs(de3);
de2=(k*M+c*C+m*k+m*K+tc*k*C+tc*c*K-gc*K)/(tc*m*M);
de2=subs(de2);
de1=(k*C+c*K+tc*k*K)/(tc*m*M);
de1=subs(de1);
de0=(K*k)/(tc*m*M);
de0=subs(de0);
de=s^5+de4*s^4+de3*s^3+de2*s^2+de1*s+de0; %equ 15
%%%%%%%%%%%%%%%%%%%%%%%%%% Characteristic equation ↑↑↑↑↑↑↑↑↑↑
%transform function ↓↓↓↓↓↓↓↓↓↓
%Absorber displancement Xa(s)
G1=(k+s^2*c*tc+s*(c*k*tc))/(s^5+de4*s^4+de3*s^3+de2*s^2+de1*s+de0);
%Primary system displancement X1(s)
G2=(s^2*m+s*c+k+s^3*m*tc+s^2*c*tc+s*k*tc)/(k+s^2*c*tc+s*(c*k*tc))/(s^5+de4*s^4+de3*s^3+de2*s^2+de1*s+de0);
G1=subs(G1);
G2=subs(G2);
s=tf('s');
%Absorber displancement Xa(s)
g1=((1730895979479040000000*10607^(1/2)*574000^(1/2)*s^2)/109485622730404250021937371 + (45418710501530012109375*10607^(1/2)*574000^(1/2)*s)/250252851955209714335856848 + 287/25)/(s^5 + (1878700388843757*s^4)/549755813888 + (578593472397117*s^3)/536870912 + (1756594957385885*s^2)/4194304 + (2875262642802247*s)/131072 + 2628978556747817/4194304);
%Primary system displancement X1(s)
g2=((803*s)/2 + (10607*s^2)/50000 + (172442936934400000*10607^(1/2)*574000^(1/2)*s)/381483006029283101121733 + (1730895979479040000000*10607^(1/2)*574000^(1/2)*s^2)/109485622730404250021937371 + (86221468467200*10607^(1/2)*574000^(1/2)*s^3)/10322015907457740173653 + 287/25)/(((1730895979479040000000*10607^(1/2)*574000^(1/2)*s^2)/109485622730404250021937371 + (45418710501530012109375*10607^(1/2)*574000^(1/2)*s)/250252851955209714335856848 + 287/25)*(s^5 + (1878700388843757*s^4)/549755813888 + (578593472397117*s^3)/536870912 + (1756594957385885*s^2)/4194304 + (2875262642802247*s)/131072 + 2628978556747817/4194304));
%transform function ↑↑↑↑↑↑↑↑↑↑
%Primary system
[y4,T4,x4]=lsim(g2,u,t);
figure(1)
plot(T4,y4)
%Absorber
[y5,T5,x5]=lsim(g1,u,t);
figure(2)
plot(T5,y5)
% step(g1)
% step(g2)
|
|