PID控制与模糊PID控制的比较

一、PID控制器的设计

1.PID控制原理图:

PID控制其结构框图如下图所示:

图1:PID控制器结构框图

2.PID控制器传递函数的一般表达式

PID控制器传递函数的一般表达形式为:

其中kp为比例增益;ki为积分增益;kd为微分增益。

调整PID参数,以满足系统要求,从而使被控对象有更优良的动态响应和静态响应。

比例环节:根据偏差量成比例的调节系统控制量,以此产生控制作用,减少偏差。比例系数的作用是增加系统响应的速度,比例系数越大,系统响应越快,但系统容易产生超调,比例系数过小,会影响系统调节的精度,系统响应时间变长,系统的动态响应变差。

积分环节:用于消除静差,提高系统的无差度,积分时间常数决定着积分环节作用的强度,但是积分作用过强的话会影响系统的稳定性。

微分环节:根据偏差量的变化趋势来调节系统控制量,在偏差信号发生较大变化之前,提早引入一个校正信号,起到加快系统动作速度,减少调节时间的作用,调节微分参数需要注意微分作用太强可能会引起系统振荡。

二、模糊PID控制器的设计

1.模糊控制原理图

模糊控制器结构框图如下图所示:

图3:模糊控制器结构框图

上面为模糊控制器的原理图,实际上模糊控制器的输出并非真正的控制信号,而是作为PID的参数。所以完整的模糊PID控制器框图应该需要包含PID控制的部分,如下图所示:

其中模糊推理部分即上面的模糊控制器,PID调节器才是真正起作用的控制器,而模糊控制器的作用是在线实时调整PID参数。

2.模糊控制器传递函数一般表达形式

一个典型工业过程通常可以等效为二阶系统加上一个非线性环节(如纯滞后),给出如下经典控制对象传递函数的一般形式:

其中模糊控制规则是模糊控制器的核心,是设计控制系统的主要内容。

一个基本模糊控制器主要有三个功能:

(1)模糊化:把精确量(如偏差e和偏差变化ec)转化为相应的模糊量(E、EC);

(2)模糊推理:按总结的语言规则(模糊控制规划表)进行模糊推理;

(3)模糊判决:把推理结果(U)从模糊量转化为可以用于实际控制的精确量(u)。

模糊规则是由一系列的模糊条件语句组成的,即由许多模糊蕴含关系构成。这些条件语句是推理的出发点和得到的正确结论的根据和基础。每条模糊条件语句都给出模糊蕴含关系,即一条控制规则。若有n条规则,就把它们表达的n个模糊蕴含关系(i=l,2,⋯,n)做并运算,构成系统总的模糊蕴含关系:

三、系统仿真

本文采用的传递函数为:

用Simulink工具建立由PID控制器组成的系统仿真模型如下图所示,其中比例增益Kp取值0.04,积分增益取值0.03,微分增益取值1.2。选用的输入是单位阶跃信号。

图4:Simulink的PID控制器仿真图

设计模糊PID控制器的主要步骤为:

1. 选择偏差e、偏差变化ec和输出的模糊语言变量为E、EC和Kp,Ki,Kd。根据e、ec和PID参数实际的基本论域,设定E、EC都为[-3,3],Kp为[-0.3,0.3],Ki为[-0.06,0.06],Kd为[-3,3]。模糊控制器前后的GAIN模块为比例因子,可将输出输出转换到论域范围。

2. 选取E、EC和PID参数的各语言变量值:正大为PB,正中为PM,正小为PS,为零为E,负小为NS,负中为NM,负大为NB,它们各自在论域上的模糊子集隶属度函数均为三角形。

3. 选择一种模糊判决方法,将控制量由模糊量变为精确量,这个过程叫做“去模糊化”,这里采用的是“面积平分法”。

用Simulink工具建立由模糊控制器组成的系统仿真模型如下图所示:

图5:Simulink的模糊PID控制器仿真图

 语言值的隶属函数选择三角形的隶属度函数如下面三幅图所示:

(1)E的隶属度函数:

(2)EC的隶属度函数:

(3)PID参数(即Kp,Ki,Kd)的隶属度函数

控制规则选用Mamdain 控制规则;

 将规则输入到编辑器中(如图8所示)一共有7×7=49条规则,输入后可以在编辑器中的Rule Viewer(如图9所示)和Surface Viewe(如图10所示)r中查看对具体输入的模糊推理及输出情况,输入各种不同的数据,查看模糊推理情况及输出数据。也可以用于检查,看自己输入的规则和有没有错误。

编辑器中的Surface Viewer:

实验得到的结果图形如下所示:

四、下载链接:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/373016.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

昇思25天学习打卡营第22天 | Shufflenet图像分类

ShuffleNet图像分类 当前案例不支持在GPU设备上静态图模式运行,其他模式运行皆支持。 ShuffleNet网络介绍 ShuffleNetV1是旷视科技提出的一种计算高效的CNN模型,和MobileNet, SqueezeNet等一样主要应用在移动端,所以模型的设计目标就是利用有…

uniapp 表格,动态表头表格封装渲染

1.接口表格数据: {"headers": [{"label": "实例名","name": "v1","order": 1,"hide": false,"dateTypeValue": null},{"label": "所属科室","name&quo…

[从0开始轨迹预测][NMS]:NMS的应用(目标检测、轨迹预测)

非极大值抑制(Non-Maximum Suppression,简称NMS)是一种在计算机视觉中广泛应用的算法,主要用于消除冗余和重叠的边界框。在目标检测任务中,尤其是在使用诸如R-CNN系列的算法时,会产生大量的候选区域&#x…

【Linux进阶】文件系统3——目录树,挂载

前言 在Windows 系统重新安装之前,你可能会事先考虑,到底系统盘C盘要有多大容量?而数据盘D盘又要给多大容量等,然后实际安装的时候,你会发现其实C盘之前会有个100MB的分区被独立出来,所以实际上你就会有三个…

10、matlab中字符、数字、矩阵、字符串和元胞合并为字符串并将字符串以不同格式写入读出excel

1、前言 在 MATLAB 中,可以使用不同的数据类型(字符、数字、矩阵、字符串和元胞)合并为字符串,然后将字符串以不同格式写入 Excel 文件。 以下是一个示例代码,展示如何将不同数据类型合并为字符串,并以不…

ElementPlusError: [ElPagination] 你使用了一些已被废弃的用法,请参考 el-pagination 的官方文档 - 报警告之一

一、问题描述: 今天在使用elementui plus的时候遇到了一个奇葩的问题, 就是提示 使用了一些已被废弃的用法, 奇葩就在于我是 复制另一个页面的分页, 一摸一样的东西,就只这个页面报错, 分页也不出 为了这个…

C# Bitmap类型与Byte[]类型相互转化详解与示例

文章目录 一、Bitmap类型转Byte[]类型使用Bitmap类的Save方法使用Bitmap类的GetBytes方法 二、Byte[]类型转Bitmap类型使用MemoryStream将Byte[]数组转换为Bitmap对象使用System.Drawing.Imaging.BitmapImage类 总结 在C#编程中,Bitmap类型和Byte[]类型之间的相互转…

运动爱好者的新选择:哈氪聆光气传导耳机,轻巧又安全

平时不管是漫步街头、骑行穿梭,还是乘坐公共交通时,我总是喜欢佩戴耳机,借此隔绝外部的喧嚣,享受音乐的乐趣。在户外使用耳机,我更倾向于选择气传导耳机,它们更符合我的需求,因为这种耳机能让我…

在 PostgreSQL 里如何处理数据的版本跟踪和回滚?

文章目录 一、事务二、保存点三、使用版本控制扩展四、审计表和触发器五、使用时间戳列六、比较和还原数据七、考虑数据备份和恢复八、结论 在数据库管理中,数据的版本跟踪和回滚是非常重要的功能,有助于在数据操作出现错误或需要回滚到特定状态时进行有…

Mysql笔记-v2

零、 help、\h、? 调出帮助 mysql> \hFor information about MySQL products and services, visit:http://www.mysql.com/ For developer information, including the MySQL Reference Manual, visit:http://dev.mysql.com/ To buy MySQL Enterprise support, training, …

Windows11配置WSL2支持代理上网

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、安装WSL2分发版二、配置步骤三、测试总结 前言 说起来本来这个功能我也不需要的,只是最近突然有个需求就顺便研究了下,WSL2默认的网…

Dynamics365 UCI下的高级查找(不要留恋Classic了)

UCI界面已经用了多年了,在Classic下的的高级查找按钮(漏斗icon)已不见踪影 但因为使用习惯问题,还是有人会通过右上角高级设置,进入Classic界面找到漏斗Icon来使用高级查找 但新的UCI风格下已经没了高级查找的概念,取而代之的是基…

评估测试用例有效性 5个方面

评估测试用例的有效性是确保软件测试活动能够达到预期目标的关键步骤,有助于测试团队优化测试计划,提高测试效率,减少返工,节省成本。如果缺乏对测试用例的有效性评估,可能会导致测试用例无法覆盖关键功能点&#xff0…

python爬虫基础入门

步骤 获取网页内容: http请求 python的Requests库 解析网页内容 html网页结构 python的Beautiful Soup库 储存或分析数据 储存进数据库 作为ai分析的数据 转化为图表显示出来 DDoS攻击 通过给服务器发送海量高频请求,大量消耗网页资源&#…

JavaScript-日期对象

日期对象 作用:用来表示时间的对象 获取当前时间 const datenew Date();console.log(date);可以得到日期对象,里面的属性有星期,年月日,时分秒 获取指定时间 const datenew Date(2023-05-01);console.log(date); 获取时间戳 时间…

【论文阅读】AsyncDiff: Parallelizing Diffusion Models by Asynchronous Denoising

论文:2406.06911 (arxiv.org) 代码:czg1225/AsyncDiff: Official implementation of "AsyncDiff: Parallelizing Diffusion Models by Asynchronous Denoising" (github.com) 简介 异步去噪并行化扩散模型。提出了一种新的扩散模型分布式加…

Hospital Management Startup 1.0 SQL 注入漏洞(CVE-2022-23366)

前言 CVE-2022-23366是一个影响HMS v1.0的SQL注入漏洞。该漏洞存在于patientlogin.php文件中,允许攻击者通过特定的SQL注入来获取或修改数据库中的敏感信息。 具体来说,攻击者可以通过向patientlogin.php发送恶意构造的SQL语句来绕过身份验证&#xff…

Chiasmodon:一款针对域名安全的公开资源情报OSINT工具

关于Chiasmodon Chiasmodon是一款针对域名安全的公开资源情报OSINT工具,该工具可以帮助广大研究人员从各种来源收集目标域名的相关信息,并根据域名、Google Play应用程序、电子邮件地址、IP地址、组织和URL等信息进行有针对性的数据收集。 该工具可以提…

语义分割和实例分割区别?

语义分割:将图像中的每个像素分配给其对应的语义类别,其主要针对于像素,或者说它是像素级别的图像分割方法。:语义分割的目的是为了从像素级别理解图像的内容,并为图像中的每个像素分配一个对象类。 实例分割&#xf…

Cesium版本升级webgl问题,glsl代码关键字修改

简介 Cesium 从1.102.0 开始,Cesium 默认使用 WebGL2 上下文。一些webgl特效代码在webgl1中支持,但是在版本升级后,运行会报各种glsl代码错误。现在有两种解决方案。详细办法描述如下所示。 1、修改配置使用WebGL1 地球初始化配置如下&…