完整word版模糊控制设计及仿真实例智能控制作业word文档良心出品.docx
- 文档编号:11826806
- 上传时间:2023-06-02
- 格式:DOCX
- 页数:14
- 大小:284.92KB
完整word版模糊控制设计及仿真实例智能控制作业word文档良心出品.docx
《完整word版模糊控制设计及仿真实例智能控制作业word文档良心出品.docx》由会员分享,可在线阅读,更多相关《完整word版模糊控制设计及仿真实例智能控制作业word文档良心出品.docx(14页珍藏版)》请在冰点文库上搜索。
完整word版模糊控制设计及仿真实例智能控制作业word文档良心出品
1.一个三阶系统
,其中a,b的值由自己设定,该系统具有非线性环节,如下图所示:
依据上述条件设计一个模糊控制器:
①用MATLAB仿真,得出仿真结果,
②并通过改变a、b值对仿真结果的影响;
③改变隶属度函数,从仿真结果图分析隶属度函数,模糊化对系统的影响;
解:
①
(1)取b0=0,b1=0,b2=1.5,a1=4,a2=2,a3=0,在SIMULINK里建模如下图所示
(2)用GUI建立FIS
E和EC分别为系统输出误差和误差的变化量,U为控制输出,编辑其隶属度函数如下
编辑模糊推理规则如下
(3)仿真结果如下
2自己选定一个对象,设计一个神经网络控制系统。
解:
被控对象为y(k)=0.3y(k-1)+0.2y(k-2)+0.1u(k-1)+0.6u(k-2),采用单神经元PID控制,控制结构如下图所示:
采用有监督的Hebb学习规则,控制算法及学习算法如下:
式中,
输入信号为方波:
仿真程序如下:
clearall;
closeall;
x=[0,0,0]';
xiteP=0.40;
xiteI=0.35;
xiteD=0.40;
wkp_1=0.10;
wki_1=0.10;
wkd_1=0.10;
error_1=0;
error_2=0;
y_1=0;y_2=0;y_3=0;
u_1=0;u_2=0;u_3=0;
ts=0.001;
fork=1:
1:
1000
time(k)=k*ts
rin(k)=0.5*sign(sin(4*pi*k*ts));
yout(k)=0.3*y_1+0.2*y_2+0.1*u_1+0.6*u_2;
error(k)=rin(k)-yout(k);
wkp(k)=wkp_1+xiteP*error(k)*u_1*x
(1);%P
wki(k)=wki_1+xiteI*error(k)*u_1*x
(2);%I
wkd(k)=wkd_1+xiteD*error(k)*u_1*x(3);%D
K=0.12;
x
(1)=error(k)-error_1;
x
(2)=error(k);
x(3)=error(k)-2*error_1+error_2;
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*x;%Controllaw
ifu(k)>10
u(k)=10;
end
ifu(k)<-10
u(k)=-10;
end
u_3=u_2;u_2=u_1;u_1=u(k);
y_3=y_2;y_2=y_1;y_1=yout(k);
wkp_1=wkp(k);
wkd_1=wkd(k);
wki_1=wki(k);
end
figure
(1);
plot(time,rin,'b',time,yout,'r');
xlabel('time(s)');ylabel('rin,yout');
figure
(2);
plot(time,error,'r');
xlabel('time(s)');ylabel('error');
figure(3);
plot(time,u,'r');
xlabel('time(s)');ylabel('u');
仿真结果如下:
3.前向神经网络拟合一个函数y=sin(x)*cos(10x),取n个样本,神经网络的层数和每层的点数可自定。
解:
1.画出待拟合函数的样本点
在Matlab的“CommandWindow”输入以下命令:
x=-pi:
0.05:
pi;
y=sin(x).*cos(10*x);
plot(x,y,'r+')
得到待拟合函数的样本点如下所示
2.建立BP网络
建立2层BP神经网络,隐层神经元数目可改变,暂设n=50,输出层1个神经元。
选择隐层和输出层神经元传递函数分别为tansig()和purelin(),网络训练采用默认的Levenberg-Marquardt算法trainlm。
继续在Matlab的“CommandWindow”输入以下命令:
n=50;
net=newff(minmax(x),[n,1],{'tansig','purelin'},'trainlm');
y1=sim(net,x);
figure;
plot(x,y,'r+',x,y1,'--')
得到初始网络的输出曲线如下图
图中蓝色曲线即为未训练网络的输出,因为网络建立时权值和阈值初始化是随机的,所以网络输出结果很差,达不到拟合的目地,并且每次运行的结果也有所不同。
3.网络训练
继续在“CommandWindow”输入以下命令:
net.trainParam.epochs=50;
net.trainParam.goal=0.01;
net=train(net,x,y);
训练后得到的误差变化过程如下图
4.网络测试
对训练好的网络进行仿真,继续输入以下命令:
y2=sim(net,x);
figure;
plot(x,y,'r+',x,y1,'--',x,y2,'r--')
得到网络输出曲线,并与原始曲线以及未训练网络的输出结果曲线相比较,如下图所示
课堂作业:
1、智能手机充电器系统设计与仿真(9月19日,自动化1班)
2、电机软启动智能控制系统设计与仿真(9月26日,自动化2班)
3、智能洗衣机控制系统设计与仿真(10月10日,自动化3班)
4、智能电饭煲控制系统设计与仿真(10月17日,建筑设施1班)
5、智能水温恒温控制系统设计与仿真(10月24日,建筑设施2班)
6、温度闭环控制系统设计与仿真(10月31日,兴湘自动化)
以上题目采用模糊控制、PID、神经网络中的一种或者几种的综合。
每个题目分系统原理、硬件构成、算法分析和系统仿真四个部份,每个题目5个人;其中一人做PPT;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整 word 模糊 控制 设计 仿真 实例 智能 作业 文档 良心 出品