模糊控制算法实例matlab程序

news2024/11/23 10:04:21

参考文献《智能控制——刘金锟》
以水位的模糊控制为例。如图4一4所示,设有一个水箱,通过调节阀可向内注水和向外抽水。设计一个模糊控制器,通过调节阀门将水位稳定在固定点附近。按照日常的操作经验,可以得到基本的控制规则为:
在这里插入图片描述

“若水位高于0点,则向外排水,差值越大,排水越快”;“若水位低于0点,则向内注水,差值越大,注水越快”.
根据上述经验,可按下列步骤设计一维模糊控制器。

1 确定观测量和控制量
定义理想液位0点的水位为h0,实际测得的水位高度为h,选择液位差为
在这里插入图片描述

将当前水位对于h0点的偏差e作为观测量。

2 输入量和输出量的模糊化
将偏差分为5个模糊集:负大(NB),负小(NS),零(ZO),正小(PS),正大(PB)。将偏差e的变化分为7个等级,-3,-2,-1,0,+1,+2,+3,从而得到水位变化模糊表,见表4一1。
在这里插入图片描述

控制量为调节阀门开度的变化。将其分为5个模糊集:负大(NB),负小(NS),零(ZO),正小(PS),正大(PB)。将的变化分为9个等级:一4,一1,0,+1,+2,+3,+4,得到控制量模糊划分表,见表4一2。
在这里插入图片描述

3.模糊规则的描述
根据日常的经验,设计以下模糊规则:
(1)"若负大,则负大”;
(2)“若e负小,则负小”;
(3)“若e为零,则为零”;
(4)“若e正小,则正小”
(5)“若e正大,则正大”
其中,排水时为负,注水时为正。
将上述规则采用“'IF A THEN B”的形式来描述,则模糊规范表示为
(l)if e = NB Then u =NB
(2)if e = NS Then u =NS
(3)if e = ZO Then u =ZO
(4)if e = PS Then u =PS
(5)if e = PB Then u = PB
根据上述经验规则,可得模糊控制规则表,见表4一3。
在这里插入图片描述

4 求模糊关系
模糊控制规则是一个多条语句,它可以表示为U×V上的模糊子集,即模糊关系R为R=(NBe×NBu)U(NSe×NSu)U(ZOe×ZOu)U(PSe×PSu)U(PBe×PBu)。其中规则内的模糊集运算取交集,规则间的模糊集运算取并集,即
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
由以上可得:
在这里插入图片描述

5 模糊决策
模糊控制器的输出为误差向量和模糊关系的合成,即
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6 控制量的反模糊化
由模糊决策可知,当误差为负大时,实际液位远高于理想液位,e=NB,控制器的输出为一模糊向量,可表示为
在这里插入图片描述

如果按照“隶属度最大原则”进行反模糊化,选择控制量为u=-4,即阀门的开度应开大一些,加大排水量。如下图:
在这里插入图片描述

模糊控制响应表见4-4
在这里插入图片描述
7 matlab仿真结果
1)模型
在这里插入图片描述
2)输入隶属度
在这里插入图片描述
3)输出隶属度
在这里插入图片描述
4)控制系统
在这里插入图片描述
7 matlab程序


clear 
clc
close all;
a=newfis('fuzz-tank');%创建一个模糊推理系统(FIS)
%% 偏差参数
%水位变化e划分,NB:负大 NS:负小 Z:零 PS:正小 PB:正大
a=addvar(a,'input','e',[-3,3]);%向模糊推理系统中添加语言变量
a=addmf(a,'input',1,'NB','zmf',[-3,-1]); %Z形隶属函数
a=addmf(a,'input',1,'NS','trimf',[-3,-1,1]);%三角形隶属函数
a=addmf(a,'input',1,'Z','trimf',[-2,0,2]);
a=addmf(a,'input',1,'PS','trimf',[-1,1,3]);
a=addmf(a,'input',1,'PB','smf',[1,3]);%S形隶属函数
%% 控制参数
%控制量u变化划分,NB:负大 NS:负小 Z:零 PS:正小 PB:正大
a=addvar(a,'output','u',[-4,4]);
a=addmf(a,'output',1,'NB','zmf',[-4,-1]);
a=addmf(a,'output',1,'NS','trimf',[-4,-2,1]);
a=addmf(a,'output',1,'Z','trimf',[-2,0,2]);
a=addmf(a,'output',1,'PS','trimf',[-1,2,4]);
a=addmf(a,'output',1,'PB','smf',[1,4]);
%% 规则描述
%模糊规则
%若e负大,则u负大
%若e负小,则u负小
%若e为零,则u为零
%若e正小,则u正小
%若e正大,则u正大
rulelist=[
    1 1 1 1;
    2 2 1 1;
    3 3 1 1;
    4 4 1 1;
    5 5 1 1];
    。。。。。。。。略

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

TikTok营销策略 如何打造TikTok爆款视频?

最近,电商商家们总在问,如何打造出TikTok爆款视频,以吸引更多浏览量,刺激TikTok变现。这里不难发现,视频创作也只是一种TikTok营销方式,今天就来说说如何打造TikTok爆款视频。TikTok视频营销策略一——清晰…

模型案例推荐:电力大数据项目案例模型分享

电力行业大数据项目模型 电力高架线路巡检绝缘子缺陷智能检测 涉及关键技术: 语义分割 目标检测 图像增强 图像切分 主要工具:Python 技术大类:计算机视觉 主要业务问题: 随着我国经济的高速发展,国民用电量逐年增…

SpringCloud - Sleuth分布式请求链路跟踪

文章目录一.概述二.zipkin搭建三.Sleuth链路监控实现1. payment8001生产者修改2. Consumer80消费者修改3. 测试一.概述 在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的的服务节点调用来协同产生最后的请求结果,每一个前段请求都会…

【信息检索与数据挖掘】期末笔记(一)

文章目录什么是信息检索词项-文档矩阵倒排索引构建过程前三步最后一步布尔检索模型布尔查询的处理查询优化如何存储词典哈希表树有序检索模型对基本布尔操作的扩展短语查询和位置索引短语查询第一个解决方案第二个解决方案更快的索引表合并什么是信息检索 信息检索是从大规模非…

nuxt3:我们开始吧!

一、背景介绍 2022 年 11 月 16 日,全球最大的 Nuxt 会议 Nuxt Nation 2022 在线举行,并正式发布了 Nuxt.js 3.0 的第一个稳定版本。Nuxt 3 是基于 Vite、Vue3 和 Nitro 的 Nuxt 框架的现代重写,具有一流的 Typescript 支持,是两…

深入浅出的给大家分析下现在做抖音短视频还来得及吗?

2500字,需要一些耐心用心读完,让自己对于未来更清晰一些! 大家好,我是我赢助手短视频运营,专注于短视频运营和创作;今天给大家分享下现在还来得及做短视频吗?深入浅出的给大家分析下这个问题。…

加缪——人生到底有什么意义?生命的意义就是生命本身

核心问题:人生到底有什么意义?如果人生没有意义,那么人是否应该自杀? 如果不是,那么人要以什么样的态度活着? 目录 一、《局外人》 二、名言 三、「个人感悟」对活着意义的幡然醒悟 四、《西西弗神话》…

SpringBoot+Vue实现前后端分离的校园健康检测管理系统

文末获取源码 开发语言:Java 使用框架:spring boot 前端技术:JavaScript、Vue.js 、css3 开发工具:IDEA/MyEclipse/Eclipse、Visual Studio Code 数据库:MySQL 5.7/8.0 数据库管理工具:phpstudy/Navicat JD…

整合Druid数据源

1.数据库连接池简介 数据库连接池是个容器,负责分配、管理数据库连接(Connection)。它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个; 释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。…

如何构建 API 生态促进企业上下游合作

构建 API 生态是互联网趋势 技术变革推动API数量爆发式增长 互联网在这10多年里,已经经历了多次的技术变革: 2010年以前,还是比较传统的开发模式。单体架构,自己开发大部分的代码,只有少量边缘业务会使用开源的项目代…

二肽Ile-Ala,24787-73-3,H2N-IA-OH

Forms nanotubes as its retroanalog H-Ala-Ile-OH 形成纳米管作为它的反模拟h - ala - il - oh。 编号: 196850中文名称: 二肽Ile-Ala英文名: Ile-AlaCAS号: 24787-73-3单字母: H2N-IA-OH三字母: H2N-Ile-Ala-COOH氨基酸个数: 2分子式: C9H18N2O3平均分子量: 202.25精确分子量…

PyCharm安装教程

PyCharm安装教程第一阶段:安装python第二阶段:安装pycharm第三阶段:新建python项目安装包链接:链接:https://pan.baidu.com/s/1JIbdnhupYLVHK6Q_fzNCcw?pwddvzo 提取码:dvzo 第一阶段:安装pyt…

2022CTF培训(四)花指令字符串混淆入门

附件下载链接 花指令 花指令的介绍 花指令(JunkCode)指的是使用一些技巧将代码复杂化,使人难以阅读的技术。广义上花指令与代码混淆(ObfusedCode)同义,包括结构混淆、分支混淆、语句膨胀等等 狭义上指的主要是干扰反汇编解析的技术。 花指令的原理 …

Sentinel规则持久化到Nacos教程

环境: 1、sentinel版本:1.8.6,下载地址:https://github.com/alibaba/Sentinel/releases/tag/1.8.6 2、nacos版本:2.1.2,下载地址:https://github.com/alibaba/nacos/releases 3、JDK版本&#x…

欧洲航天局(ESA)< ESA WorldCover 10m 2020 > 介绍

欧洲航天局&#xff08;ESA&#xff09;< ESA WorldCover 10m 2020 > 产品基于 Sentinel-1 和 Sentinel-2 数据提供了一种新的全球地表覆盖产品&#xff0c;分辨率为 10 米&#xff0c;时间为 2020 年。 该产品是在欧空局世界覆盖项目 < ESA WorldCover Project >的…

1. 认识复杂度和简单排序算法

1. 认识复杂度和简单排序算法 常数时间的操作&#xff0c;一个操作如果和样本的数据量没有关系&#xff0c;每次都是固定时间内完成的操作&#xff0c;叫做常数操作。 例子: int a arr[i];时间复杂度为一个算法流程中&#xff0c;常数操作数量的一个指标。常用O(读作big O)来…

基于随机森林、svm、CNN机器学习的风控欺诈识别模型

在信息爆炸时代&#xff0c;“信用”已成为越来越重要的无形财产。 ”数据风控“的实际意义是用DT&#xff08;Data Technology&#xff09;识别欺诈&#xff0c;将欺诈防患于未然&#xff0c;然后净化信用体系。 最近我们被客户要求撰写关于风控欺诈识别模型的研究报告&#x…

JavaScript基础语法(输出语句)

JavaScript基础语法&#xff08;输出语句&#xff09; 1.书写规范 区分大小写&#xff1a;与 Java 一样&#xff0c;变量名、函数名以及其他一切东西都是区分大小写的 每行结尾的分号可有可无 如果一行上写多个语句时&#xff0c;必须加分号用来区分多个语句。 注释 单行注释…

C++【IO流】

文章目录一、C语言的输入和输出二、C中的IO流自动类型识别scanf和cin等输入&#xff0c;都是通过空格或者换行分隔开来的多行测试用例如何写输入三、文件流ifstream读取文件读取文件中不同类型的数据一、C语言的输入和输出 C语言中我们用到的最频繁的输入输出方式就是scanf ()…

【附源码】计算机毕业设计JAVA政府采购线上招投标平台

【附源码】计算机毕业设计JAVA政府采购线上招投标平台 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; JA…