自适应控制算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
自适应控制算法综述
定时器Timer0中断服务子程序在整个控制过程中处于最核心地位。振动数据的采样频率就是通过定时器Timer0的中断周期来实现的,实际中中断周期为0.1ms 。程序每隔0.1ms 读取一次A/D 采集并平滑过的数据,调用单点数据的LMS 自适应处理子程序,计算完成后通过D/A 输出控制信号,经功放放大后作用于压电作动器。即实现了在采样频率10KHz 下,智能结构振动控制的实时处理。
参考自适应对消原理图,自适应对消的目的在于利用0v (n)和1v (n)的相关性,使y(n)成为0v (n)的估计值,则e(n)逼近s(n)的估计值。由图可得
e(n)=d(n)-y(n)
又有:
d(n)=s(n)+ 0v (n)
所以:
e(n)=s(n)+ 0v (n)-y(n)
)]()()[(2)]()([)()(02022n y n v n s n y n v n s n e -+-+=
由于)(n y 是)(0n v 的估计值,又)(n s 与)(0n v 不相关,所以有E{2s(n)[v0(n)-y(n)]}为0,即有
E[)(2n e ]=E[)(2n s ]+E[(v0(n)-y(n))2]
显然,当y(n)趋于v0(n)时,有
)]([2n e E 取得最小值。 各信号的对应关系如下:
s(n)-实验中振动对象自身所带的噪声信号。
v0(n)-实验中激振器激励振动对象的振动信号。
d(n)-实验中未对振动对象进行振动主动控制时的振动信号。
v1(n)-实验中激振器激励振动对象同时提供的激励参考信号。
y(n)-实验中控制器根据自适应控制算法提供的控制信号。
e(n)-实验中已对振动对象进行振动主动控制后的振动信号。
设自适应滤波器的长度m=64,收敛因子mu=0.005,信号长度n=512。m=64;
mu=0.005;
n=512;
x=zeros(1,n+1);
w=zeros(1,m*3);
d=zeros(1,n+1);
inputsignal=zeros(1,n+1);
designsignal=zeros(1,n+1);
outputsignal=zeros(1,n+1);
errorsignal=zeros(1,n+1);
e=0;
y=0;
for i=1:n
ds=sin(2*pi*0.02(i-1))+0.2*WGN(1,1,1,’real’);
xs=sin(2*pi*0.02(i-1));
for ii=2:m
x(ii-1)=x(ii);
end
x(m)=xs;
y=0;
for ii=1:m
y=y+x(ii)*w(ii);
end
e=ds-y;
for ii=1:m
w(ii)=w(ii)+2.0*mu*e*x(ii);
end
inputsignal(i)=xs;
designsignal(i)=ds;
outputsignal(i)=y;
errorsignal(i)=e;
end
figure(1);
j=1:n
subplot(4,1,1)
plot(j,designsignal(j),’b’)
title(‘期望信号’);
subplot(4,1,2)
plot(j,inputsignal(j),’b’)
title(‘输入信号’);
subplot(4,1,3)
plot(j,outputsignal(j),’b’)
title(‘滤波输出信号’);
subplot(4,1,4)
plot(j,errorsignal(j),’b’)
title(‘误差信号’);