智能控制之专家系统的设计.docx

上传人:聆听****声音 文档编号:791085 上传时间:2023-04-30 格式:DOCX 页数:5 大小:53.23KB
下载 相关 举报
智能控制之专家系统的设计.docx_第1页
第1页 / 共5页
智能控制之专家系统的设计.docx_第2页
第2页 / 共5页
智能控制之专家系统的设计.docx_第3页
第3页 / 共5页
智能控制之专家系统的设计.docx_第4页
第4页 / 共5页
智能控制之专家系统的设计.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

智能控制之专家系统的设计.docx

《智能控制之专家系统的设计.docx》由会员分享,可在线阅读,更多相关《智能控制之专家系统的设计.docx(5页珍藏版)》请在冰点文库上搜索。

智能控制之专家系统的设计.docx

1.题目

题目一、需要对专家控制规则做出明确的设计、编写控制器程序并作解释。

已知典型二阶系统的单位阶跃响应输出曲线和误差曲线如图1所示。

假设某二阶系统的的传递

函数为G(s)=

133

s2+25s

,对象采样时间为1ms,试设计一个专家PID控制器,根据其响应误差制定专

家控制规则,以改善响应特性,并进行Matlab仿真。

2.专家PID控制过程分析

专家控制的实质是基于受控对象和控制规律的各种知识,并以智能的方式利用这些知识来设计控制器。

利用专家经验来设计PID参数便构成了专家PID控制。

(1)首先通过传递函数离散取样,采样时间间隔为1ms。

(2)然后取PID初始值:

kp=0.6;ki=0.03;kd=0.01;

(3)二阶系统阶跃过程分析如下,取阶跃信号rin(k)=1

令e(k)表示离散化的当前采样时刻的误差值,e(k-1)、e(k-2)、分别表示前一个和前两个采样时刻的误差值,则有

De(k)=e(k)-e(k-1)

De(k-1)=e(k-1)-e(k-2)

根据误差及其变化,对二阶系统单位阶跃响应误差曲线做如下定性分析:

首先定义如下参数:

误差界限,M1>M2>0;其中M1可取0.8,0.6,0.4,三值,M2=0.1

增益抑制系数,0

增益放大系数,k1>1;k1=2

第k次和第k-1次控制器输出u(k),u(k-1);

e=0.001—————任意小正实数。

Ⅰ.e(k)>0.8时,说明误差的绝对值已经很大。

不论误差变化趋势如何,都应考虑控制器按定值

0.7输出。

以达到迅速调整误差,使得误差绝对值以最大速度减小,同时避免超调。

此时,它相当于开环控制。

同理,当e(k)>0.6,定值输出0.5;当e(k)>0.4,定值输出0.2。

Ⅱ.当e(k)De(k)>0或e(k)³M2,说明误差很大,并且在朝着误差绝对值增大方向变化,这时可以考虑由控制器实施较强的控制作用,使得误差绝对值朝减小方向变化,迅速减小误差的绝对值,控制器的输出为u(k)=u(k-1)+k1kpe(k)

当e(k)De(k)>0且e(k)

Ⅲ.当e(k)De(k)<0,De(k)De(k-1)>0或e(k)=0时,即e(k)

此时可以考虑保持控制器输出不变。

u(k)=Kp*e(k)+Kd*(e(k)-e(k-1))/ts+Ki*(e(k)+e(k)*ts)。

Ⅳ.当e(k)De(k)<0,De(k)De(k-1)<0且e(k)³M2时,即e(k-1)>e(k)且e(k-1)>e(k-2)且

e(k)³M2,说明误差处于极值状态并且误差绝对值较大,可以考虑实施较强的控制作用,即

u(k)=u(k-1)+k1kpe(k)

当e(k)De(k)<0,De(k)De(k-1)<0且e(k)

u(k)=u(k-1)+k2kpe(k)

Ⅴ.当e(k)£e(精度)时,说明误差绝对值很小,此时加入积分环节,减小稳态误差。

此时控制器输出为:

u(k)=kp*e(k)+ki*(e(k)+e(k)*ts)。

综上所述,(0,t1),(t2,t3),(t4,t5)这几个区域,误差朝绝对值减小的方向变化,此时

可以采取等待措施,相当于实施开环控制;(t1,t2),(t3,t4)这几个区域,误差朝着绝对值增大的方向变化,根据误差的大小分别实施较强或者一般的控制作用,以抑制动态误差。

(4)最后写出线性模型及当前采样时刻的误差值:

y(k)=-den

(2)´y(k-1)-den(3)´y(k-2)+num

(1)´u(k)+num

(2)´u(k-1)+num(3)´u(k-2)

e(k)=rin(k)-y(k)

(5)循环以上(3)—(4)步,循环次数为1000次。

(6)画出专家PID控制阶跃响应曲线图(a)和误差响应曲线(b)。

专家PID控制系统阶跃响应曲线图(a)

误差响应曲线(b)

(7)程序部分

%ExpertPIDControllerclearall

closeall

ts=0.001; %采样周期

sys=tf(133,[1,25,0]); %tf表示给出分子和分母系数生成一个传递函数sysdsys=c2d(sys,ts,'z'); %将连续形式sys转化为离散形式dsys,采样周期为1ms,z表

示零阶保持器

[num,den]=tfdata(dsys,'v'); %num表示分子,den表示分母,tfdata表示取离散形式dsys的

分子分母,v表示取出的数据保存为行向量的形式

u_1=0;u_2=0;y_1=0;y_2=0;

x=[0,0,0]'; %x

(1)x

(2)x(3)分别对应PID中比例、微分、积分项x2_1=0;

kp=1.64;

ki=0.03;kd=0.01;k1=2;k2=0.5;

error_1=0;

fork=1:

1:

1000time(k)=k*ts;

r(k)=1; %单位阶跃输入

u(k)=kp*x

(1)+kd*x

(2)+ki*x(3); %PIDController

%Expertcontrolrule

ifabs(x

(1))>0.8 %规律一u(k)=0.7;

elseifabs(x

(1))>0.60

u(k)=0.5;

elseifabs(x

(1))>0.40u(k)=0.20;

end

if(x

(1)*x

(2)>0)|(x

(2)==0) %规律二ifabs(x

(1))>=0.1

u(k)=u_1+k1*kp*x

(1);

else

u(k)=u_1+k2*kp*x

(1);

end

end

if(x

(1)*x

(2)<0&x

(2)*x2_1>0)|(x

(1)==0) %规律三u(k)=kp*x

(1)+kd*x

(2)+ki*x(3);

end

if(x

(1)*x

(2)<0)&(x

(2)*x2_1<0) %规律四ifabs(x

(1))>=0.1

u(k)=u_1+k1*kp*x

(1);

else

u(k)=u_1+k2*kp*x

(1);

end

end

ifabs(x

(1))<=0.001 %规则五u(k)=0.5*x

(1)+0.01*x(3);

end

%Restrictingtheoutputofcontroller防止程序跑飞ifu(k)>=10

u(k)=10;

end

ifu(k)<=-10u(k)=-10;

end

%Linearmodel

y(k)=-den

(2)*y_1-den(3)*y_2+num

(1)*u(k)+num

(2)*u_1+num(3)*u_2;%系统的差分方程error(k)=r(k)-y(k);

%----------Returnofparameters %完成叠代

u_2=u_1;u_1=u(k);y_2=y_1;y_1=y(k);

x

(1)=error(k); %CalculatingPx2_1=x

(2);

x

(2)=(error(k)-error_1)/ts; %CalculatingDx(3)=x

(1)+error(k)*ts; %CalculatingI

error_1=error(k);end

figure

(1);plot(time,r,'b',time,y,'r');

xlabel('time(s)');ylabel('r,y');figure

(2);

plot(time,r-y,'r');xlabel('time(s)');ylabel('error');

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

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2