基于FNN模糊神经网络的控制器解耦控制matlab仿真

简介: 基于FNN模糊神经网络的控制器解耦控制matlab仿真

1.算法仿真效果
matlab2022a仿真结果如下:

09b8c48bbfeb72aa6adc5e6e0bc4e7c7_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

2.算法涉及理论知识概要

   系统的复杂性与所要求的精确性之间存在尖锐矛盾,为此,通过模拟人类学习和自适应能力,人们提出了智能控制的思想。控制理论专家Austrom(1991)在IFAC 大会上指出:模糊逻辑控制、神经网络与专家控制是三种典型的智能控制方法。通常专家系统建立在专家经验上,并非建立在工业过程所产生的操作数据上,且一般复杂系统所具有的不精确性、不确定性就算领域专家也很难把握,这使建立专家系统非常困难。而模糊逻辑和神经网络作为两种典型的智能控制方法,各有优缺,模糊逻辑与神经网络的融合———模糊神经网络(Fuzzy Neural Network)由于吸取了模糊逻辑和神经网络的优点, 部分避免了两者的缺点, 已经成为当今智能控制研究的热点之一。
   模糊逻辑(FL)、神经网络理论(NN)、遗传算法(GA)、随机推理(PR), 以及置信网络、混沌理论和部分学习理论相融合,形成了一种协作体,这种融合并非杂乱无章地将模糊逻辑、神经网络和遗传算法等进行拼凑,而是通过各种方法解决本领域的问题并相互取长补短,从而形成了各种方法的协作.从这个意义上讲,各种方法是互补的, 而不是竞争的。在协作体中, 各种方法起着不同的作用.通过这种协作,产生了混合智能系统.模糊逻辑和神经网络都是重要的智能控制方法,将模糊逻辑和神经网络这两种软计算方法相结合, 取长补短, 形成一种协作体———模糊神经网络。

   神经模糊网络结构的多样性导致其学习算法也具有多样性的特点。模糊神经网络的学习主要包括结构学习和参数学习。网络的可调参数,可通过参数学习算法确定:隐层最优节点数即最优模糊规则数可通过结构学习算法确定,表2列出了几种模糊神经网络的学习算法 。反向传播 (BP)学习算法、遗传(GA)算法、粗糙集理论、微粒群理论等是几种与具体神经网络结构无关的通用学习算法,表3列出了这几种算法的特点。遗传算法是借鉴生物进化思想而提出的一种寻优方法,被广泛应用于各种优化问题中。粗糙集理论有很强的知识获取和处理能力,利用样本建立决策表,根据决策属性的重要性进行知识约简,可大大降低知识表示空间的维数。粒子群优化算法已经在许多困难的单峰和多峰优化问题中表现出良好的性能。

    在现代化的工业生产中,不断出现一些较复杂的设备或装置,这些设备或装置的本身所要求的被控制参数往往较多,因此,必须设置多个控制回路对该种设备进行控制。由于控制回路的增加,往往会在它们之间造成相互影响的耦合作用,也即系统中每一个控制回路的输入信号对所有回路的输出都会有影响,而每一个回路的输出又会受到所有输入的作用。要想一个输入只去控制一个输出几乎不可能,这就构成了“耦合”系统。由于耦合关系,往往使系统难于控制、性能很差。

98bbc685063717b0344e25b7e06c5859_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

    所谓解耦控制系统,就是采用某种结构,寻找合适的控制规律来消除系统中各控制回路之间的相互耦合关系,使每一个输入只控制相应的一个输出,每一个输出又只受到一个控制的作用。 解耦控制是一个既古老又极富生命力的话题,不确定性是工程实际中普遍存在的棘手现象。解耦控制是多变量系统控制的有效手段。

    一个多变量系统在单位阶跃函数(见过渡过程) 输入作用下能通过引入控制装置实现稳态解耦时,就称实现了静态解耦控制。对于线性定常系统(A,B,C),如果系统可用状态反馈来稳定,且系数矩阵A、B、C满足关于秩的关系式,则系统可通过引入状态反馈和输入变换来实现静态解耦。多变量系统在实现了静态解耦后,其闭环控制系统的传递函数矩阵G(s)当s=0时为非奇异对角矩阵;但当s≠0时,G(s)不是对角矩阵。对于满足解耦条件的系统,使其实现静态解耦的状态反馈矩阵K和输入变换矩阵L可按如下方式选择:首先,选择K使闭环系统矩阵(A-BK)的特征值均具有负实部。随后,选取输入变换矩阵,式中D为非奇异对角矩阵,其各对角线上元的值可根据其他性能指标来选取。由这样选取的K和L所构成的控制系统必定是稳定的,并且它的闭环传递函数矩阵G(s)当s=0时即等于D。在对系统参数变动的敏感方面,静态解耦控制要比完全解耦控制优越,因而更适宜于工程应用。 

3.MATLAB核心程序

for J=1:50
   ep1=10-yp1;
   pid=kp*(ep1-ep0)+ki*ep1;
   up2=up1+pid;
   yp2=0.5*yp1+2.5*up2+2.5*up1; 
   yp(:,J)=yp2;
   up0=up1;
   up1=up2;
   ep0=ep1; 
   yp0=yp1;
   yp1=yp2;
end  
..........................................................................  
%输出
sum=0;
for i=1:3
   for j=1:3
      sum=sum+h(i,j)*v1(i,j);
   end
end
ot=sum;cu=su*ot;u2=u1+cu;disp(u2);
if(u2<0)
u2=0;
elseif(u2>=1)
 u2=1;
end
y2=0.5*y1+2.5*u2+2.5*u1+n1(:,k)+0.01*y12; 
%+n1(:,k)+0.01*y12表示随机噪声和子系统间的相互耦合
disp(['the output y number is' int2str(T)]);
disp(y2);
Y(:,k)=y2;E=0.5*(sp-y2).^2;e2=sp-y2;
 
Es(:,k)=e2;
x1=e2;x2=e2-e1;e0=e1;e1=e2;
delot=(sp-y2)*2.5*su;
 
for i=1:3
   for j=1:3
      dv=v1(i,j)-v0(i,j);
      v2=v1(i,j)+p13*delot+q13*dv;
      v3(i,j)=v2;
   end
end
.......................................................
end   
   
if(abs(e1)<=eps & abs(e)<=eps)
      break;
else
      k=k+1;
end
   y02=y12;y12=y22;u02=u12;u12=u22;
end
L=k-1; n2=n;
%L=k;
m=1:L;
R=ones(size(m));
sp=R*10;sp2=R*5;
 
 
figure
plot(m,sp,'k','LineWidth',2);
hold on
plot(m,Y,'bs',...
    'MarkerSize',6,...
    'MarkerEdgeColor','k',...
    'MarkerFaceColor',[0.0,0.9,0.0]);
hold on
plot(m,sp2,'k','LineWidth',2);
hold on
plot(m,Y2,'rs',...
    'MarkerSize',6,...
    'MarkerEdgeColor','k',...
    'MarkerFaceColor',[0.9,0.0,0.0]);
hold on
plot(m,Es,'r');
hold on
plot(m,E22,'b');
legend('子系统1的输入','子系统1的耦合结果','子系统2的输入','子系统2的耦合结果','子系统1的误差','子系统2的误差' ); 
%图标炷 
title('FNN解耦'),
xlabel('k'),
 
 
figure
plot(m,n1,'b--',m,n2,'r');
legend('子系统1的噪声','子系统2的噪声' ); %图标炷    
xlabel('k'),
相关文章
|
8天前
|
机器学习/深度学习 人工智能 算法
基于DCT和扩频的音频水印嵌入提取算法matlab仿真
本文介绍了结合DCT和扩频技术的音频水印算法,用于在不降低音质的情况下嵌入版权信息。在matlab2022a中实现,算法利用DCT进行频域处理,通过扩频增强水印的隐蔽性和抗攻击性。核心程序展示了水印的嵌入与提取过程,包括DCT变换、水印扩频及反变换步骤。该方法有效且专业,未来研究将侧重于提高实用性和安全性。
|
3天前
|
机器学习/深度学习 算法 计算机视觉
m基于Yolov2深度学习网络的人体喝水行为视频检测系统matlab仿真,带GUI界面
MATLAB 2022a中使用YOLOv2算法对avi视频进行人体喝水行为检测,结果显示成功检测到目标。该算法基于全卷积网络,通过特征提取、锚框和损失函数优化实现。程序首先打乱并分割数据集,利用预训练的ResNet-50和YOLOv2网络结构进行训练,最后保存模型。
13 5
|
6天前
|
机器学习/深度学习 传感器 数据可视化
MATLAB用深度学习长短期记忆 (LSTM) 神经网络对智能手机传感器时间序列数据进行分类
MATLAB用深度学习长短期记忆 (LSTM) 神经网络对智能手机传感器时间序列数据进行分类
21 1
MATLAB用深度学习长短期记忆 (LSTM) 神经网络对智能手机传感器时间序列数据进行分类
|
6天前
|
机器学习/深度学习 算法 数据挖掘
基于PSO优化的CNN-LSTM-Attention的时间序列回归预测matlab仿真
该文档介绍了使用MATLAB2022A中PSO优化算法提升时间序列预测模型性能的过程。PSO优化前后对比显示了优化效果。算法基于CNN、LSTM和Attention机制构建CNN-LSTM-Attention模型,利用PSO调整模型超参数。代码示例展示了PSO的迭代优化过程及训练、预测和误差分析环节。最终,模型的预测结果以图形形式展示,并保存了相关数据。
|
11天前
|
机器学习/深度学习 数据可视化 网络架构
matlab使用长短期记忆(LSTM)神经网络对序列数据进行分类
matlab使用长短期记忆(LSTM)神经网络对序列数据进行分类
15 0
|
2月前
|
机器学习/深度学习 算法 PyTorch
python手把手搭建图像多分类神经网络-代码教程(手动搭建残差网络、mobileNET)
python手把手搭建图像多分类神经网络-代码教程(手动搭建残差网络、mobileNET)
46 0
|
6月前
|
机器学习/深度学习 监控 算法
【tensorflow】连续输入的神经网络模型训练代码
【tensorflow】连续输入的神经网络模型训练代码
|
6月前
|
机器学习/深度学习 存储 自然语言处理
|
2月前
|
机器学习/深度学习 存储 算法
【轻量化:实操】动手实现神经网络中的裁枝操作(附演示代码&yolo系列)
【轻量化:实操】动手实现神经网络中的裁枝操作(附演示代码&yolo系列)
46 1
|
3月前
|
机器学习/深度学习 自然语言处理 PyTorch
深入理解循环神经网络(RNN):案例和代码详解
深入理解循环神经网络(RNN):案例和代码详解
212 0

热门文章

最新文章