模型参考总结自适应控制Word文档格式.docx

上传人:b****6 文档编号:19983131 上传时间:2023-01-13 格式:DOCX 页数:15 大小:216.82KB
下载 相关 举报
模型参考总结自适应控制Word文档格式.docx_第1页
第1页 / 共15页
模型参考总结自适应控制Word文档格式.docx_第2页
第2页 / 共15页
模型参考总结自适应控制Word文档格式.docx_第3页
第3页 / 共15页
模型参考总结自适应控制Word文档格式.docx_第4页
第4页 / 共15页
模型参考总结自适应控制Word文档格式.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

模型参考总结自适应控制Word文档格式.docx

《模型参考总结自适应控制Word文档格式.docx》由会员分享,可在线阅读,更多相关《模型参考总结自适应控制Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。

模型参考总结自适应控制Word文档格式.docx

minJ=Je2(t)dt,e(t)为参考模型输出与对象输出的误差。

由于评价函数不能写成PID参数的解析函数形式,因此选用单纯形法做为寻优方法。

(参见有关优化设计参考文献)。

在上述分析及考虑下,可将系统表示具体结构表示如下图10.2所示。

图10.2系统仿真结构图

为了进行数字仿真(连续系统离散相似法),图中的模型是采用典型环节(积

分环节,惯性环节)型式表示。

对于图5-17所示系统,可写出各类环节的差数方程,其中,PID控制器的

差分方程为:

X3(k)=X3(k—1)+Kp[x5(k)—X5(k—1)+Txx5(k)+¥

(X5(k)—2x5(k—1)+x5(k—2))]

IiI

式中,K^为比例系数,T为积分时间常数,Td为微分时间常数,它们是自适

应津的调整参数,也是单纯形法的寻优参数。

T是采样周期。

用MATLA编写的仿真程序如下,(chp10-1.m和suba.m),程序中有关离散

相似法仿真及单纯形法寻优的原理请参见有关参考书,如参考文献

globalRI9L1L2L3xp1p2p3

globalKpE1F1G1E5F5G5m

globalK1T4T5

x=zeros(3,7);

Q=zeros(1,7);

p仁zeros(1000,1);

k=zeros(3,1);

N=3;

E=0.001;

R=1;

L=0.012;

p2=zeros(1000,1);

p3=zeros(1000,1);

L1=0.05;

L2=5;

L3=200;

m=0;

mn=0;

Kp1=zeros(100,1);

Ti=zeros(100,1);

Td=zeros(100,1);

Kp=2;

E1=1;

F1=L1;

G1=L1*L1/2;

E5=exp(-L1);

F5=Kp*(1-E5);

G5=Kp*(E5-1)+Kp*L1;

I9=0;

x(1,1)=1;

x(2,1)=0.5;

x(3,1)=0.9;

forj=2:

N+1

fori=1:

N

ifi==j-1x(i,j)=x(i,1)+L;

else

x(i,j)=x(i,1);

end

endend

forj=1:

Q(j)=suba(j);

endEx=0;

whileEx<

Q0=0;

N+1ifQ(j)>

Q0

Q0=Q(j);

j0=j;

Q1=0;

N+1ifj~=j0

ifQ(j)>

Q1

Q1=Q(j);

j1=j;

end

Q2=Q0;

ifQ(j)<

Q2

Q2=Q(j);

j2=j;

mn=mn+1;

Kp1(mn,1)=x(1,j2);

Ti(mn,1)=x(2,j2);

Td(mn,1)=x(3,j2);

ifQ2<

if(Q0-Q2)<

E

Ex=1;

elseif(Q0-Q2)<

(E*Q2)Ex=1;

x(i,N+2)=0;

x(i,N+2)=x(i,N+2)+x(i,j);

x(i,N+2)=2*(x(i,N+2)-x(i,j0))/N-x(i,j0);

j=N+2;

Q(N+2)=suba(j);

ifQ(N+2)<

Q(j1)

if(1.5*Q(N+2)-0.5*Q0)<

Q2;

x(i,N+4)=1.5*x(i,N+2)-0.5*x(i,j0);

j=N+4;

Q(N+4)=suba(j);

ifQ(N+4)<

Q(N+2);

x(i,N+3)=x(i,N+4);

Q(N+3)=Q(N+4);

x(i,N+3)=x(i,N+2);

Q(N+3)=Q(N+2)

Q(N+3)=Q(N+2);

Nx(i,j0)=x(i,N+3);

Q(j0)=Q(N+3);

else

ifQ(N+2)>

Q(j0)fori=1:

x(i,N+2)=x(i,j0);

x(i,j0)=x(i,N+3);

x(i,N+3)=0.3*x(i,j0)+0.7*x(i,N+2);

j=N+3;

Q(N+3)=suba(j);

ifQ(N+3)<

Nx(i,j)=(x(i,j)+x(i,j2))/2;

N+1Q(j)=suba(j);

I9=1;

j=j2;

Fin=suba(j)x(1,j2),x(2,j2),x(3,j2)figure

(1)m1=1:

1:

m;

m1=m1'

;

p1=p1(1:

m,1);

p2=p2(1:

p3=p3(1:

plot(m1,p1,'

r'

m1,p2,'

B'

m1,p3,'

g'

)gridpause

figure

(2)m2=1:

mn;

m2=m2'

Kp1=Kp1(1:

mn,1);

Ti=Ti(1:

Td=Td(1:

plot(m2,Kp1,'

m2,Ti,'

m2,Td,'

)grid

functionresulta=suba(j)

globalRI9L1L2L3xp1p2p3globalKpE1F1G1E5F5G5mglobalK1T4T5

K1=x(1,j);

T4=x(2,j);

T5=x(3,j);

x1=0;

x2=0;

x3=0;

x4=0;

x6=0;

w1=0;

w2=0;

w4=0;

w5=0;

u5=0;

t=0;

F=0;

T6=L1*L2;

fori1=1:

L3

x5=R-x6;

x3=x3+K1*(x5-w5+T6*x5/T4+T5*(x5-2*w5+u5)/T6);

u5=w5;

w5=x5;

fori2=1:

L2

x0=R-1.414*x1-x2;

u2=x1;

u4=x4;

v1=(x0-w1)/L1;

x1=E1*x1+F1*x0+G1*v1;

w1=x0;

v2=(u2-w2)/L1;

x2=E1*x2+F1*u2+G1*v2;

w2=u2;

v3=(u4-w4)/L1;

x4=E1*x4+F1*x3;

x6=E5*x6+F5*u4+G5*v3;

w4=u4;

x7=x2-x6;

t=t+L1;

F=F+x7*x7*L1;

ifI9==1

m=m+1;

p1(m,1)=x2;

p2(m,1)=x6;

p3(m,1)=x7;

endendresulta=F;

程序运行后,绘制出受控对象和参考模型的输出及两者间的误差曲线如图

10.3,控制器的三个参数(K.,Ti,Td)的变化曲线如图10.4所示,图中可以看

到,经过一段时间的调整(kd,Ti,Td自动调整)后,受控对象输出能很好地接近

参考模型的输出。

及两者间的误差曲线

读者可以改变系统的某些参数(如让程序中的ka=1或ka=3等)后再运行程序观看仿真结果。

10.2自校正控制

自校正控制技术特别适宜用于结构已知而参数未知但恒定或缓慢变化的随

机系统。

由于大多数工业对象正好具有这种特征,因此,自校正控制技术在工业控制过程中得到了广泛的应用。

10.2.1自校正控制系统的基本结构

与模型参考自适应控

外环由参数估计器和控制

图10.5自校正控制系统的典型结构

器设计计算机构组成。

参数估计器的功用是根据受控对象的输入及输出信息,连续不断地估计受控对象的参数,而控制器则根据参数估计器不断送来的参数估计值,通过一定的控制算法,按某一性能指标,不断形成最优控制作用,由于存在着多种参数估计和控制器设计算法,所以自校正控制的设计方法很多,其中,以用最小二乘法进行参数估计,按最小方差来形成控制作用的最小方差自校正控制器最为简单,并获得较多应用。

1022最小方差自校正控制器

以一个单输入、单输出、线性时不变的系统为讨论对象。

假如系统经常处

在随机扰动作用之下,如不加以控制、随机扰动将使系统输出相对其设定值产生很大波动。

或者说,系统输出的稳态方差将很大。

最小方差自校正控制就是根据

给定的对象数学模型,综合一个最优控制津,使系统输出的稳态方差最小。

设被控制对象的数学模型可表示为

A(q-1)y(k)=(q-d)B(q-1)u(k)+C(q-1)e(k)(10.2-1)

式中A(q-1)=1+a1q-1+、、、+anq-n

B(q-1)=bo+biq-1+、、、+boq-nb0工0

C(q-1)=1+C1q-1+、、、+C1q-n

U(k),y(k)为系统的输入,e(k)为均值为0的随机噪声,d为延时时间次数(dX1)。

对于系统(10.2-1),设输出所跟踪的目标值yr(k)已知,要求求解u(k)使方差E{[y(k)-yr(k)]了最小。

如果系统中参数是已知的,这个问题就是最小方差控制问题。

而如果参数未知(或不断缓慢变化),要在线递推估计和不断修正模型的参数值且使系统输出方差保持最小,这就成为最小方差自校正控制器问题。

为求解该问题,首先用A(q-1)=1+q.q-1+anboq-n并除C(q-1)=Hcq-1+、、、Cnq-n,进行d次除法后,C(q-1)可写成。

(10.2-2)

C(q-1)=A(q-1)R(q-1)+q-dS(q-1)

-d+1

式中R(q-1)=1+r1q-1+、、、+Sn-1q

/"

xz-1\-1-n+1

S(q)=So+S1q+、、、Sn-1q由(10.2-2).(10.2-1)式,有,

-1-1-1-d-1

C(q)y(k)=A(q)R(q)y(k)+qS(q)y(K)

=q-dR(q-1)B(q-1)u(k)+q-dS(q-1)y(k)+R(q-1)C(q-1)e(k)

-1-1-1

-C(q)[y(k)-yr(k)]=R(q)B(q)u(k-d)

+S(q-1)y(k-d)-C(q5r(k)+C(q-1)R(q-1)e(k)(10.2-3)

上式右边的前三项u()、y()、yr()是能够测定的,此外因为

111

R(q'

)B(q'

)=[bQ,(b1+r1)q-,、、、bd甘]

=[BqB1、、、Br+d-1]

且令

9=[sQ,S1,、、、Sn/jBojB1,、、、,Bn+d-1,C1,C2,、、、Cn]

「y(k-d)

y(k—d-n+1)u(kYl)

X(k-d)=

u(k—d-n+1)

—yr(k—1)

L—yr(k—n)・

则(10.2-3)式可写成

(10.2-4)

(10.2-5)

C(q-1)[y(k)-yr(k)]=0TX(k-d)-yr(k)+C(q■1)R(q-1)e(k)

/.y(k)-yr(k)=c-1(q-1)[日tTx(K-d)-yr(k)]+R(q-1)e(k)

U(k-d)=B:

[yr(k)-^(k—d)]

(10.2-8)

二u(k)=—[yr(k+d)-Xo(k)]

bo

但如果0q、Bq是未

式中,日0、X)分别表示从日、X中抽去Bq和u(k-d)后的矢量。

知的,便不能由(10.2-8)确定u(k),而须回到(10.2-6),考虑由X和丫「来求日的估计问题,这时可以用递推最小二乘方法来进行,其递推公式为

总』+:

匚?

[yr(k)XN卡]

人+XN半PNXN

n1nPNXN屮Xn十Pn1

Pn+=y[PN——]

兀人十XNH1PnXn+

可求得0的估计值&

,并由此求得$o,F,则

1今

u(k)=—[yr(k+d)-0;

Xo(k)]

由此而获得自校正控制输入

例10.2考虑一自校正控制问题,设受控对象为

y(k)-0.5y(k-1)-0.14y(k-2)=u(k-2)+0.5u(k-3)+0.2e(k)

用MATLAB编制设计程序(chp10_2.m),程序中设置了一个变化的目标值

yr,程序运行结果如图10.6所示,该仿真结果表示,所设计的最小方差自校正

控制器可使系统在有随机干扰的情况下使系统输出很好地跟踪设定值的变化。

%Chp10_2

globalq1pm1idy1_vr1

y仁zeros(26,1);

u仁zeros(26,1);

v仁zeros(26,1);

r仁zeros(26,1);

q仁zeros(26,1);

mu仁zeros(10,1);

my仁zeros(10,1);

mn仁zeros(10,1);

pm仁zeros(26,26);

sf=zeros(2,1);

f=zeros(10,1);

py1=zeros(800,1);

py2=zeros(800,1);

c=1;

%Init

nf=1;

di=1;

n=2;

m1=1;

ld=0.99;

um=80;

mu=2;

md=2;

p0=1;

25

pm1(i,i)=p0;

y1_v=0;

contr=0;

l=n+mu+md;

f(1:

5)=[0.50.141.00.50.2]'

%Setpointvalve

R=zeros(800,1);

200

R(i)=20;

fori=201:

400

R(i)=40;

endfori=401:

650

R(i)=30;

fori=651:

800

endforij=1:

%System_Model

forj=9:

-1:

my1(j+1)=my1(j);

mu1(j+1)=mu1(j);

mn1(j+1)=mn1(j);

my1

(1)=y1_v;

mu1

(1)=contr;

mn1

(1)=nf*randn

(1);

n

y1_v=y1_v+f(i)*my1(i);

mu

y1_v=y1_v+f(i+n)*mu1(i+md);

m1

y1_v=y1_v+f(i+n+mu)*mn1(i);

%X_vector

fori=25:

1u1(i+1)=u1(i);

endu1

(1)=mu1

(1);

fori=1:

nr1(i)=y1(i);

endfori=1:

mu+md

r1(i+n)=u1(i+md);

%Computesestimatesrecursively

F=subrls(l);

y1(i+1)=y1(i);

y1

(1)=y1_v;

r1(i)=y1(i);

r1(i+n)=u1(i);

%ComputeY(k)

Qi=0;

Qi=Qi+q1(i)*r1(i);

Qi=Qi+q1(i+n+1)*r1(i+n);

%Computeu(k)

B0=q1(n+1);

ifB0==0

B0=1;

contr=(R(ij)-Qi)/B0;

ifabs(contr)>

um

ifcontr>

contr=um;

contr=-um;

endpy1(ij)=y1_v;

py2(ij)=contr;

t=1:

800;

t=t'

plot(t,R,'

t,py1,'

b'

t,py2,'

grid

subrls

functionresult=subrls(l)globalq1pm1idy1_vr1v1=zeros(30,1);

z1=0;

ww=0;

l

v1(i)=0;

v1(i)=v1(i)+pm1(i,j)*r1(j);

z仁z1+r1(i)*q1(i);

ww=ww+r1(i)*v1(i);

endww=1+ww;

q1(i)=q1(i)+v1(i)*(y1_v-z1)/ww;

pm1(i,j)=(pm1(i,j)-v1(i)*v1(j)/ww);

result=l;

80

60

40

20

-20

IIhhri11■hhriHh

600

图10.6例10.2程序运行结果

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1