线性二次型最优控制.. 下载本文

内容发布更新时间 : 2025/2/9 3:24:08星期一 下面是文章的全部内容请认真阅读。

一、主动控制简介

概念:结构主动控制需要实时测量结构反应或环境干扰,采用现代控制理论的主动控制算法在精确的结构模型基础上运算和决策最优控制力,最后作动器在很大的外部能量输入下实现最优控制力。

特点:主动控制需要实时测量结构反应或环境干扰,是一种需要额外能量的控制技术,它与被动控制的根本区别是有无额外能量的消耗。

优缺点:主动控制具有提高建筑物的抵抗不确定性地面运动,减少输入的干扰力,以及在地震时候自动地调整结构动力特征等能力,特别是在处理结构的风振反应具有良好的控制效果,与被动控制相比,主动控制具有更好的控制效果。但是,主动控制实际应用价格昂贵,在实际应用过程中也会存与其它控制理论相同的问题,控制技术复杂、造价昂贵、维护要求高。

组成:传感器、控制器、作动器 工作方式:开环、闭环、开闭环。

二、简单回顾主动控制的应用与MATLAB应用

1.主动变刚度AVS控制装置

工作原理:首先将结构的反应反馈至控制器,控制器按照事先设定好的控制算法并结合结构的响应,判断装置的刚度状态,然后将控制信号发送至电液伺服阀以操纵其开关状态,实现不同的变刚度状态。

锁定状态(ON):电液伺服阀阀门关闭,双出杆活塞与液压缸之间没有相对位移,斜撑的相对变形与结构层变形相同,此时结构附加一个刚度;

打开状态(OFF):电液伺服阀阀门打开,双出杆活塞与液压缸之间有相对位移,液压缸的压力差使得液体发生流动,此过程中产生粘滞阻尼,此时结构附加一个阻尼。

示意图如下:

2. 主动变阻尼AVD控制装置

工作原理:变孔径阻尼器以传统的液压流体阻尼器为基础,利用控制阀的开孔率调整粘性油对活塞的运动阻力,并将这种阻力通过活塞传递给结构,从而实现为结构提供阻尼的目的。

关闭状态(ON):开孔率一定,液体的流动速度受限,流动速度越小,产生的粘滞阻尼力越大,开孔率最小时,提供最大阻尼力,此时成为ON状态;

打开状态(OFF):控制阀完全打开,由于液体的粘滞性可提供最小阻尼力。

1

示意图如下:

0??4.406?1.92100??2762?kgK???1.9213.443?1.522??105N/m3.振动实例 M??027600??????1.5221.522?02300??0??,?已知多自由度有阻尼线性结构的参数:?0,

阻尼矩阵采用瑞利阻尼C??M??K,?,?根据前两阶自振频率及阻尼比确定,阻尼比取0.05,该多自由度结构(参数同上)所受地震波数据见dzb.xls文件,文件第一列为时间,单位s,文件第2列为加速度,单位m/s2。

方法采用中心差分法: 3.1变刚度

对比了刚度分别为K、10*K以及0.1*K时M1的响应时程曲线以及最大位移。 MATLAB程序如下: clear clc

M=diag([2762 2760 2300]); %质量矩阵 K=100000*[4.406 -1.921 0;-1.921 3.443 -1.522;0 -1.522 1.522];

kk={K,10.*K,0.1.*K} %细胞矩阵-变刚度 W=[4.1041;10.4906;14.9514]; %各阶频率 zuni=0.05

area=2*W(1)*W(2)*zuni/(W(1)+W(2));byta=2*zuni/(W(1)+W(2));

C=area*M+byta*K; %阻尼矩阵 num=xlsread('dzb.xls',1,'B1:B1501');P=M*ones(3,1)*num'; %读入外荷载 *********中心差分法**********

h=0.02; %步长 para=[1/h^2,1/(2*h),2/h^2,h^2/2]; %参数向量 Kx=para(1)*M+C*para(2); %x(i+1)前系数 x(:,1)=zeros(3,1); %初位移 v(:,1)=zeros(3,1); %初速度 a(:,1)=-0.00082*num(1)*ones(3,1); %初加速度 for j=1:3

for i=1:1:1501 %差分迭代第一步 if i<2;

2

x0=x(:,1)-h*v(:,1)+h^2/2*a(:,1);

Px(:,i)=P(:,i)-(kk{j}-para(3)*M)*x(:,i)-(para(1)*M-para(2)*C)*x0; x(:,i+1)=inv(Kx)*Px(:,i);

a(:,i+1)=para(1)*(x0-2*x(:,i)+x(:,i+1)); %加速度响应 v(:,1)=para(2)*(x(:,i+1)-x0); %速度响应 else %差分迭代 Px(:,i)=P(:,i)-(kk{j}-para(3)*M)*x(:,i)-(para(1)*M-para(2)*C)*x(:,i-1); x(:,i+1)=inv(Kx)*Px(:,i);

a(:,i+1)=para(1)*(x(:,i-1)-2*x(:,i)+x(:,i+1)); %加速度响应 v(:,i)=para(2)*(x(:,i+1)-x(:,i-1)); %速度响应 end end

*************中心差分法************* X=x(:,1:1501); Y=max(abs(X),[],2); Z(j)=max(Y);

save X %保存位移相应 subplot(3,1,j) %画图 plot(X(1,:)) xlabel('时间t/0.02s') ylabel('位移X1/m'); end

运行结果如下:

3