智能控制技术实验报告文档格式.docx
- 文档编号:17932643
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:15
- 大小:383.92KB
智能控制技术实验报告文档格式.docx
《智能控制技术实验报告文档格式.docx》由会员分享,可在线阅读,更多相关《智能控制技术实验报告文档格式.docx(15页珍藏版)》请在冰豆网上搜索。
u
e
e’
NB
NS
ZR
PS
PB
NB
PB
PS
ZR
NS
四、实验组织运行要求
根据本实验的综合性、设计性特点以及要求学生自主设计MATLAB仿真程序的要求以及我们实验室的具体实验条件,本实验采用以学生自主训练为主的开放模式组织教学。
五、实验条件
1.装有MATLAB6.5的计算机;
2.智能控制技术教材;
3.模糊控制教材;
4.智能控制技术实验指导书。
六、实验步骤
1.学生熟悉实验内容,并根据实验内容、实验要求,查阅、学习相关知识;
2.设计典型二阶环节的PID控制器以及模糊控制器;
3.编写MATLAB仿真程序
4.上机调试程序,修改程序修改控制器的参数等;
5.对实验程序仿真,并记录仿真结果;
6.对实验结果进行分析,书写实验报告书。
七、实验程序
num=20;
den=[1.6,4.4,1];
[a1,b,c,d]=tf2ss(num,den);
%将传递函数转化为状态模型
x=[0;
0];
T=0.01;
h=T;
%T为采样时间
umin=0.07;
umax=0.7;
td=0.02;
Nd=td/T;
%Nd延迟时间
N=500;
R=1.5*ones(1,N);
%参考值
e=0;
de=0;
ie=0;
kp=5;
ki=0.1;
kd=0.001;
%设定的比例,积分,微分常数
fork=1:
N
uu1(1,k)=-(kp*e+ki*ie+kd*de);
%控制量生成
ifk<
=Nd%纯延迟
u=0;
else
u=uu1(1,k-Nd);
end
ifabs(u)<
=umin%死区和饱和环节
u=0
elseifabs(u)>
umax
u=sign(u)*umax;
%龙格-库塔算法求对象的输出
k1=a1*x+b*u;
k2=a1*(x+h*k1/2)+b*u;
k3=a1*(x+h*k2/2)+b*u;
k4=a1*(x+h*k3)+b*u;
x=x+(k1+2*k2+2*k3+k4)*h/6;
y=c*x+d*u;
%计算误差.微分和积分
e1=e;
e=y(1,1)-R(1,k);
de=(e-e1)/T;
ie=e*T+ie;
yy1(1,k)=y;
end;
kk=[1:
N]*T;
figure
(1);
plot(kk,yy1);
a=newfis('
simple'
);
%建立模糊推理系统
a=addvar(a,'
input'
'
e'
[-66]);
%增加第一个输入变量e
a=addmf(a,'
1,'
NB'
trapmf'
[-6-6-5-3]);
%添加隶属函数
NS'
[-5-3-20]);
ZR'
trimf'
[-202]);
PS'
[0235]);
PB'
[3566]);
de'
%增加第二个输入变量e
2,'
%添加隶属函数
a=addvar(a,'
output'
u'
[-33]);
%添加输出变量u
[-3-3-2-1]);
[-2-10]);
[-101]);
[012]);
[1233]);
%建立模糊规则矩阵
rr=[55443;
54433;
44332;
43322;
33221];
r1=zeros(prod(size(rr)),3);
%得到一个25X3的0阶矩阵
k=1;
fori=1:
size(rr,1)
forj=1:
size(rr,2)
r1(k,:
)=[i,j,rr(i,j)];
k=k+1;
[r,s]=size(r1);
r2=ones(r,2);
rulelsit=[r1,r2];
a=addrule(a,rulelsit);
%rulelist为25X(2+1+2)矩阵,每一行代表一个规则,某一
%行的前2列为输入,接着一列为输出,最后两列为控制所有均
%为1
de=0;
x=[0;
ke=60;
kd=2.5;
ku=0.8;
%定义edeu的量化因子
fork=1:
e1=ke*e;
de1=kd*de;
ife1>
=6
e1=6;
elseife1<
-6
e1=-6;
ifde1>
de1=6;
elseifde1<
de1=-6;
in=[e1de1];
uu(1,k)=ku*evalfis(in,a);
=Nd
u=uu(1,k-Nd);
=umin
e=y-R(1,k);
ie=ie+e*T;
yy(1,k)=y;
%绘制结果曲线
plot(kk,R,'
k'
kk,yy,'
r'
kk,yy1,'
b'
xlabel('
时间(0.01秒)'
ylabel('
输出'
gtext('
模糊控制'
PID控制'
%end
8、实验结果
9、思考题
1.模糊控制器的控制性能是否一定优于传统PID控制器?
不一定,若要求反应速度那么可以选择模糊控制方式。
若要求控制精度高则可以选择pid方式
2.如果选用模糊控制工具箱,如何进行设计、仿真?
答:
在matlab的主窗口中输入fuzzy即可调出模糊工具箱界面,退出界面的时候会提示保存,保存格式为fis,如果我们将文件保存为njust.fis,那么下次使用这个文件的时候在主窗口中输入fuzzynjust即可。
模糊控制器的建立过程如下:
(1)设定误差E、误差变化率EC和控制量U的论域为,一般为[-66]。
(2)设定E、EC、U的模糊集。
一般可设为{NB、NM、NS、ZO、PS、PM、PB}。
(3)设定隶属度函数。
有高斯型隶属度函数、三角型隶属度函数等。
(4)设定模糊控制规则。
常用的模糊控制规则如图1所示,当然可以根据特定的控制对象和要求进行相应的调整。
实验二:
神经元自适应PID控制仿真研究
通过本实验的学习,使学生了解传统PID控制、神经元自适应控制等基本知识,掌握传统PID控制器设计、掌握基于二次型性能指标学习算法的单神经元自适应PID控制等知识,训练学生设计控制器的能力,培养他们利用MATLAB进行仿真的技能,为今后继续神经网络控制理论的研究以及控制仿真等学习奠定基础。
本实验主要是学习应用最优二次型性能指标学习算法进行控制器的设计仿真研究。
主要涉及自控原理、计算机仿真、智能控制、神经网络控制等知识,综合性较强。
设被控对象过程模型为:
yout(k)=0.368yout(k-1)+0.264yout(k-2)+u(k-d)+0.632u(k-d-1)+ξ(k)
应用最优二次型性能指标学习算法进行仿真研究,最后要求得出神经元自适应PID跟踪及中权值变化结果。
在最优控制理论中,采用二次型性能指标来计算控制律可以得到所期望的优化效果。
在神经元学习算法中,也可借助最优控制中二次型性能指标的思想,在加权系数的调整中引入二次型性能指标,使输出误差和控制增量加权平方和为最小来调整加权系数,从而间接实现对输出误差和控制增量加权平方和为最小来调整加权系数,从而间接实现对输出误差和控制增量加权的约束控制。
设性能指标为:
式中,
分别为输出误差和控制增量的加权系数,
和
为
时刻参考输入和输出。
神经元的输出为:
1)应用最优二次型性能指标学习算法进行仿真研究,ξ(k)为在100个采样时间的外加干扰,ξ(100)=0.10,输入为阶跃响应信号rin(k)=1.0;
2)启动时采用开环控制,取u=0.1726,K=0.02,P=2,Q=1,d=6;
3)比例、积分、微分三部分加权系数学习速率分别取ηI=4,ηP=120,ηD=159,ω1(0)=0.34,ω2(0)=0.32,ω3(0)=0.33;
4)利用MATLAB编写仿真程序,得出神经元自适应PID跟踪及中权值变化结果。
3.神经网络控制教材;
2.设计应用最优二次型性能指标学习算法进行仿真研究的单神经元自适应PID控制器;
3.编写MATLAB仿真程序;
4.上机调试程序,修改程序、修改控制器的参数等;
%SingleNeuralNetPIDControllerbasedon%SecondTypeLearningAlgorithmclearall;
closeall:
xc=[0,0,0]'
;
K=0.02;
P=2;
Q=1;
d=6;
xiteP=120;
xiteI=4;
xiteD=159;
%Initializingkp,kiandkd
wkp_1=rand;
wki_1=rand;
wkd_1=rand;
wkp_1=0.34;
wki_1=0.32;
wkd_1=0.33;
error_1=0;
error_2=0;
y_1=0;
y_2=0;
u_1=0.1726;
u_2=0;
u_3=0;
u_4=0;
u_5=0;
u_6=0;
u_7=0;
ts=0.001;
1:
250
time(k)=k*ts;
rin(k)=1.0;
%TracingStepSignal
ym(k)=0;
ifk==100
ym(k)=0.10;
%Disturbance
end
yout(k)=0.368*y_1+0.26*y_2+u_6+0.632*u_7+ym(k);
error(k)=rin(k)-yout(k);
wx=[wkp_1,wkd_1,wki_1];
wx=wx*xc;
b0=yout
(1);
K=0.0175;
wkp(k)=wkp_1+xiteP*K*[P*b0*error(k)*xc
(1)-Q*K*wx*xc
(1)];
wki(k)=wki_1+xiteI*K*[P*b0*error(k)*xc
(2)-Q*K*wx*xc
(2)];
wkd(k)=wkd_1+xiteD*K*[P*b0*error(k)*xc(3)-Q*K*wx*xc(3)];
xc
(1)=error(k)-error_1;
xc
(2)=error(k);
%I
xc(3)=error(k)-2*error_1+error_2;
%D
wadd(k)=abs(wkp(k))+abs(wki(k))+abs(wkd(k));
w11(k)=wkp(k)/wadd(k);
w22(k)=wki(k)/wadd(k);
w33(k)=wkd(k)/wadd(k);
w=[w11(k),w22(k),w33(k)];
u(k)=u_1+K*w*xc;
%Controllaw
ifu(k)>
10
u(k)=10;
ifu(k)<
-10
u(k)=-10;
end
error_2=error_1;
error_1=error(k);
u_7=u_6;
u_6=u_5;
u_5=u_4;
u_4=u_3;
u_3=u_2;
u_2=u_1;
u_1=u(k);
wkp_1=wkp(k);
wkd_1=wkd(k);
wki_1=wki(k);
y_2=y_1;
y_1=yout(k);
plot(time,rin,'
time,yout,'
time(s)'
rin,yout'
figure
(2);
plot(time,u,'
xlabel('
);
u'
figure(3);
subplot(311);
plot(time,wkp,'
xlabel('
time(s)'
wkp'
subplot(312);
plot(time,wki,'
r'
time(s)'
ylabel('
wki'
subplot(313);
plot(time,wkd,'
wkd'
八、实验结果
如果选用神经网络工具箱进行仿真,结果如何?
如何进行仿真?
答:
利用神经网络工具箱进行设计和仿真的具体步骤:
1.确定信息表达方式:
将实际问题抽象成神经网络求解所能接受的数据形
式;
2.确定网络模型:
选择网络的类型、结构等;
3.选择网络参数:
如神经元数,隐含层数等;
4.确定训练模式:
选择训练算法,确定训练步数,指定训练目标误差等;
5.网络测试:
选择合适的训练样本进行网络测试
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 控制 技术 实验 报告