热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

matlab实现炉温模糊控制器设计与仿真和PID控制器仿真比较详解

作业31.问题描述2.分析a.模糊控制器的结构输入为实际输出与理论输出之差e和偏差变化率de。输出为炉温u。模糊控制器为两输入一输出。b.定义输入、输出模糊集输入和输出均分为7个模

作业3

1.问题描述

《matlab实现炉温模糊控制器设计与仿真和PID控制器仿真比较详解》

《matlab实现炉温模糊控制器设计与仿真和PID控制器仿真比较详解》

2.分析

a.模糊控制器的结构

输入为实际输出与理论输出之差e和偏差变化率de。输出为炉温u。模糊控制器为两输入一输出。

b.定义输入、输出模糊集

输入和输出均分为7个模糊子集,均为{NB,NM,NS,ZO,PS,PM,PB}。e的论域为[-100 100],de的论域为[-55],u的论域为[-100 100]。

c.输入输出隶属函数

  NB和PB均采用gaussmf(高斯)隶属函数,其它均采用trimf(三角)隶属函数

d.建立模糊控制规则表(共有49条规则)

de

e

NB

NM

NS

ZO

PS

PM

PB

NB

NB

NB

NM

NM

NS

NS

ZO

NM

NB

NM

NM

NS

NS

ZO

PS

NS

NM

NM

NS

NS

ZO

PS

PS

ZO

NM

NS

NS

ZO

PS

PS

PM

PS

NS

NS

ZO

PS

PS

PM

PM

PM

NS

ZO

PS

PS

PM

PM

PB

PB

ZO

PS

PS

PM

PM

PB

PB

e.反模糊化

采用centroid面积重心法进行反模糊化。

3.建立Matlab模糊系统

a.打开FIS编辑器,(在Commond Window 输入fuzzy或在“应用程序”中点击“fuzzy logic designer”),建立双输入单输出模糊系统(edit/add variable/input),并根据分析的内容确定相应参数(名字在name框里键入,范围要双击对应输入输出,然后在range框键入)

 《matlab实现炉温模糊控制器设计与仿真和PID控制器仿真比较详解》

b.添加隶属度函数(隶属度函数中间范围较窄,两边较宽,以使误差较小时快速稳定)(双击输入或输出框后出现如下图,edit/add mfs,选择添加的个数即可)并设置相应参数

《matlab实现炉温模糊控制器设计与仿真和PID控制器仿真比较详解》

c.根据规则表编辑规则

 《matlab实现炉温模糊控制器设计与仿真和PID控制器仿真比较详解》

d.查看规则编辑器和曲面观测器(view/rules  view/surface)

《matlab实现炉温模糊控制器设计与仿真和PID控制器仿真比较详解》

  《matlab实现炉温模糊控制器设计与仿真和PID控制器仿真比较详解》          

e.保存并导入到workspace(file/export/to file  to workspace或者在命令行窗口键入:文件名=readfis(‘文件名.fis’),回车)

4.Matlab仿真

a.仿真结构图:

输入为终值为200的阶跃函数(saturation的范围及对应e,de,u的范围,fuzzy logic controller的参数为文件名)。如下图:

《matlab实现炉温模糊控制器设计与仿真和PID控制器仿真比较详解》

各参数配置(simulation/model configuration parameters)尤其是zero-crossing control,严重影响仿真速度甚至效

《matlab实现炉温模糊控制器设计与仿真和PID控制器仿真比较详解》 

《matlab实现炉温模糊控制器设计与仿真和PID控制器仿真比较详解》

b.仿真结果

《matlab实现炉温模糊控制器设计与仿真和PID控制器仿真比较详解》

全局图

《matlab实现炉温模糊控制器设计与仿真和PID控制器仿真比较详解》

                 局部放大图

c.后发现Saturation模块可去掉,仿真结果几乎相同。可见,一旦设定输入输出论域,模糊控制器的输入输出会自动约束到相应范围,如下图:

 《matlab实现炉温模糊控制器设计与仿真和PID控制器仿真比较详解》

d.仿真结果为:

《matlab实现炉温模糊控制器设计与仿真和PID控制器仿真比较详解》

全局图

《matlab实现炉温模糊控制器设计与仿真和PID控制器仿真比较详解》

局部放大图

e.结果分析

由图看出,150s时才趋于稳定,存在稳态误差,并在稳态值附近有细小震荡。这是因为设计的模糊控制器相当于PD控制器,PD控制器本身存在稳态误差,模糊控制属于离散控制,所以会有波动。

5.PID控制器

a.仿真结构图

不断调整PID各参数,发现P=1.2、I=0.01、D=1时效果较好,如下图所示:

《matlab实现炉温模糊控制器设计与仿真和PID控制器仿真比较详解》

b.仿真结果

《matlab实现炉温模糊控制器设计与仿真和PID控制器仿真比较详解》

全局图

《matlab实现炉温模糊控制器设计与仿真和PID控制器仿真比较详解》

局部放大图

e.结果分析

由图可知,PID控制器稳定速度很快,约5秒就稳定了,并且稳定后无波动。

6.比较分析:

    由运行结果可知,PID控制在速度上优于模糊控制,并且稳态无波动。PID控制器仿真稳定速度比模糊控制器快很多。这是因为常规PID 控制算法计算量小,实时性也好。模糊控制的计算量大,具有较大的惯性和滞后性。

 


推荐阅读
  • wpf+mvvm代码组织结构及实现方式
    本文介绍了wpf+mvvm代码组织结构的由来和实现方式。作者回顾了自己大学时期接触wpf开发和mvvm模式的经历,认为mvvm模式使得开发更加专注于业务且高效。与此同时,作者指出mvvm模式相较于mvc模式的优势。文章还提到了当没有mvvm时处理数据和UI交互的例子,以及前后端分离和组件化的概念。作者希望能够只关注原始数据结构,将数据交给UI自行改变,从而解放劳动力,避免加班。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • React项目中运用React技巧解决实际问题的总结
    本文总结了在React项目中如何运用React技巧解决一些实际问题,包括取消请求和页面卸载的关联,利用useEffect和AbortController等技术实现请求的取消。文章中的代码是简化后的例子,但思想是相通的。 ... [详细]
  • 本文介绍了在iOS开发中使用UITextField实现字符限制的方法,包括利用代理方法和使用BNTextField-Limit库的实现策略。通过这些方法,开发者可以方便地限制UITextField的字符个数和输入规则。 ... [详细]
  • 本文记录了在vue cli 3.x中移除console的一些采坑经验,通过使用uglifyjs-webpack-plugin插件,在vue.config.js中进行相关配置,包括设置minimizer、UglifyJsPlugin和compress等参数,最终成功移除了console。同时,还包括了一些可能出现的报错情况和解决方法。 ... [详细]
  • 欢乐的票圈重构之旅——RecyclerView的头尾布局增加
    项目重构的Git地址:https:github.comrazerdpFriendCircletreemain-dev项目同步更新的文集:http:www.jianshu.comno ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • Day2列表、字典、集合操作详解
    本文详细介绍了列表、字典、集合的操作方法,包括定义列表、访问列表元素、字符串操作、字典操作、集合操作、文件操作、字符编码与转码等内容。内容详实,适合初学者参考。 ... [详细]
  • 本文介绍了在wepy中运用小顺序页面受权的计划,包含了用户点击作废后的从新受权计划。 ... [详细]
  • MVC设计模式的介绍和演化过程
    本文介绍了MVC设计模式的基本概念和原理,以及在实际项目中的演化过程。通过分离视图、模型和控制器,实现了代码的解耦和重用,提高了项目的可维护性和可扩展性。详细讲解了分离视图、分离模型和分离控制器的具体步骤和规则,以及它们在项目中的应用。同时,还介绍了基础模型的封装和控制器的命名规则。该文章适合对MVC设计模式感兴趣的读者阅读和学习。 ... [详细]
  • 本文介绍了MVP架构模式及其在国庆技术博客中的应用。MVP架构模式是一种演变自MVC架构的新模式,其中View和Model之间的通信通过Presenter进行。相比MVC架构,MVP架构将交互逻辑放在Presenter内部,而View直接从Model中读取数据而不是通过Controller。本文还探讨了MVP架构在国庆技术博客中的具体应用。 ... [详细]
  • Todayatworksomeonetriedtoconvincemethat:今天在工作中有人试图说服我:{$obj->getTableInfo()}isfine ... [详细]
  • Asp.net Mvc Framework 七 (Filter及其执行顺序) 的应用示例
    本文介绍了在Asp.net Mvc中应用Filter功能进行登录判断、用户权限控制、输出缓存、防盗链、防蜘蛛、本地化设置等操作的示例,并解释了Filter的执行顺序。通过示例代码,详细说明了如何使用Filter来实现这些功能。 ... [详细]
  • 本文介绍了ASP.NET Core MVC的入门及基础使用教程,根据微软的文档学习,建议阅读英文文档以便更好理解,微软的工具化使用方便且开发速度快。通过vs2017新建项目,可以创建一个基础的ASP.NET网站,也可以实现动态网站开发。ASP.NET MVC框架及其工具简化了开发过程,包括建立业务的数据模型和控制器等步骤。 ... [详细]
  • 开发笔记:spring boot项目打成war包部署到服务器的步骤与注意事项
    本文介绍了将spring boot项目打成war包并部署到服务器的步骤与注意事项。通过本文的学习,读者可以了解到如何将spring boot项目打包成war包,并成功地部署到服务器上。 ... [详细]
author-avatar
嫣嫣细语dingdingjq
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有