一般来说,控制器的设计,分为控制框架的选取,跟参数的优化。自适应控制、预测控制、模糊控制等,跟PID一样,是控制算法(我习惯称为控制框架)。

  而粒子群、遗传算法(类似的还有蚁群算法、神经网络,还有机器学习、人工智能中的很多方法)是优化方法,本来跟控制没关系,只不过有时被拿来参数优化,本来就不是为控制器设计而发明的,只不过是在确定了控制框架之后,控制器的设计问题,转为一个优化问题。于是就用优化算法来解,问题是物理意义不明确,很难调出好效果,很多时候只是组合组合发论文,即使能用,也对模型的精度,以及优化指标的选取,要求很高。

  这些所谓智能算法,其实只是优化算法,原本跟控制无关,只不过用来优化参数。在很多基于模型的控制器设计优化中,关键在于模型的精度跟优化指标,优化方法反而不那么重要。遗传、遗群、模拟退火、粒子群,都是为了发论文而组合的。话说回来,调不好,到底是方法本身的限制,不能用在这个问题上,还是自己没调好,谁都不知道。但一般很少听说这些优化算法,或者最近兴起的机器学习方法如神经网络等,在实际控制中有较典型的应用的。

  其次,这些控制算法,都有实际的应用,但都不是用之天下而皆准。

  1.   像模糊控制、预测控制一般用于过程控制中的温度控制啥的。模型不太准确,噪声大,不能model的不确定性大;而控制要求更注重于稳态性能,比如variance较小。模糊控制在比如电饭煲、洗衣机什么的中有很多应用。
  2.   相比之下,预测控制(模型预测控制)的应用更广,特别是多入多出、有约束的,比如很多化工厂、发电厂什么的。很多国际上的大企业如壳牌都在用。更详细的说,一般底层用PID,处理单个plant动态的性能。PID上面用预测控制,把所有plants连起来考虑,同时考虑约束。预测控制更注重于整个系统的稳态性能
  3.   而自适应控制、最优控制什么的,更多的用于模型较精确的比如航天、卫星、机器人、无人机的运动控制,跟电机马达挂钩的。控制要求更注重于动态性能,比如给你一个指令,你跟上的速度怎么样啥的。自适应控制则在一些航天飞船等要求更高的场合中有应用。

  至于控制算法在电网中的应用,接触的不多,不敢说什么样的能用,什么样的不能用。企业用电侧优化控制,我也是一窍不通。但我刚开始学控制算法,也是看着这么多算法,理不清头绪。但我常寻找一些前辈,首先要在实际中摸爬滚打过的,同时有一定理论深度的,向他们取经。单纯懂理论的,往往钻入数学,控制的最多不过是matlab中的所谓plant。只懂工程的,则往往对理论中的一些好东西熟视无睹,而好的理论是磨刀不费砍柴工的。

  但如果你能提供更详细的背景资料,也许我能回答得有针对性。现在我只能泛泛回答,因为怕做出错误引导。

 
 
作者:小心假设
链接:https://www.zhihu.com/question/22020678/answer/24399118
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

控制算法的划分(自适应控制、预测控制、模糊控制等,PID等;蚁群算法、神经网络,还有机器学习、人工智能中的很多方法)的更多相关文章

  1. PID控制算法的C语言实现十 专家PID与模糊PID的C语言实现

    本节是PID控制算法的C语言实现系列的最后一节,前面8节中,已经分别从PID的实现到深入的过程进行了一个简要的讲解,从前面的讲解中不难看出,PID的控制思想非常简单,其主要问题点和难点在于比例.积分. ...

  2. PID控制及整定算法

    一.PID控制算法 PID是比例.积分.微分的简称,PID控制的难点不是编程,而是控制器的参数整定.参数整定的关键是正确地理解各参数的物理意义,PID 控制的原理可以用人对炉温的手动控制来理解.阅读本 ...

  3. 怎样加快master数据库的写操作?分表原则!将表水平划分!或者添加写数据库的集群

    1.怎样加快master数据库的写操作?分表原则!将表水平划分!减少表的锁定时间!!! 或者或者添加写数据库的集群!!!或者添加写数据库的集群!!! 2.既然分表了,就一定要注意分表的规则!要在代码层 ...

  4. 蚁群算法和简要matlab来源

    1 蚁群算法原理 从1991由意大利学者 M. Dorigo,V. Maniezzo 和 A. Colorni 通过模拟蚁群觅食行为提出了一种基于群体的模拟进化算法--蚁群优化.极大关注,蚁群算法的特 ...

  5. PID应用详解

    PID应用详解 阅读目录 1.PID介绍及原理2.常用四轴的两种PID算法讲解(单环PID.串级PID)3.常用PID算法的C语言实现5.常用的四轴飞行器PID算法 PID介绍及原理 PID介绍 在工 ...

  6. 基于改进人工蜂群算法的K均值聚类算法(附MATLAB版源代码)

    其实一直以来也没有准备在园子里发这样的文章,相对来说,算法改进放在园子里还是会稍稍显得格格不入.但是最近邮箱收到的几封邮件让我觉得有必要通过我的博客把过去做过的东西分享出去更给更多需要的人.从论文刊登 ...

  7. NLP&数据挖掘基础知识

    Basis(基础): SSE(Sum of Squared Error, 平方误差和) SAE(Sum of Absolute Error, 绝对误差和) SRE(Sum of Relative Er ...

  8. 十一个行为模式之模板方法模式(Template Method Pattern)

    定义: 定义一个操作中算法的框架,并且将一部分操作延迟到子类当中.使得子类可以不改变一个算法的结构即可重新定义算法步骤. 结构图: AbstractClass:抽象方法类,定义了一些基本操作,这些操作 ...

  9. C语言实现粒子群算法(PSO)一

    最近在温习C语言,看的书是<C primer Plus>,忽然想起来以前在参加数学建模的时候,用过的一些智能算法,比如遗传算法.粒子群算法.蚁群算法等等.当时是使用MATLAB来实现的,而 ...

随机推荐

  1. video视频控件

    <!-- 视频播放内容 --> <!-- autoplay准备就绪会自动播放 --> <!-- controls,要自定义得去掉这个 -->   <video ...

  2. Python之ini配置文件详解

    INI介绍 INI是英文"初始化"(initialization)的缩写,被用来对操作系统或特定程序初始化或进行参数设置.由节(section). 键(key).值(value)构 ...

  3. 使用windows自带linux子系统开发esp32

    步骤: 1.打开windows商店,搜索ubuntu,安装18.04版本. 2.控制面板 /程序和功能 /打开或关闭windows功能 3.关机重启 4.打开刚安装得ubuntu,设置用户名和密码. ...

  4. Chapter03 Java变量

    Chapter03 变量 目录 Chapter03 变量 3.1 为什么需要变量 3.1.1 一个程序就是一个世界 3.1.2 变量是程序的基本组成单位 3.1.3 简单原理图 3.2 变(变化)量( ...

  5. MySQL — DML语言

    DML 全称 Data Manipulation Language.数据操作语言,用来对数据库表中的数据进行增删改. 1.添加数据 插入一条数据 给指定字段插入数据:insert into 表名 (字 ...

  6. WPF优秀组件推荐之FreeSpire

    概述 Spire是一套可以轻松处理Word.Excel和PDF的商业组件,需要收费,但是他有一套对应的免费组件FreeSpire可以使用,免费组件在功能上有一些限制(比如:excel的sheet数量不 ...

  7. 4. 堪比JMeter的.Net压测工具 - Crank 进阶篇 - 认识wrk、wrk2

    目录 堪比JMeter的.Net压测工具 - Crank 入门篇 堪比JMeter的.Net压测工具 - Crank 进阶篇 - 认识yml 堪比JMeter的.Net压测工具 - Crank 进阶篇 ...

  8. laravel 7 H-ui模板ajax批删

    1,HTML页面写一个button按钮 <a href="javascript:;" onclick="deleteAll()" class=" ...

  9. vue 控制台错误

    控制台显示报错: Uncaught TypeError: WEBPACK_IMPORTED_MODULE_1_vuex.a.store is not a constructor 解决办法: 将new ...

  10. Java运算符 算术运算法

    运算符 算术运算法:+,-,*,/,%,++,– 复制运算符:= 关系运算符:>,<,>=,<=,==,!= instanceof 逻辑运算符:&&,||,! ...