基于simulink的模糊PID控制器设计与实现

目录

一、理论基础

二、核心程序

三、仿真测试结果


作者ID  :fpga和matlab
CSDN主页:https://blog.csdn.net/ccsss22?type=blog
擅长技术:
1.无线基带,无线图传,编解码 
2.机器视觉,图像处理,三维重建 
3.人工智能,深度学习 
4.智能控制,智能优化
5.其他

一、理论基础

    PID校正传递函数应为:

我们课题中式PI控制器,那么只要把Kd设置为0即可,这里我们还是按PID来进行说明

理论上,PID三个参数的确定有如下方法:

设系统固有开环传递函数为:

系统的特征方程为:    

       通过对三个系数的不同赋值,可改变闭环系统的全部或部分极点的位置,从而改变系统的动态性能。由于PID调节器只有三个任意赋值的系数,因此只能对固有传递函数是一阶和二阶的系统进行极点位置的任意配置。

       对于一阶系统,只需采用局部的PIPD校正即可实现任意极点配置。设一阶系统开环固有传递函数和校正环节传递函数分别为:

下面重点讲一下模糊PI/PID控制器的设计流程,其基本理论如需所示:

       这里,我们所采用的模糊PI的控制方式,可以实现实时参数更新,从而改善控制系统的控制性能,提高控制系统的稳定性和高精度性。

图1 模糊PI结构图

       模糊PI控制器,其主要多了一个模糊控制器,通过模糊控制对输入误差和误差变化率,得到一个最佳的Kp和Ki,从而实现实时的调整PI参数的作用。

模糊集、论域及隶属度函数的确定

       本系统,考虑到控制规则的实际情况,本课题选择7个模糊语言作为模糊规则的基本语句,这里主要为NB (负大)、NM (负中)、NS (负小)、ZO (零)、PS (正小)、PM (正中)、PB (正大)。这里选择的模糊变为输入误差E,输入误差变化率Ec,输出变量和。

      输入E、EC和输出、的模糊集论域采用Mamdani类型,模糊语言集合为{NB,NM,NS,ZO,PS,PM,PB},在MATLAB中,使用模糊函数编辑工具设计上述讲述的模糊模糊集和隶属函数。常用的隶属函数有梯形分布、三角形分布和正态分布等。

      隶属函数的类型决定了系统的控制性能,隶属函数中的曲线斜率越大,其模糊分辨率就越高,系统的控制性能就越低,隶属函数中的曲线斜率越小,其模糊分辨率就越低。系统的控制性能就越高,系统稳定性就越高。

模糊控制规则

      模糊控制规则表建立的基本原则为,当误差较大的时候,应尽快的消除误差,而当误差较小的时候,应消除可能存在的超调。就是说,如果实际值和和期望值的偏差负大,而且偏差变化率为负中时,则需要使得Id的输出量为正大。由模糊语言的等级可以得知,模糊控制规则有49条模糊条件语句。通常情况下,模糊规则如表1,2所示。

表1 e规则控制表

Kp

EC

E

NB

NM

NS

ZO

PS

PM

PB

NB

PB

PB

PM

PM

PS

ZO

ZO

NM

PB

PB

PM

PS

PS

ZO

NS

NS

PM

PM

PS

PS

ZO

NS

NS

ZO

PM

PM

PS

ZO

NS

NS

NM

PS

PS

PS

ZO

NS

NS

NM

NM

PM

PS

ZO

NS

NS

NM

NM

NB

PB

ZO

ZO

NS

NM

NM

NB

NB

表3-2 ec规则控制表

Kp

EC

E

NB

NM

NS

ZO

PS

PM

PB

NB

PB

PB

PM

PM

PS

ZO

ZO

NM

PB

PB

PM

PS

PS

ZO

NS

NS

PM

PM

PS

PS

ZO

NS

NS

ZO

PM

PM

PS

ZO

NS

NS

NM

PS

PS

PS

ZO

NS

NS

NM

NM

PM

PS

ZO

NS

NS

NM

NM

NB

PB

ZO

ZO

NS

NM

NM

NB

NB

这里,我们使用的25个模糊规则,比上面的简化些

       最后就是反模糊化,所谓的反模糊化,就是根据模糊推理规则计算出控制器的输出,在通常情况下,反模糊算法主要有加权平均法、限幅元素平均法等算法。

二、核心程序

首先讲一下关于电力系统的仿真,simulink的仿真环境的配置设置:

        这里,在simulink中,我们一般选择内插方式为ode23tb。然后在选择精度为0.0001.这样的话,在powerGUI设置为continue的时候,我们可以得到比较光滑的曲线,并且仿真速度较快,而默认状态的配置,只适合于离散情况下进行仿真。

       然后,是电机部分,电机部分,为了能突出对比性,我们这里还是使用你上次提供的电机的配置设置,不过修改了初始参数的值,因为之前你的初始值都是0.这样显然是不对的。

然后几个其他电力模块:

注意,之前,你的设置是

        就是最后两个你都设置了100,但是这样的话,电机和RLC是冲突的,所以需要设置为0,设置为0之后,就可以正常的运行了。

然后建立如下的模型:

三、仿真测试结果

       通过MATLAB中的模糊规则的设计方法,可以得到模糊规则的三维效果图,这个三维效果图中的纵坐标表示的是模糊控制器输出控制量u的曲面。其仿真效果如图3所示。

 

图3模糊控制器的输出曲面

    通过上面的基本理论,我们得到的控制系统的基本结构如下所示:

01:

从上面的仿真结果对来看,模糊PI比PI能够更快收敛到预设值0附近。

02:

03:

A05-11

  • 5
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Fuzzysimulink有关模糊PID问题概述-自适应模糊PID.rar 最近很多人问我关于模糊PID的问题,我就把模糊PID的问题综合了一下,希望对大家有所帮助。 一、模糊PID就是指自适应模糊PID吗? 不是,通常模糊控制和PID控制结合的方式有以下几种: 1、大误差范围内采用模糊控制,小误差范围内转换成PID控制模糊PID开关切换控制。 2、PID控制与模糊控制并联而成的混合型模糊PID控制。 3、利用模糊控制在线整定PID控制参数的自适应模糊PID控制。 一般用1和3比较多,MATLAB自带的水箱液位控制tank采用的就是开关切换控制。由于自适应模糊PID控制效果更加良好,而且大多数人选用自适应模糊PID控制,所以在这里主要指自适应模糊PID控制。 二、自适应模糊PID的概念 根据PID控制的三个参数与偏差e和偏差的变化ec之间的模糊关系,在运行时不断检测e及ec,通过事先确定的关系,利用模糊推理的方法,在线修改PID控制的三个参数,让PID参数可自整定。就我的理解而言,它最终还是一个PID控制,但是因为参数可自动调整的缘故,所以也能解决不少一般的非线性问题,但是假如系统的非线性、不确定性很严重时,那模糊PID的控制效果就会不理想啦。 三、模糊PID控制规则是怎么定的? 这个控制规则当然很重要,一般经验: 当e较大时,为使系统具有较好的跟踪性能,应取较大的Kp与较小的Kd,同时为避免系统响应出现较大的超调,应对积分作用加以限制,通常取Ki=0。 当e处于中等大小时,为使系统响应具有较小的超调,Kp应取得小些。在这种情况下,Kd的取值对系统响应的影响较大,Ki的取值要适当。 当e较小时,为使系统具有较好的稳定性能,Kp与Ki均应取得大些,同时为避免系统在设定值附近出现振荡,Kd值的选择根据|ec|值较大时,Kd取较小值,通常Kd为中等大小。 另外主要还得根据系统本身的特性和你自己的经验来整定,当然你先得弄明白PID三个参数Kp,Ki,Kd各自的作用,尤其对于你控制的这个系统。 四、量化因子Ke,Kec,Ku该如何确定? 有个一般的公式:Ke=n/e,Kec=m/ec,Ku=u/l。n,m,l分别为Ke,Kec,Ku的量化等级,一般可取6或7。e,ec,u分别为误差,误差变化率,控制输出的论域。不过通过我实际的调试,有时候这些公式并不好使。所以我一般都采用凑试法,根据你的经验,先确定Ku,这个直接关系着你的输出是发散的还是收敛的。再确定Ke,这个直接关系着输出的稳态误差响应。最后确定Kec,前面两个参数确定好了,这个应该也不会难了。 五、在仿真的时候会出现刚开始仿真的时候时间进度很慢,从e-10次方等等开始,该怎么解决? 这时候肯定会有许多人跳出来说是步长的问题,等你改完步长,能运行了,一看结果,惨不忍睹!我只能说这个情况有可能是你的参数有错误,但如果各项参数是正确的前提下,你可以在方框图里面加饱和输出模块或者改变阶跃信号的sample time,让不从0开始或者加个延迟模块或者加零阶保持看看…… 六、仿真到一半的时候仿真不动了是什么原因? 仿真图形很有可能发散了,加个零阶保持,饱和输出模块看看效果。改变Ke,Kec,Ku的参数。 七、仿真图形怎么反了? 把Ku里面的参数改变一下符号,比如说从正变为负。模糊PID的话改变Kp的就可以。 八、还有人问我为什么有的自适应模糊PID里有相加的模块而有的没有? 相加的是与PID的初值相加。最后出来的各项参数Kp=△Kp Kp0,Ki=△Ki Ki0,Kd=△Kd Kd0。Kp0,Ki0,Kd0分别为PID的初值。有的系统并没有设定PID的初值。 九、我照着论文搭建的,什么都是正确的,为什么最后就是结果不对? 你修改下参数或者重新搭建一遍。哪一点出了点小问题,都有可能导致失败。 …… 大家还有什么问题就在帖子后面留言哈,如果模型实在是搭建不成功的话可以给我看看,大家有问题一起解决!附件里面是两个自适应模糊PID的程序,大家可以参考下! 所含文件: Figure38.jpg simulink有关模糊PID问题概述 结构图: Figure39.jpg simulink有关模糊PID问题概述 Figure40.jpg simulink有关模糊PID问题概述
模糊PID控制是一种基于模糊逻辑理论和PID控制原理相结合的控制方法。它通过将模糊逻辑与PID控制相结合,可以克服传统PID控制在复杂非线性系统中存在的问题。 在MATLAB中实现模糊PID控制,需要以下步骤: 1. 定义系统模型:根据实际系统的特点,建立精确的模型,包括系统的输入、输出和各种参数等。 2. 设计模糊控制:根据系统的需求和目标,设计模糊控制的输入、输出和规则库等。模糊控制的输入一般包括误差(e)、误差变化率(ec)和输出的隶属度函数等,输出为控制的增益系数,通过调整增益系数来改变系统的输出。 3. 实现模糊控制:使用MATLAB的模糊逻辑工具箱,根据设计好的输入、输出和规则库等参数,构建模糊控制对象。 4. 将模糊控制PID控制相结合:使用MATLAB的控制系统工具箱,将模糊控制PID控制相连接,形成模糊PID控制,通过传递函数的形式描述控制的输入和输出。 5. 仿真和优化:利用MATLAB的仿真工具,对模糊PID控制进行仿真,并根据实际需求进行参数优化和系统性能的评估。可以通过调整模糊规则库和增益系数等参数,以优化系统的响应速度、稳定性和抗干扰性能等。 通过上述步骤,我们可以在MATLAB中实现模糊PID控制实现对复杂非线性系统的控制和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fpga和matlab

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值