基于神经网络的模糊控制
- 格式:doc
- 大小:87.00 KB
- 文档页数:8
模糊控制与神经网络控制模糊控制和神经网络控制是现代控制领域中的两个重要研究方向,它们通过不同的方法和理论来解决复杂系统的控制问题。
本文将就这两种控制方法进行介绍和对比,并探讨它们在实际应用中的优劣势。
一、模糊控制模糊控制是一种基于模糊逻辑理论的控制方法,它通过将输入和输出之间的关系进行模糊化来实现系统的控制。
模糊控制器的设计通常包括模糊化、规则库的建立、推理机制以及解模糊化等步骤。
在模糊控制中,输入和输出以模糊集形式表示,通过一系列的模糊规则进行推理得到控制信号。
模糊规则库中存储了专家知识,根据实际问题的需求可以设计不同的规则。
推理机制使用模糊规则进行推理,最后通过解模糊化将模糊输出转化为具体的控制量。
模糊控制的优点之一是适用于非线性和不确定性系统,它能够通过模糊化处理来处理实际系统中的不确定性和模糊性。
此外,模糊控制能够利用专家经验进行控制器的设计,无需准确的系统数学模型。
然而,模糊控制也存在一些局限性。
首先,模糊控制的规则库和参数通常需要由专家进行手动设计,这对专家的经验和知识有一定的要求。
其次,模糊控制的性能也会受到模糊规则的数量和质量的影响,如果规则库设计不当,控制性能可能无法满足要求。
二、神经网络控制神经网络控制是一种基于人工神经网络的控制方法,它通过将系统模型表示为神经网络结构来实现控制。
神经网络是一种模仿生物神经系统结构和功能的计算模型,具有自适应学习和适应性处理的能力。
在神经网络控制中,神经网络被用作控制器来学习系统的映射关系。
通过输入和输出的样本数据,神经网络根据误差信号不断调整权重和阈值,使得输出逼近于期望输出。
神经网络控制通常包括网络的结构设计、学习算法的选择和参数调整等步骤。
与模糊控制相比,神经网络控制具有更好的自适应性和学习能力。
它能够通过学习过程来建立系统的非线性映射关系,并且对于未知系统具有较好的鲁棒性。
此外,神经网络控制不需要准确的系统模型,对系统的数学模型要求相对较低。
工业技术科技创新导报 Science and Technology Innovation Herald76DOI:10.16660/ki.1674-098X.2017.30.076基于人工神经网络下的模糊控制理论①张弛(河钢乐亭钢铁有限公司 河北唐山 063600)摘 要:人工神经网络是人工智能的核心思想,模糊控制是实现人工智能的重要手段,二者在现代自动化技术的发展上扮演着不可或缺的角色。
工业自动化控制中的不确定性、非线性,复杂程度高是任何控制方式都要面对的问题。
基于人工神经网络的模糊控制能很好的解决这一难点,具有广阔的应用前景。
随着现代冶金工艺技术的迅速发展,对工艺过程参数的控制精度要求越来越高,生产设备及系统日趋大型化、复杂化。
如何实现智能制造已成为目前工业发展的重要课题。
本文在简单介绍了人工神经网络与模糊控制的历史、发展及基本原理下,重点讲述了结合BP神经网络与PID模糊控制器的自动化控制方案。
关键词:BP神经网络 PID模糊控制 自学习中图分类号:TP273 文献标识码:A 文章编号:1674-098X(2017)10(c)-0076-03①作者简介:张弛(1973—),男,河北唐山人,硕士,高级工程师,从事控制理论与应用的研究。
人工神经网络的英文全称是A r t i f i c i a l N e u r a l Networks,简称ANN。
人脑的复杂程度是任何自动化系统都不能全面真实地描述出来的。
ANN只是人脑功能基本特征的网络模型,是人脑的模拟与简化[1]。
模糊逻辑控制(Fuzz y Logic Control)简称模糊控制(Fuzz y Control),是一种电脑数字控制技术,以模糊集合论、模糊语言变量和模糊逻辑理论为基础。
1973年,美国的扎德创立了相关的定理。
1974年,Mamdani将其应用到了工业控制中,获得成功,标志着模糊控制论的诞生[2]。
1 人工神经网络1.1 人工神经网络的组成人工神经网络是由大量神经元组成,神经元是功能简化的处理单元(电子、光学元件等),一个输出值由多个输入值确定。
控制系统中的模糊控制与神经网络控制比较在现代控制系统中,模糊控制和神经网络控制是两种常见的控制方法。
它们都具有一定的优势和特点,但是又各自存在一些局限性。
本文将就这两种控制方法进行比较,旨在帮助读者更好地理解和选择适合自己需求的控制方法。
一、模糊控制模糊控制是一种基于模糊逻辑的控制方法,它将人的直观经验与控制系统的数学模型相结合,用来应对系统模型不确定或难以建模的情况。
模糊控制系统由模糊化、模糊推理和解模糊化三个主要部分组成。
1、模糊控制的优势(1)适应不确定性:模糊控制可以很好地应对系统参数变化、环境变化等不确定性因素,因为它不需要准确的数学模型。
(2)处理非线性系统:对于非线性系统,模糊控制可以通过模糊化和模糊推理来逼近系统的动态特性,因此具备较好的适应性。
(3)易于理解和调试:模糊规则基于经验知识,形式简单易懂,参数调节相对容易,操作员或工程师可以理解和调试模糊控制系统。
2、模糊控制的局限性(1)计算复杂性:模糊控制系统需要进行模糊化、模糊推理和解模糊化等操作,这些操作可能导致计算量大、实时性差,不适合对响应时间要求较高的控制系统。
(2)难以优化:模糊控制的参数调节通常是基于试错法,缺乏理论指导,难以进行精确优化,因此对于某些需要高精度控制的系统效果并不理想。
二、神经网络控制神经网络控制是一种利用人工神经网络模拟生物神经网络的结构和功能来实现控制的方法。
神经网络控制系统由输入层、隐含层和输出层构成,通过训练神经网络来实现控制效果。
1、神经网络控制的优势(1)适应性强:神经网络具有强大的自适应性能,能够适应未知系统或具有时变性质的系统,从而在控制过程中实现自学习和自适应。
(2)映射能力强:神经网络可以将非线性映射问题转化为线性可分问题进行处理,从而更好地逼近系统的非线性特性。
(3)具备优化能力:可以通过合理的网络结构和训练算法,实现对网络参数的优化,从而提高控制系统的性能。
2、神经网络控制的局限性(1)训练需耗时:神经网络控制需要通过大量的数据训练神经网络,这可能需要耗费较长的时间,并且对数据质量和标定要求较高。
基于神经网络的模糊控制算法随着人工智能技术的发展,神经网络在自然语言处理、图像识别、机器翻译等领域扮演着越来越重要的角色。
而在控制系统的设计中,神经网络也有着广泛的应用,其中基于神经网络的模糊控制算法尤为重要。
基于神经网络的模糊控制算法的基本原理模糊控制是一种基于模糊逻辑的控制策略,其主要优点是可以处理一些难以精确建模的系统,例如非线性、时变的系统。
神经网络作为一种强大的函数逼近工具,可以帮助模糊控制器更好地处理这些系统。
基于神经网络的模糊控制算法包括以下几个方面。
首先,我们需要建立一个模糊控制器。
在传统的模糊控制器中,我们需要设置一组人工设计的模糊规则,这些规则会告诉我们在不同的输入变量下应该采取什么样的控制动作。
在基于神经网络的模糊控制器中,我们用神经网络来拟合这些模糊规则。
这就意味着我们不再需要手工设计规则,而是让神经网络自动学习它们。
这种方法通常比传统的模糊控制器更具有灵活性和适应性。
其次,我们需要想办法合理地融合模糊控制器和神经网络。
一种简单的方法是将神经网络作为模糊控制器的输出调整器。
具体来说,我们首先计算出神经网络的输出,然后将其加权平均,得到最终的控制信号。
这个加权平均的权重可以由模糊控制器的输出决定。
另一种方法是将神经网络嵌入到模糊控制器之中。
具体来说,我们可以将神经网络的隐藏层输出作为模糊控制器的输入,然后将两者的输出进行简单的融合。
这种方法通常需要更多的计算资源,但往往能够获得更好的控制效果。
最后,我们需要使用一些优化算法来训练神经网络。
在模糊控制系统中,最常用的优化算法是基于误差反向传播的神经网络训练算法。
该算法通过计算神经网络在训练数据上的误差和权重梯度,从而更新神经网络的权重参数。
为了使优化结果更加稳健、可靠,我们通常会采用一些技巧,例如批量训练、权重衰减、学习率衰减等。
基于神经网络的模糊控制算法的应用场景基于神经网络的模糊控制算法可以应用于各种各样的控制系统中。
以下是一些典型的应用场景。
模糊控制介绍附件:一、模糊控制概况模糊逻辑控制(Fuzzy Logic Control)简称模糊控制(Fuzzy Control),是以模糊集合论、模糊语言变量和模糊逻辑推理为基础的一种计算机数字控制技术。
1965年,美国的L.A.Zadeh创立了模糊集合论;1973年他给出了模糊逻辑控制的定义和相关的定理。
1974年,英国的E.H.Mamdani 首先用模糊控制语句组成模糊控制器,并把它应用于锅炉和蒸汽机的控制,在实验室获得成功。
这一开拓性的工作标志着模糊控制论的诞生。
模糊控制实质上是一种非线性控制,从属于智能控制的范畴。
模糊控制的一大特点是既具有系统化的理论,又有着大量实际应用背景。
模糊控制的发展最初在西方遇到了较大的阻力;然而在东方尤其是在日本,却得到了迅速而广泛的推广应用。
近20多年来,模糊控制不论从理论上还是技术上都有了长足的进步,成为自动控制领域中一个非常活跃而又硕果累累的分支。
其典型应用的例子涉及生产和生活的许多方面,例如在家用电器设备中有模糊洗衣机、空调、微波炉、吸尘器、照相机和摄录机等;在工业控制领域中有水净化处理、发酵过程、化学反应釜、水泥窑炉等的模糊控制;在专用系统和其它方面有地铁靠站停车、汽车驾驶、电梯、自动扶梯、蒸汽引擎以及机器人的模糊控制等。
二、模糊控制基础模糊控制的基本思想是利用计算机来实现人的控制经验,而这些经验多是用语言表达的具有相当模糊性的控制规则。
模糊控制器(Fuzzy Controller,即FC)获得巨大成功的主要原因在于它具有如下一些突出特点:模糊控制是一种基于规则的控制。
它直接采用语言型控制规则,出发点是现场操作人员的控制经验或相关专家的知识,在设计中不需要建立被控对象的精确数学模型,因而使得控制机理和策略易于接受与理解,设计简单,便于应用。
由工业过程的定性认识出发,比较容易建立语言控制规则,因而模糊控制对那些数学模型难以获取、动态特性不易掌握或变化非常显著的对象非常适用。
基于神经网络的仿真实验一、实验目的1.熟悉神经网络的结构、特征及学习算法2.通过实验掌握利用神经网络进行样本学习与训练的方法。
3.通过实验了解神经网络的结构、权值、学习速率、动量因子对控制效果的影响。
4.通过实验掌握用Matlab 实现神经网络控制系统仿真的方法二、实验内容1.给出仿真系统的设计过程和程序清单。
2.记录实验数据和曲线三、实验步骤1.在Matlab 下依据原理编写仿真程序并调试。
2.给定输入信号,或训练样本,运行程序,记录实验数据和控制曲线3.修改神经网络结构参数,如权值、学习速率、动量因子、隐含层神经元个数等,重复步骤(2)四、实验要求1.使用BP 网络逼近对象:采样时间取2ms,输入信号为u(k)=2sin(10πt),神经网络为3-10-2结构,权值W1,W2的初始取值取[-1,+1]之间的随机值,取η=0.80,α=0.06。
2.取标准样本为3神经网络为3-12-2结构,权值的初始取值取[-1,+1]之间的随机值,取η=0.70,α=0.05,训练最终目标为 。
3.被控对象为输入指令为一方波信号:))4sgn(sin(8.0)(t k rin π=,采样时间为1ms ,η=0.60,采用有监督Hebb 学习实现权值的学习,初始权值取[][]2.0,15.015.015.0321===K w w w W 五、实验程序1.clear all; 清除所有文件; close all; 关闭所有已开文件; xite=0.80; 惯性系数为0.8; alfa=0.06; 学习速率为0.06;w2=rands(6,1); 初始化隐含层与输出层6行1列的权值矩阵;s t k y k y k u k yout 5.0)1(1)1()()(23≤-+-+=)2(632.0)1(10.0)2(26.0)1(368.0)(-+-+-+-=k u k u k y k y k y 1010-=Ew2_1=w2;w2_2=w2_1;w1=rands(2,6); 初始化输入层与隐含层;w1_1=w1;w1_2=w1;dw1=0*w1;x=[0,0]'; 给神经元的输入层的节点赋值;u_1=0; 初始化;y_1=0;I=[0,0,0,0,0,0]';Iout=[0,0,0,0,0,0]';FI=[0,0,0,0,0,0]';ts=0.002; 采样时间为2ms;for k=1:1:1000time(k)=k*ts; 第k个采样时间;u(k)=2*sin(10*pi*ts); 第k个采样时间输入信号;y(k)=u_1^3+y_1/(1+y_1^2); 第k个采样时间输入信号;for j=1:1:6I(j)=x'*w1( : ,j);Iout(j)=1/(1+exp(-I(j))); 隐含层输出;endyn(k)=w2'*Iout; 输出层输出=隐含层与输出层之间连接数*隐含层输出;e(k)=y(k)-yn(k);w2=w2_1+(xite*e(k))*Iout+alfa*(w2_1-w2_2); 隐含层与输出层之间的权值调整公式;for j=1:1:6FI(j)=exp(-I(j))/(1+exp(-I(j)))^2;endfor i=1:1:2for j=1:1:6dw1(i,j)=e(k)*xite*FI(j)*w2(j)*x(i); 输入层与隐含层之间的权值变化公式;endendw1=w1_1+dw1+alfa*(w1_1-w1_2); 输入层与隐含层之间的权值调整公式;yu=0;for j=1:1:6yu=yu+w2(j)*w1(1,j)*FI(j);enddyu(k)=yu;x(1)=u(k);x(2)=y(k);w1_2=w1_1;w1_1+w1;w2_2=w2_1;w2_1=w2;u_1=u(k);y_1=y(k);endfigure(1);plot(time,y ,'r',time,yn,'b'); 画图; xlabel('times');ylabel('y and yn'); figure(2); plot(time,y-yn,'r');xlabel('times');ylabel('error');figure(3); plot(time,dyu);xlabel('times');ylabel('dyu');-0.0500.050.10.150.20.250.30.35timese r r o r2.62.833.23.43.63.8timesd y u00.10.20.30.40.50.60.70.80.91timey a n d y n2.clear all;close all; for j=1:1:6xite=0.50; I(j)=x*w1( : ,j);alfa=0.05; Iout(j)=1/(1+exp(-I(j))); w2=rands(6,2); endw2_1=w2;w2_2=w2_1; yl=w2'*Iout; w1=rands(3,6); yl=yl'; w1_1=w1;w1_2=w1; el=0;dw1=0*w1; y=ys(s, : ); I=[0,0,0,0,0,0]'; for l=1:1:OUTIout=[0,0,0,0,0,0]'; el=el+0.5*(y(1)-yl(1))^2; FI=[0,0,0,0,0,0]'; endOUT=2; es(s)=el; k=0; E=0; E=1.0; if s==NS NS=3; for s=1:1:NS while E>=1e-020 E=E+es(s); k=k+1; end times(k)=k; end for s=1:1:NS ey=y-yl; xs=[1,0,0; w2=w2_1+xite*Iout*ey+alfa*(w2_1-w2_2);0,1,0; for j=1:1:60,0,1]; S=1/(1+exp(-I(j))); ys=[1,0; FI(j)=S*(1-S); 0,0.5; end0,1; ]; for i=1:1:3 x=xs(s, : ); for j=1:1:6dw1(i,j)=xite*FI(j)*x(i)*(ey(1)*w2(j,1)+ey(2)*w2(j,2)); end endw1=w1_1+dw1+alfa*(w1_1-w1_2); w1_2=w1_1;w1_1=w1; w2_2=w2_1;w2_1=w2; end Ek(k)=E; end figure(1);plot(times,Ek,'r'); xlabel('k');ylabel('E'); save wfile w1 w2;I = 0 Iout= 0 FI = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000.10.20.30.40.50.60.7kE3. clear all; e_2 =0;close all; y_1=0;y_2=0; x=[0,0,0]'; u_1=0;u_2=0; xite=0.60; ts=0.001;w1_1=0.15; for k=1:1:1000 w2_1=0.15; time(k)=k*ts;w3_1=0.15; r(k)=0.8*sign(sin(2*2*pi*k*ts)); e_1=0;y(k)=0.368*y_1+0.26*y_2+0.1*u_1+0.632*u_2; e(k)=r(k)-y(k); endw1(k)=w1_1+xite*e(k)*u_1*x(1); figure(1);w2(k)=w2_1+xite*e(k)*u_1*x(2); plot(time,r,'b',time,y ,'r');w3(k)=w3_1+xite*e(k)*u_1*x(3); xlabel('time(s)');ylabel('Position tracking'); K=0.2; figure(2);x(1)=e(k)-e_1; plot(time,e,'r');x(2)=e(k); xlabel('time(s)');ylabel('error'); x(3)=e(k)-2*e_1+e_2; figure(3);w=[w1(k),w2(k),w3(k)]; plot(time,w1,'r');u(k)=u_1+K*w*x; xlabel('time(s)');ylabel('w1'); e_2=e_1;e_1=e(k); figure(4);u_2=u_1;u_1=u(k); plot(time,w2,'r');y_2=y_1;y_1=y(k); xlabel('time(s)');ylabel('w2'); w1_1=w1(k); figure(5);w2_1=w2(k); plot(time,w3,'r');w3_1=w3(k); xlabel('time(s)');ylabel('w3');00.10.20.30.40.50.60.70.80.91-0.8-0.6-0.4-0.200.20.40.60.81time(s)P o s i t i o n t r a c k i n g00.10.20.30.40.50.60.70.80.91-2-1.5-1-0.50.51time(s)e r r o r00.10.20.30.40.50.60.70.80.910.10.20.30.40.50.60.70.80.9time(s)w 100.10.20.30.40.50.60.70.80.91-0.4-0.20.20.40.60.81time(s)w 20.10.20.30.40.50.60.70.80.910.10.150.20.250.30.350.40.450.50.550.6time(s)w 3。