《智能控制报告.pdf》由会员分享,可在线阅读,更多相关《智能控制报告.pdf(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、分数:_任课教师签字:_智能控制结课作业学 年 学 期:20172018 学年第二学期课 程 名 称:智能控制作 业 名 称:智能控制课程作业学 生 姓 名:学号:提 交 时 间:2018 年 7 月 13 日一 智能控制的研究及应用现状1 智能控制的产生背景随着现代科技的发展,工业控制对象呈现出大迟延、大惯性、非线性、时变的特点,导致控制难度日益增大。在这种需求环境下,人工智能应用而生。人工智能是计算机按人的行为方式处理问题的学科。它通过计算机模拟人类的行为,按照人类的思维方式处理各种复杂问题。人工智能从计算机技术发展而来,但其范围已远远超出了计算机科学的范畴,涉及所有的自然学科和社会学科。
2、而智能控制是人工智能在现代工业中的应用,是人工智能和控制理论交叉的产物。人工智能技术可以有效的针对复杂、非线性、不确定性的系统。当下,智能控制是自动化领域中发展最迅猛的分支学科。2 智能控制的研究范畴模糊控制(FC-Fuzzy Control)模糊控制的原理是把人类专家对特定的被控对象的控制策略总结成一系列“条件”和“结果”形式的控制规则,通过模糊推理得到控制作用集,作用于被控对象或过程。模糊控制器由模糊化、规则库、模糊推理和清晰化四个功能模块组成。模糊化模块实现对系统变量论域的模糊划分和对清晰输入值的模糊化处理。规则库用于存储系统的基于语言变量的控制规则和系统参数。模糊推理是一种从输入空间到
3、输出空间的非线性映射关系。清晰化模块将推出的模糊推理推出的控制输出转化为清晰的输出值。模糊控制器的基本作用组成如下图所示规则库输入模糊化模糊推理清晰化输出图 1 模糊控制器的基本组成专家控制(EC-Expert Control)专家控制是一种基于知识的智能计算机程序的技术。专家控制的实质是基于控制对象和控制规律的各种知识,并且要以智能的方式利用这些知识,以求得控制系统尽可能的优化和实用化。专家系统一般由知识库、推理机、解释机制和知识获取系统等组成。知识库用于存储某一领域专家的经验性知识、原理性知识、可行操作与规则等。知识获取系统可以对原有知识进行修改和扩充。推理机根据系统信息并利用知识库中知识
4、按一定的推理策略来解决当前的问题。解释机制对找到的知识进行解释,为用户提供了一个人机界面。专家系统基本组成如下。问题描述推理机知识库知识获取解释接口解答综合数据库专家用户图 2 专家控制的基本组成神经网络控制(NNC-Neural Networks Control)神经网络控制是一种不依赖模型的控制方法。由此神经网络控制系统具有较好的智能性和鲁棒性,可处理高维、非线性、强耦合和不确定性的复杂的工业生产过程的控制问题,它的显著特点是具有学习能力,能够不断修正神经元之间的连接权值,并离散存储在连接网络中。简单的神经网络结构如下图所示。w1x1y1w2x2.xm.ynwk图 3 人工神经网络模型遗传
5、算法(GA-Genetic Algorithm)遗传算法是一种模拟生物进化的智能算法,它利用类似基因进化的交叉、变异、繁殖等操作较大概率获得待优化函数最优解,适用于大规模、高度非线性的不连续多峰函数优化以及无解析式目标函数的优化。此外遗传算法可以与其他智能算法结合,广泛的应用到现代工业控制中。遗传算法流程如下图所示。种群Y结束满足条件变异N复制交叉图 4 遗传算法示意图3 智能控制的研究现状当下,智能控制技术在电力系统中的应用正处于热门研究阶段。电力系统中各种电器设备的设计与生产、运行以及控制是非常复杂的过程,而智能控制技术对于电气设备的故障诊断、设备控制与优化设计等发挥了重要的作用。电气设备
6、的优化设计采用遗传算法,这样可以缩短计算的时间,提高设计的质量和效率。采用神经网络、模糊逻辑以及专家系统用于电气设备的故障诊断。其中,电流控制脉冲宽度调制中采用智能控制技术最具代表性的应用,也是被关注的研究热点。机械制造领域中关于智能控制的研究应用解决了传统控制不能很好地适应多变复杂对象的难题,大大提高了产品的作业质量和生产效率。机械制造的过程中使用神经网络与模糊数学的方法进行动态环境的建模,采用传感器的融合技术预处理和综合各种信息通过模糊集合和模糊关系进行相应的信息处理,并选择器械的控制动作。鉴于火电机组控制对象的特点,智能控制在该领域的应用研究主要为具有相对成熟理论基础的神经网络控制和模糊
7、控制及粒子群优化、遗传算法和蚁群优化算法等智能优化算法。当下,神经网络广泛应用于锅炉燃烧、NOx 排放、旋转机械振动故障、机炉协调控制系统的模型辨识当中;在传统 PID 控制系统中采用模糊规则进行控制器参数的在线调整,可以有效的控制复杂的热工对象;而遗传算法与粒子群算法主要应用于机组负荷优化分配、控制器参数寻优、控制策略优化、模型参数辨识、神经网络模型连接权值和阈值寻优等方面。随着未来人工智能技术研究不断取得新的进展,智能控制的实现形式也会越来越丰富,应用范围也会不断扩大。可以预见,智能控制技术必然会在现代工业当中发挥越来越重要的作用。二 系统仿真1 问题重述某 300MW 热电机组的主汽温控
8、制系统如图所示,对此系统进行仿真,输出导前区汽温及主汽温的仿真结果。1.94(88.5s1)6RI(t)y10.440.0014s0.012810s0.93(73.3s1)2y2图 1 主汽温控制系统本次作业使用了两种仿真方法:1)应用 Simulink 搭建该系统;2)应用离散相似法的分环节离散实现该系统的仿真;2 Simulink 仿真利用 Simulink 搭建的对象如下图所示图 2 Simulink 搭建的对象仿真时长 2500,输入阶跃信号幅值为 1,输出曲线如下图 3 simulink 仿真输出曲线 y1图 4 simulink 仿真输出曲线 y23 数值仿真方法将图 1 所示系统
9、转化为规范化方框图的形式,并按下图所示设计状态变量,对每个环节使用零阶保持器的离散化过程。Y1R=1+e1uk1u1e210uk2Y2u2图 5 仿真系统规范化方框图1Tis型的积分环节,可以推得积分环节的递推关系式x(k+1)=x(k)+()对于一阶惯性环节1+,可以推得递推关系式x(k+1)=()+(1)()通过积分图可以得到系统各环节离散化后的差分方程及中间方程如下:e1(k1)R(k1)x10(k)uk1(k1)0.44e1(k1)x1(k1)x1(k)0.0014dte1(k1)u1(k1)uk1(k1)x1(k1)e2(k1)u1(k1)x4(k)uk2(k1)10e2(k1)x2
10、(k1)x2(k)0.0128dte2(k1)u2(k1)uk2(k1)x2(k1)x3(k1)edt73.3dt73.3dt88.5dt88.5dt88.5dt88.5dt88.5dt88.5dt73.3x3(k)0.93(1ex4(k)(1edt73.3)u2(k1)x4(k1)ex5(k1)ex6(k1)ex7(k1)ex8(k1)ex9(k1)e)x3(k1)dt88.5x3(k)1.94(1ex6(k)(1ex7(k)(1ex8(k)(1ex9(k)(1edt88.5dt88.5)u2(k1)x5(k1)x6(k1)x7(k1)x8(k1)x9(k1)dt88.5dt88.5x10(
11、k1)ex10(k)(1edt88.5y1(k1)x10(k1)y2(k1)x4(k1)设仿真步距为dt=5503,仿真时间ST=(520)nT 3000,在零时刻输入幅值为 1 的阶跃信号,得到的系统输出 y1、y2 仿真曲线如下图所示1.41.21ts=1371,Mp=10.3679,FAI=0.87257,tr=555,tp=726,ys=1.0026输出y10.80.60.40.20050010001500时 间 t2000250030000.7ts=1026,Mp=36.3122,FAI=0.90242,tr=51,tp=237,ys=0.479520.60.5输出y20.40.30
12、.20.10050010001500时 间 t200025003000图 6 系统输出 y1、y2 仿真曲线对比 Simulink 仿真结果,发现二者差别不大,说明应用数值仿真技术得到的仿真结果还是令人满意的。4 附录数值仿真使用的程序如下%模型参数R=1;T1=;k1=;T2=;k2=;n=10;kp1=;ki1=;kp2=10;ki2=;%仿真参数dt=3;st=3000;%初始化fai1=exp(-1*dt/T1);faim1=1-fai1;fai2=exp(-1*dt/T2);faim2=1-fai2;lp=fix(st/dt);x=zeros(n,1);y1=0;y2=0;t=0;%
13、仿真for i=1:lp e1=R-x(10);uk1=kp1*e1;x(1)=x(1)+ki1*dt*e1;u1=uk1+x(1);e2=u1-x(4);uk2=kp2*e2;x(2)=x(2)+ki2*dt*e2;u2=uk2+x(2);x(3)=fai1*x(3)+k1*faim1*u2;x(4)=fai1*x(4)+faim1*x(3);x(5)=fai2*x(5)+k2*faim2*u2;x(6:10)=fai2*x(6:10)+faim2*x(5:9);y1=y1 x(10);y2=y2 x(4);t=t dt*i;end%绘图ts1,Mp1,fai21,tr1,tp1,ys1,t
14、ext1=value(y1,dt);ts2,Mp2,fai22,tr2,tp2,ys2,text2=value(y2,dt);subplot(2,1,1)plot(t,y1);legend(text1)xlabel(时间 t);ylabel(输出 y1)subplot(2,1,2)plot(t,y2);legend(text2)xlabel(时间 t);ylabel(输出 y2)ylabel(输出 y)三 智能辨识1 问题重述已知火电机组在 100%负荷工况下得到的蒸汽量变化对应汽包水位变化的传递函数为如下,试用智能优化算法辨识该系统。0.0373.6G(s)=+1+15为了更好的体现建模过程
15、,在系统输出加入异常值和白噪声。输入幅值为1的阶跃信号,得到的输出曲线如下图所示。被 辨 识 数 据 曲 线6输 出输 入420-2-4-6-8050100150200250300350400图 1 被辨识数据曲线2 模型选择模型结构的选择是建模过程中最重要的阶段,是决定模型质量最关键性的一步。系统的建模问题可以归结为用一个数学模型来表示客观未知系统本质特性的过程,根据经验,可以从各种数学模型中选择一种来近似描述实际物理系统。在工程当中,存在一种逆向响应系统,它的表象是,在结余信号扰动作用下,系统的输出先朝着与最终趋向相反的方向变化,然后才朝着最终趋向变化。七宝锅炉的蒸汽量阶跃扰动引起的汽包水
16、位变化就是这种逆向响应过程,被称作“虚假水位”现象。因此根据对象热工特征以及系统输出曲线特性,本次建模过程选择的经验模型是逆向响应系统,其传递函数结构如下G(s)=12+1为了后续智能算法辨识,将传递函数转化为差分方程的形式1(+1)=1()+1()2(+1)=2()+2(1)()y(k+1)=x1(+1)x2(+1)3 数据预处理当选择了数据后,需要对其进行预处理,包括粗大值剔除、数据滤波、零初始值处理等过程。剔除粗大值因复杂的工业环境,往往出现采集到的数据幅值远超实际信号的范围,这些数据称为粗大值。粗大值会对辨识过程产生比较大的潜在影响,必须剔除。本文采用低阶差分法对数据进行剔除粗大值处理
17、。假设原始数据 u(i)的前 4 点是正常数据,那么从第 5 点开始,满足下式的点可视为粗大值。其中,为粗大值因子。|u(i)u(i1)|()(1)|=1在使用上式,如果第 i 点钱的某一点已经是粗大值,那么就用比它更前的一点代替,直至找到四个正常 4 个正常数据点。如果第 i 点被剔除,则该点可用其前后正常两点的插值粗略代替,即y=(+)/2数据滤波从现场采集到的数据往往含有干扰因素,为了提高辨识的准确程度,需要对数据进行滤波处理。工业中常采用高通滤波和低通滤波两种方式。高通滤波可以消除漂移以及一些低频段的信息,而低通滤波可以抑制现场环境中的高频干扰信号,根据图 1 所示的曲线信息,本文采用
18、低筒滤波方式。低通滤波器的传递函数为F(s)=+其零阶保持器下的差分方程为1(+1)=1()+(1)()式中,低筒滤波器的截止频率;u(k)需要滤波的数据;1()通过低通滤波后的输出。辨识之前要对系统进行先验了解,按照仿真环节计算步距的方法来估计截止频率。可以根据滤波结果调整截止频率,往复几次即可选择出合适的截止频率。零初始值处理从现场采集来的数据是在系统稳定的情况,加入激励信号得到的系统输出入和输出曲线。如果不对数据进行零初始值处理,就等于假设平衡点在系统实际的零值点,显然不合理。因此使用采集到的数据,要减去这个初始零点。当系统数据采集始于系统运动的某个平衡态,这个平衡态即可当做系统输入输出
19、的“零点”。此时零初始值后的数据为1y()=()()=1整个数据处理过程,输出 y 曲线如下01原 始 数 据6420-2-4-601002003004006420-2-4-6010020030040002去 异 常 值 之 后 的 数 据03平 滑 处 理 后 的 数 据6420-2-4-601002003004006420-2-4-6004去 零 值 之 后 的 数 据100200300400图 2 数据预处理过程4 粒子群辨识标准粒子群算法是指惯性权重的 PSO,是一种有效的参数优化算法。其算法流程如下图所示初始化种群计算当前种群适应度求出当前Xbest1和Xbestg速度和位置更新计算
20、新种群适应度比较更新Xbest1和XbestgN判断结束条件Y输出Xbestg图 3 PSO 算法流程本次辨识需要对系数1、2、进行参数优化。分析曲线可以确定,10 且1=1)&(jlamda*s F(i)=1;endend%剔除粗大值nd=0;%置不需要提出标志。需要剔除为0,否为 1for i=5:lp-3 if F(i)=1 if nd=0 if F(i+1)=0y2(i)=(y2(i+1)+y2(i-1)/2;else if F(i+2)=0 y2(i)=(y2(i+2)+y2(i-1)/2;y2(i+1)=y2(i);else if F(i+3)=0 y2(i)=(y2(i+3)+y
21、2(i-1)/2;y2(i+1)=y2(i);y2(i+2)=y2(i);else nd=1;end end end end else nd=0;endend%2、平滑处理y3=zeros(1,lp);y3(1)=y2(1);fai=exp(-dt*wc);faim=1-fai;for i=1:lp-1 y3(i+1)=fai*y3(i)+faim*y2(i);end%3 去零值y_zero=sum(y3(1:N_zero)/N_zero;y4=y3-y_zero;output=y4;PSO 辨识程序load Y_old;y=DataTrain(t_old,y_old,50);t=t_old;
22、u=u_old;N=3;%优化参数个数,随模型类型而变化 M=100;%粒子个数 Tmax=80;%最大前进步数w=;%遗忘因子 c=;%认知及社会因子V_LLimits=-1,-10,1;%寻优参数下限V_HLimits=,100;%寻优参数上限DVmax=,1;%优化变量速度限制V=rand(N,M);DV=zeros(N,M);for i=1:M for j=1:N V(j,i)=V_LLimits(j)+(V_HLimits(j)-V_LLimits(j)*V(j,i);end Q(i),=Id_Obj_III(t,u,y,V(:,i);%计算目标函数endQbi=Q;Vbi=V;Qb
23、g=Q(1);Vbg=V(:,1);for i=2:M if QbgQ(i)Qbg=Q(i);Vbg=V(:,i);endendfor T=1:Tmax for i=1:M for j=1:N DV(j,i)=w*DV(j,i)+c(1)*rand(1)*(Vbi(j,i)-V(j,i);DV(j,i)=DV(j,i)+c(2)*rand(1)*(Vbg(j)-V(j,i);%更新速度 if DV(j,i)DVmax(j)DV(j,i)=DVmax(j);end%速度限制 if DV(j,i)-DVmax(j)DV(j,i)=-DVmax(j);end end V(:,i)=V(:,i)+DV
24、(:,i);%更新位置 for j=1:N if V(j,i)V_HLimits(j)V(j,i)=V_HLimits(j);end end Q(i),y1=Id_Obj_III(t,u,y,V(:,i);%计算目标函数%确定粒子群 i 的最优解 if Qbi(i)Q(i)Qbi(i)=Q(i);Vbi(:,i)=V(:,i);end%确定粒子群全局最优解 if QbgQbi(i)Qbg=Qbi(i)Vbg=Vbi(:,i);end endendk1=Vbg(1);k2=Vbg(2);T=Vbg(3)Q,ys=Id_Obj_III(t,u,y,Vbg);%绘图N_zero=50;y_zero=
25、y_old-sum(y_old(1:N_zero)/N_zero;4、目标函数程序%仿真及目标函数计算子程序function Q,ys=Id_Obj_III(t_old,u_old,y_old,V)%原始模型数据y=y_old;u=u_old;t=t_old;m=length(y);%辨识系数k1=V(1);k2=V(2);T=V(3);%仿真num=T*k1-k2 k1;den=T 1 0;sysc=tf(num,den);ys=lsim(sysc,u,t);y_error=zeros(1,m);for i=1:m y_error(i)=ys(i)-y(i);endQ=y_error*y_e
26、rror;四 模糊控制1 设计任务已知某汽温控制系统结构如下图所示,采用喷水减温进行控制。设计单输入模糊控制器,观察定值扰动和内部扰动的控制效果。r 0.5I(t500)RI(t)FCu1.1(35s1)4y图 1 汽温模糊控制系统2 设计原理模糊控制就是利用模糊结合理论,把人类专家用自然语言描述的控制策略转化为计算机能够接受的算法语言,从而模拟人类的智能,实现生产过程的有效控制。模糊控制系统的组成如下图所示模糊控制器被控量模糊量化处理模糊控制算法非模糊化处理D/A执行机构被控对象给定值A/D传感器图 2 模糊控制系统结构图模糊量化处理:模糊控制器接收的是给定值与由 A/D 转换器传送过来的被
27、控对象输出之间的偏差信号。因此,必须先将确切的数字偏差量转化为模糊量。模糊控制算法:当该模块接收到用模糊量表示的偏差和偏差变化率后,根据模糊控制规则库(般是根据专家的控制经验,预先存储起来的模拟人的模糊推理能力所需的专家知识),推理出模糊控制器的输出。该输出也是模糊量。非模糊化处理:第二步得到的输出是一个模糊量,进行控制时必须为确切值,因此非模糊化处理的任务就是把,模糊运算得到的模糊输出量转化为实际系统能够接受的确切数字量。模糊控制器(简称 FC)的设计任务主要包括以下几项内容:(1)确定模糊控制器的输入变量和输出变量(即控制量);(2)对所有的输入变量和输出变量进行模糊化处理;(3)设计模糊
28、控制器的控制规则,形成模糊关系矩阵;(4)根据模糊控制的输入,计算模糊控制器的输出;(5)对模糊控制器的输出进行非模糊化处理。3 设计过程控制系统是单变量系统,鉴于被控对象是高阶有自衡对象,因此选用广泛应用的二维模糊控制器。这种控制器以误差就鞥误差变化量作为而未输入量,以控制量的变化作为输出量。模糊控制系统原理方框图控制结构如下图所示r1+r+eFC-ECU+W(s)图 3 二维 FC 结构(1)确定模糊变量及论域。通常将偏差及偏差的变化率作为模糊输入变量,将控制量作为模糊输出变量,将模糊论域取为以下七个值负大,负中,负小,零,正小,正中,正大对应的英文字母缩写表示为NB,NM,NS,ZO,P
29、S,PM,PB于是为了提高模糊控制的精度,对于误差这个输入变量,选择描述其状态词汇时,常将“零”分为“正零”、“负零”,这样词集变为负大,负中,负小,负零、正零,正小,正中,正大对应的英文字母缩写表示为NB,NM,NS,NO,PO,PS,PM,PB(2)确定确切量论域。控制器接收的是偏差信号,因此输入量论域关于 0点对称,最大为8,8。输入量论域直接影响控制作用的灵敏程度,输出量论域取决于现场阀门一次允许的最大开度。本次作业选输入量 e、输入量变化率 ec、控制量 u 的论域如下e=ec=u 1.5,1.5。(3)确定等级量的论域。等级量要求关于 0 对称,同时等级量论域的选择一般要大于模糊量
30、论域。本次作业选择它们的等级量论域分别为E=6,5,4,3,2,1,0,+0,+1,+2,+3,+4,+5,+6EC=6,5,4,3,2,1,0,+1,+2,+3,+4,+5,+6U=7,6,5,4,3,2,1,0,+1,+2,+3,+4,+5,+6,+7量化因子K,=1.5(1.5)=4,=1.5(1.5)=3。则确切量到等级量262714的计算公式为E=,EC=,U=。(4)定义模糊子集,即建立各等级量与各模糊量之间的隶属关系。实验研究结果表明,用正态型隶属函数来描述人进行控制活动时的模糊概念是适宜的,且正态函数=1时候效果最好。选取 E 的模糊变量词集为NB,NM,NS,NO,PO,PS
31、,PM,PB因此选取模糊变量 E 的赋值表如下所示表 1 e 的等级量与模糊量的关系PBPMPSPONONSNMNB-60000001-5000000-400000-300000-200000-1000000-0000000+0000000+1000000+200000+300000+400000+5000000+6000000选取 EC 的模糊变量词集为NB,NM,NS,ZO,PS,PM,PB因此选取模糊变量 EC 的赋值表如下所示表 2 ec 的等级量与模糊量的关系-6PBPMPSZONSNM00000-500000-40000-30000-20000-10000000000+10000+
32、20000+3000+4000+50000+60000NB000000000选取 U 的模糊变量词集为NB,NM,NS,ZO,PS,PM,PB因此选取模糊变量 EC 的赋值表如下所示表 3 u 的等级量与模糊量的关系-7PBPMPSZONSNMNB000000-600000-500000-40000-300000-200000-10000000000+100000+200000+300000+40000+500000+600000+7000000(5)模糊控制规则设计。模糊控制器本质上是一种模仿手动控制的策略。利用模糊集合理论和语言变量,将手动控制上升到数值运算,即可利用计算机实现自动控制。本
33、次作业制定的控制策略如下表 4控制规则表PBPMPSZONSNMNBNBPBPBPBPMPMPMPSNMPBPBPBPMPMPSZONSPMPMPMPSPSZONSNOPMPMPSZOZONSNMPOPMPMPSZONSNMNMPSPSPSZONSNSNMNBPMZOZONSNMNMNBNBPBZOZONMNBNBNBNB按照上述控制规则,可以得到温度偏差及变化率与喷水阀门开度之间的模糊关系 R,即R=(E U)()=()()(6)模糊决策,即通过模糊关系 R 求取控制量 u 的过程,计算公式为u=(e ec)R其中 e 是 E 论域内的某一模糊变量,ec 是 EC 论域内某一模糊变量,u 是
34、 U论域的与之对应的模糊变量。(7)非模糊化处理,即将模糊控制输出的模糊子集转化为执行器所能接受的确切量,实用的转化方法有两种,最大隶属度法和加权平均判决法。本次作业使用的是加权平均判决法,响应的计算公式为。本次作业中Ku=1()U=1()=1.57=3144 仿真结果模糊控制的最终系统输出结果如下图所示0.80.70.60.5被调量0.40.30.20.100500100015002000时 间2500300035004000图 4 系统输出结果控制量输出结果如下-0.55-0.6-0.65-0.7-0.75控制量-0.8-0.85-0.9-0.95-1-1.0505001000150020
35、00时 间2500300035004000图 5 模糊控制器输出观察两条曲线可以的得到以下两点发现(1)最终系统输出静态误差较大。本次涉及的双输入的模糊控制器不含积分作用,因此最终输出结果存在静差。通过查阅资料,发现可以通过调整模糊决策、确切量的论域以及隶属函数来减小静态误差。(2)当系统加入内扰后发现系统状态遭到破坏,没有恢复到以前的平衡状态。这说明本次设计的控制器抗内扰能力比较差,需要调整模糊决策、确切量的论域。5 附录模糊控制主函数于下%确切量论域e_Hlimit=;e_Llimit=-e_Hlimit;%e 确切量论域ec_Hlimit=;ec_Llimit=-ec_Hlimit;%e
36、c 确切量论域u_Hlimit=;u_Llimit=-u_Hlimit;%u 确切量论域%等级量论域NE=-6,-5,-4,-3,-2,-1,-0,+0,1,2,3,4,5,6;%ec 等级量论域NEC=-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6;%ec 等级量论域NU=-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7;%ec 等级量论域%转换参数NE_num=numel(NE);%e 等级量划分数量NEC_num=numel(NEC);%ec 等级量划分数量Ke=(NE(NE_num)-NE(1)/(e_Hlimit-e_Llimit);%e 的量
37、化因子Kec=(NEC(NEC_num)-NEC(1)/(ec_Hlimit-ec_Llimit);%ec 的量化因子NU_num=numel(NU);%u 等级量划分数量Ku=(u_Hlimit-u_Llimit)/(NU(NU_num)-NU(1);%u 的比例因子%模糊量论域NFE=1 2 3 4 5 6 7 8;NFE_num=numel(NFE);NFEC=1 2 3 4 5 6 7;NFEC_num=numel(NFEC);NFU=1 2 3 4 5 6 7;NFU_num=numel(NFU);%隶属度函数表Miu_e=Below_Degree(NFE_num,NE_num,1)
38、;Miu_ec=Below_Degree(NFEC_num,NEC_num,1);Miu_u=Below_Degree(NFU_num,NU_num,1);%模糊控制规则表FE=fliplr(NFE);FEC=fliplr(NFEC);FU=1 1 2 2 2 3 4 4;1 1 2 2 2 3 4 4;1 1 2 3 3 4 5 6;1 2 3 4 4 5 6 7;2 2 3 4 5 5 6 7;2 3 4 5 6 6 7 7;3 4 5 6 6 7 7 7;effect=-1;%模糊关系矩阵R=R_Matrix(Miu_e,Miu_ec,Miu_u,FE,FEC,FU);%仿真ST=400
39、0;DT=5;dt=;K=;T=35;n=4;r=1;x_m(1:n)=0;u_mi=0;ui=0;e0=0;e10=0;y_m=0;Y_m=;U_m=;U_mi=;Y_m_Time=;U_m_Time=;a=exp(-dt/T);b=1-a;LP=ST/DT;for k=1:1:LP if k*DT 2000 r1=;else r1=0;end e=effect*(r-y_m);E=round(Ke*e);if E NE(NE_num)E=NE(NE_num);elseif E NE(1)E=NE(1);end if e=0 j=E+NE(NE_num)+1;else j=E+NE(NE_n
40、um)+2;end Miu_max=Miu_e(1,j);ei=1;for i=2:1:NFE_num if E 0 if Miu_max=Miu_e(i,j)Miu_max=Miu_e(i,j);ei=i;end else if Miu_max NEC(NEC_num)EC=NEC(NEC_num);elseif EC NEC(1)EC=NEC(1);end j=EC+NEC(NEC_num)+1;Miu_max=Miu_ec(1,j);ec_i=1;for i=2:1:NFEC_num if EC 0 if Miu_max=Miu_ec(i,j)Miu_max=Miu_ec(i,j);ec
41、i=i;end else if Miu_max 1 x_m(2:n)=a*x_m(2:n)+b*x_m(1:n-1);end y_m=x_m(n);Y_m=Y_m y_m;Y_m_Time=Y_m_Time(k-1)*DT+l*dt;endend五 神经网络辨识1 问题重述已知某对象传递函数如下,针对其进行神经网络辨识。G(s)1e100s1200s2 辨识原理 BP 神经网络计算原理BP 神经网络利用误差方向传播训练算法,整个算法包括前向计算和反向计算两个过程。在前向传播中,输入信息从输入层经隐含层逐层处理最后传向输出层,之后通过反省传播误差信号的方向来对权值进行修正,使误差信号达到最小。假
42、设神经网络的输入层节点数为 M,隐层节点数为 q,输出节点为 L。在学习阶段有 N 个学习样本,假定用其中一个样本 P 的输入/输出模式对网络进行训练。隐含层的第 i 个神经元在样本 p 作用下的输入为netp=1隐含层第 i 个神经元的输出经激励函数作用之后为op=()(=1,2,)隐含层第 i 个神经元的输出通过隐层与输出层神经元之间的连接权值作用之后将信号传递到输出层的第 k 个神经元作为其输入之一。输出层第 k 个神经元的总输入为1netp=1(K=1,2,L)输出层的第 k 个神经元输出经激励函数作用后为pop=g(netk)系统的输出需要通过误差反传过程来对各连接权值进行修正,差用
43、的目标函数是二次型的误差函数,即1 2J=()2=1根据梯度下降法,得到输出层的权值修正公式为wki=()(1)类似的可以得到输入层至隐含层权值的修改公式wij=(1)()=1神经网络辨识原理BP 神经网络在理论上对任意非线性有无限逼近能力,因此理论上应用 BP 神经网络辨识可以准确建立所有非线性系统的仿真模型。在应用 BP 神经网络建模时需要选定相应参数。(1)网络选用单隐层还是多隐层。大量的仿真试验表明,采用多隐层的BP神经网络大大增加算法的计算复杂程度,且对非线性对象的逼近能力并未有多大提高。因此一般说来,单隐层的 BP 网络即可。(2)输入层、隐层、输出层神经元的个数。输入层和输出层的
44、神经元个数与建模对象有关,通常要求隐层的神经元数目大于输入层和输出层的数目。(3)选择隐层神经元和输出层神经元的激励函数。多数情况下可以将输出层的激励函数选定为线性函数,为了保证神经网络的非线性映射功能,仅在隐层采用 S 函数作为激励函数。(4)确定初始的神经网络权值和学习步长。一般,神经网络的各神经元采用统一的学习步长。学习选取过小,神经网络的收敛程度会比较慢,但学习步长选取过大,会加快学习速度,但易导致神将网络发散。初始的学习步长一般选取,初始权值可选为(,)。3 辨识结果针对传递函数为G(s)=曲线如下y10.511+200s100,输入频率发生变化的正弦信号,输出0-0.5010020
45、0300400500u600700800900100010-1-201002003004005006007008009001000图 1 在输入正弦信号下的输出曲线利用 Matlab 自带的 BP 神经网络工具箱,设定的参数如下表所示表 1 神经网络参数变量输入层神经元个数隐含层神经元个数输出层神经元个数最大迭代次数学习误差BP 网络工具箱的最终结果参数52011500图 2 Matlab 工具箱结果测试数据辨识结果如下所示测 试 数 据 与 数 据 真 值 对 比1原 始 数 据辨 识 结 果0.5y0-0.502004006008001000Time(t)原 始 数 据1200140016
46、00180020001原 始 数 据0.5y0-0.502004006008001000Time(t)辨 识 结 果120014001600180020001辨 识 结 果0.5y0-0.502004006008001000Time(t)12001400160018002000图 3 BP 神经网络辨识结果观察数据可以发现,BP 神经网络的辨识精度非常高,效果非常好。附录-神经网络辨识程序%读入训练数据load;LP_Train=numel(Y_Train);%零初始化Y_Train=Y_Train-Y_Train(1);U_Train=U_Train-U_Train(1);%设置 CARMA
47、 模型阶次n=2;%定义 BP 神经网络各层神经元个数In_cell=2*n+1;Out_cell=1;Hidden_cell=20;%生成神经网络训练数据集Sample_Train_num=LP_Train-n;for i=1:1:Sample_Train_num for j=1:1:n Input(j,i)=Y_Train(i-j+n);Input(j+n,i)=U_Train(i-j+n);end Input(In_cell,i)=U_Train(i+n);Output(1,i)=Y_Train(i+n);endnet=newff(minmax(Input),Hidden_cell,Ou
48、t_cell,tansig purelin,trainbr);=10;%显示中间结果的周期=1500;%最大迭代次数(学习次数)=0;%神经网络训练的目标误差=;%学习速率net=train(net,Input,Output);LP_Test=numel(Y_Test);Sample_Test_num=LP_Train-n;Y_Test=Y_Test-Y_Test(1);U_Test=U_Test-U_Test(1);Input=;Output=;Sample_Test_num=LP_Test-n;for i=1:1:Sample_Test_num for j=1:1:n Input(j,i)=Y_Test(i-j+n);Input(j+n,i)=U_Test(i-j+n);end Input(In_cell,i)=U_Test(i+n);endOutput=sim(net,Input);Output=Y_Test(1:n)Output;