高级分布式系统-第14讲 分布式控制经典理论

news2024/11/19 17:40:22

模糊控制

模糊控制是一种以模糊集合论、模糊语言变量以及模糊逻辑推理为数学基础的控制方法,它模拟人的思维,构造一种非线性控制,以满足复杂的不确定的过程控制的需要,属于智能控制范畴。

由于模糊控制是对人的思维方式和控制经验的模仿,所以在一定程度上可以认为模糊控制方法是一种实现了用计算机推理代替人脑思维的控制方法。模糊控制之所以可以模仿人的思维和经验,是因为人们在描述控制规则时大量的使用模糊概念。

模糊控制系统的组成

模糊控制系统通常由模糊控制器、输入输出接口、执行机构、测量装置和被控对象等五个部分组成,如下图所示。

模糊控制器的结构原理

模糊控制器主要包括输入量模糊化接口、知识库、推理机、输出清晰化接口四个部分,如下图所示。

模糊控制器的结构原理——模糊化接口

模糊控制器的结构原理——知识库

知识库= 数据库+规则库

数据库:存放所有输入输出变量的全部模糊子集的隶属度。

如果论域为连续域,则存放相应的隶属函数

② 输入输出变量的测量数据集不属于数据库存放内容。

③ 向推理机提供数据。

规则库:存放全部的模糊控制规则。

① 模糊控制器规则基于专家知识或手动操作经验建立,是按人直觉推理的一种语言表示形式。

② 向推理机提供控制规则。

模糊控制器的结构原理——推理机

模糊推理:针对不同的模糊规则,利用模糊关系,通过模糊变换,求得模糊控制量。例如针对常见的三种形式:

模糊控制器的结构原理——清晰化接口

得到模糊控制量后,还必须将其转换为精确量。常用的清晰化方法有以下2种:

(1)最大隶属度法

(2)加权平均法(重心法)

最大隶属度法

加权平均法(重心法)

模糊控制器设计的步骤

模糊控制例子:水位

以水位的模糊控制为例,如图所示。设有一个水箱,通过调节阀可向内注水和向外抽水。现在的控制任务设计一个模糊控制器,通过调节阀门将水位稳定在固定点附近。按照日常操作经验,可以得到基本的控制规则:

“若水位高于O点,则向外排水,差值越大,排水越快”;

“若水位低于O点,则向内注水,差值越大,注水越快”。

下面我们分步骤看模糊控制系统的工作原理

确定观测量和控制量

将偏差 e 分为五级(模糊语言集):负大(NB),负小(NS),零(O),正小(PS),正大(PB)。根据偏差 e 的变化范围分为七个等级(输入论域):-3, -2, -1, 0, +1,+2, +3。得到水位变化模糊表,如下表所示:

控制量 u 为调节阀门开度的变化。将其分为五级(模糊语言集):负大(NB),负小(NS),零(O),正小(PS),正大(PB)。并根据u 的变化范围分为九个等级(输出论域):-4, -3, -2, -1, 0, 1, 2, 3, 4 。得到控制量模糊划分表如下表:

模糊规则的描述

根据日常的经验,设计以下5条模糊规则,并用“ if A then B ” 形式来描述

(1) “若 e 负大,则 u 负大” if e=NB then u=NB

(2) “若 e 负小,则 u 负小” if e=NS then u=NS

(3) “若 e 为 0, 则 u 为0” if e=O then u=O

(4) “若 e 正小,则 u 正小” if e=PS then u=PS

(5) “若 e 正大,则 u 正大” if e=PB then u=PB

根据上述经验规则,可得模糊控制表如下所示:

于是由以上五个模糊矩阵求并集(即隶属函数最大值),得模糊关系矩阵为:

模糊决策

模糊控制器的输出为误差向量和已确立模糊关系的合成:例如当误差 e 为NB时,即 时,控制器输出为

控制量的反模糊化

模糊控制的改进

模糊控制与PID控制的结合

双模控制

双模控制器由模糊控制器和PI控制器并联组成。控制开关在系统误差较大时接通模糊控制器,来克服不确定性因素的影响;在系统误差较小时接通PI控制器来消除稳态误差

串联控制

并联控制

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

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

相关文章

yarn和npm修改源

前提:由于npm,yarn默认镜像源,访问很慢,需要切换到国内的镜像源 npm (1)查看npm源的当前地址 npm config get registry (2)设置淘宝镜像 npm config set registry https://reg…

《C++大学教程》4.25星号正方形

题目: //while循环实现int main() {int n;cout << "请输入边长&#xff1a;";cin >> n;int i 1; while (i < n){ // 控制行数int j 1;while (j < n){ // 控制列数if (i 1 || i n || j 1 || j n){cout << "*";}else{cout <…

python解决求最短路径、最短时间问题

对于一个求最短路径的经常遇到的问题&#xff0c;对于从某一个节点到其余全部节点所需要的最短时间的问题&#xff0c;可以使用广度优先搜索算法的思路来进行解决&#xff0c;这是一个广度优先搜索算法在二维空间的应用。 问题描述为给定一个节点总数为N和一个列表list&#x…

代码随想录 Leetcode454. 四数相加 II

题目&#xff1a; 代码 (首刷看解析 2024年1月15日&#xff09;&#xff1a; class Solution { public:int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3, vector<int>& nums4) {int n nums1.size();u…

浙江宁波象山县福利院部署清雷科技数字医养解决方案

“通过前台触屏电脑一体机&#xff0c;可以实时查看每位长者的生命体征情况&#xff0c;包括呼吸、心率、在离床状态、睡眠质量报告等&#xff0c;对呼吸异常、跌倒风险异常的长者还会特别标注提醒&#xff0c;不仅提高了照护人员的工作效率&#xff0c;还提升了对长者的安全保…

2719. 统计整数数目

给你两个数字字符串 num1 和 num2 &#xff0c;以及两个整数 max_sum 和 min_sum 。如果一个整数 x 满足以下条件&#xff0c;我们称它是一个好整数&#xff1a; num1 < x < num2min_sum < digit_sum(x) < max_sum. 请你返回好整数的数目。答案可能很大&#xff…

C语言关于指针函数可变参数的使用方法和打印相应数据

通过使用四个函数来实现 指针函数的可变参数操作&#xff1b; 四个函数分别为&#xff1a; #include <stdarg.h>va_list ap; //初始化 参数列表指针 va_start(ap, count); //将ap指针指向第一个参数COUNT 这个是必须存在的 否则无法定位到后面的参数 va_arg(a…

arrow,一个神奇的 Python 库!

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 大家好&#xff0c;今天为大家分享一个神奇的 Python 库 - arrow。 Github地址&#xff1a;https://github.com/arrow-py/arrow 日期和时间处理是许多应用程序中的常见任务&#xff0c;但在 Python 中&#xf…

[Python进阶] Python操作MySQL数据库:pymysql

7.7 操作MySQL数据库&#xff1a;pymysql 7.7.1 准备工作(创建mysql数据库) PHPStudy介绍&#xff1a; phpstudy是一款非常有用的PHP开发工具&#xff0c;旨在帮助开发者更加便捷地进行PHP程序的开发与调试。它提供了一个友好的图形用户界面&#xff0c;使得用户能够方便地进…

Unity 编辑器篇|(五)编辑器拓展GUILayout类 (全面总结 | 建议收藏)

目录 1. 前言2. 参数3. 功能3.1 按钮&#xff1a;Button、RepeatButton3.2 文本&#xff1a;Label、TextArea、TextField、PasswordField3.3 工具栏&#xff1a;Toolbar3.4 切换框&#xff1a;Toggle3.5 滚动条&#xff1a;HorizontalScroll 、VerticalScroll3.6 滑条&#xff…

5G工业路由器专业版(视频监控专用5G路由器)

​大家好,今天给大家推荐一款强大的5G工业级路由器——SR510 5G工业级路由器系列产品。这款路由器集4G/5G网络、虚拟专网等多种技术于一体,提供稳定的工业级网络解决方案,非常适合部署在需要高速传输、低延时的视频监控场景中。 x更多详情&#xff1a;&#xff08;key-iot.com…

pytorch12:GPU加速模型训练

目录 1、CPU与GPU2、数据迁移至GPU2.1 to函数使用方法 3、torch.cuda常用方法4、多GPU并行运算4.1 torch.nn.DataParallel4.2 torch.distributed加速并行训练 5、gpu总结 往期回顾 pytorch01&#xff1a;概念、张量操作、线性回归与逻辑回归 pytorch02&#xff1a;数据读取Data…

.NET 反射的介绍和简单应用

什么是反射&#xff1f; 反射就是动态发现类型信息的能力。它帮助程序设计人员在程序运行时利用一些信息去动态地使用类型&#xff0c;这些信息在设计时是未知的&#xff0c;这种能力类似于后期绑定。反射还支持的更高级的行为&#xff0c;能在运行时动态创建新类型&#xff0…

云原生微服务之分布式锁框架 Redisson

&#x1f339;作者主页&#xff1a;青花锁 &#x1f339;简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java微服务架构公号作者&#x1f604; &#x1f339;简历模板、学习资料、面试题库、技术互助 &#x1f339;文末获取联系方式 &#x1f4dd; 系列专栏目录 [Java项目…

倒F天线设计经验分享

一、IFA天线理论分析 为了改善&#xff29;&#xff2c;&#xff21;天线难以使用的缺点&#xff0c;在&#xff29;&#xff2c;&#xff21;天线的基础上再增加一个倒L结构&#xff0c;形成IFA天线&#xff0c;此种天线体积小、易于匹配并具有双极化的特点&#xff0c;而在蓝…

「JavaSE」类和对象2

&#x1f387;个人主页&#xff1a;Ice_Sugar_7 &#x1f387;所属专栏&#xff1a;快来卷Java啦 &#x1f387;欢迎点赞收藏加关注哦&#xff01; 类和对象2 &#x1f349;匿名对象&#x1f349;关键字static&#x1f34c;static修饰成员变量&#x1f34c;static修饰成员方法&…

springboot项目创建及采用本地tomcat打包发布

springboot项目发布 maven使用 解压maven安装包 修改配置文件settings.xml 更改镜像(使用maven添加依赖时&#xff0c;选择下载的地址&#xff0c;百度云已提供) <mirror><id>nexus-aliyun</id><mirrorOf>*</mirrorOf><name>Nexus aliyu…

天津Java开发培训哪家好?选Java培训班要考虑

在当今社会&#xff0c;Java语言在软件开发领域具有举足轻重的地位&#xff0c;Java是一门面向对象编程语言&#xff0c;Java语言集合了C的优点&#xff0c;丢弃了缺点&#xff0c;所以Java语言表现的功能强大而简单易用&#xff0c;已经得到越来越多的应届毕业生和职场新人的认…

Vue Axios——前端技术栈

文章目录 基本介绍Vue是什么&#xff1f; MVVMVue的使用快速入门注意事项和使用细节 Vue 数据绑定机制分析数据单向渲染注意事项和细节 双向数据绑定事件绑定示例&#xff1a;注意事项和使用细节课后作业1课后作业2 修饰符示例 条件渲染/控制: v-if v-showv-if VS v-show课后作…

ART-Adversarial Robustness Toolbox检测AI模型及对抗攻击的工具

一、工具简介 Adversarial Robustness Toolbox 是 IBM 研究团队开源的用于检测模型及对抗攻击的工具箱&#xff0c;为开发人员加强 AI模型被误导的防御性&#xff0c;让 AI 系统变得更加安全&#xff0c;ART支持所有流行的机器学习框架 &#xff08;TensorFlow&#xff0c;Ker…