基于模糊PID的直流电机控制系统simulink建模与仿真
1.课题概述
PID控制器和模糊PID控制器通过Simulink建模实现,在matlab中编程实现模糊控制规则,PID控制器参数计算。运行simulink模型之后,将2个控制器的控制响应曲线进行对比得到仿真结果。
2.系统仿真结果
将PID控制器的控制响应曲线和模糊PID控制响应曲线放一起对比,结果如下:
可以看到,模糊PID控制器收敛速度更快,且超调更小。
3.核心程序与模型
版本:MATLAB2022a
Simulink模型如下:
模糊规则通过MATLAB编程实现,核心程序如下:
% 添加输入变量E及其隶属度函数
FIS = addvar(FIS,'input','E',[-100 100]);
% 添加E的负向隶属度函数
FIS = addmf(FIS,'input',1,'Negative','gaussmf',[70 -100]);
% 添加E的正向隶属度函数
FIS = addmf(FIS,'input',1,'Positive','gaussmf',[70 100]);
% 添加输入变量CE及其隶属度函数
FIS = addvar(FIS,'input','CE',[-100 100]);
% 添加CE的负向隶属度函数
FIS = addmf(FIS,'input',2,'Negative','gaussmf',[70 -100]);
% 添加CE的正向隶属度函数
FIS = addmf(FIS,'input',2,'Positive','gaussmf',[70 100]);
% 添加输出变量u及其隶属度函数
FIS = addvar(FIS,'output','u',[-200 200]);
% 添加u的最小值常量函数-200(min)函数负向端点是-200,正向端点是-200。
FIS = addmf(FIS,'output',1,'Min','constant',-200);
% 添加u的零点常量函数,正向端点是0,负向端点是0
FIS = addmf(FIS,'output',1,'Zero','constant',0);
% 添加u的最大值常量函数,正向端点是200,负向端点是200
FIS = addmf(FIS,'output',1,'Max','constant',200);
%模糊规则
...........................................................
FIS = addrule(FIS,ruleList);
0001
4.系统原理简介
基于模糊PID的直流电机控制系统是一种先进的控制策略,它结合了模糊逻辑和传统PID控制器的优点,以提供更优的控制性能。这种控制系统在许多领域,特别是在直流电机控制中,得到了广泛的应用。
模糊PID控制器是一种将模糊逻辑与常规PID控制器相结合的智能控制器。它利用模糊逻辑的推理能力,根据不同的输入值,动态调整PID控制器的参数,以达到更好的控制效果。
在模糊PID控制系统中,首先通过模糊化模块将输入的误差和误差变化率转换为模糊量。然后,根据模糊推理规则,对这些模糊量进行推理,得出相应的控制输出。最后,将这个模糊控制输出转换为实际的控制输出,实现对被控对象的控制。
4.1 PID控制器
比例-积分-微分(PID)控制是工业中最常用的控制算法,在工业控制中已被普遍接受。 PID 控制器的流行部分归因于它们在各种操作条件下的稳健性能,部分归因于它们的功能简单性,这使工程师能够以简单、直接的方式操作它们。
PID算法由三个基本系数组成; 比例,积分和微分,它们是变化的以获得最佳响应。 本文讨论了闭环系统、经典 PID 理论和调节闭环控制系统的效果。 还讨论了 LabVIEW 中的 PID 工具集以及这些 VI 的易用性。
PID 控制器是一种线性控制器,它根据给定值与实际输出值构成控制偏差。将偏差的比例§、积分(I)和微分(D)通过线性组合构成控制量,对被控对象进行控制,故称 PID 控制器,原理框图如图所示。
4.2模糊化模块
在模糊PID控制系统中,误差和误差变化率是输入量。它们可以通过相应的函数转换为模糊量。通常,误差和误差变化率可以使用以下公式进行计算:
误差:e = r - y
误差变化率:ec = (e(t) - e(t-1)) / T
其中,r是参考输入,y是被控对象的输出,T是采样时间。
4.3 模糊推理模块
模糊推理模块是模糊PID控制系统的核心部分。它根据不同的输入模糊量,通过模糊推理规则得出相应的控制输出。在模糊PID控制系统中,通常使用以下模糊推理规则:
IF e is A and ec is B THEN u is C
其中,A、B和C是模糊集合,u是控制输出。这些模糊集合可以根据实际情况进行定义。
4.4 解模糊模块
解模糊模块是将模糊控制输出转换为实际控制输出的模块。它通常使用中心平均法或最大值法进行解模糊操作。中心平均法是通过计算每个可能输出值的中心平均值来得出实际输出值。最大值法是通过选择所有可能输出值中的最大值来得出实际输出值。
- 点赞
- 收藏
- 关注作者
评论(0)