控制算法的划分(自适应控制、预测控制、模糊控制等,PID等;蚁群算法、神经网络,还有机器学习、人工智能中的很多方法)
一般来说,控制器的设计,分为控制框架的选取,跟参数的优化。自适应控制、预测控制、模糊控制等,跟PID一样,是控制算法(我习惯称为控制框架)。
而粒子群、遗传算法(类似的还有蚁群算法、神经网络,还有机器学习、人工智能中的很多方法)是优化方法,本来跟控制没关系,只不过有时被拿来参数优化,本来就不是为控制器设计而发明的,只不过是在确定了控制框架之后,控制器的设计问题,转为一个优化问题。于是就用优化算法来解,问题是物理意义不明确,很难调出好效果,很多时候只是组合组合发论文,即使能用,也对模型的精度,以及优化指标的选取,要求很高。
这些所谓智能算法,其实只是优化算法,原本跟控制无关,只不过用来优化参数。在很多基于模型的控制器设计优化中,关键在于模型的精度跟优化指标,优化方法反而不那么重要。遗传、遗群、模拟退火、粒子群,都是为了发论文而组合的。话说回来,调不好,到底是方法本身的限制,不能用在这个问题上,还是自己没调好,谁都不知道。但一般很少听说这些优化算法,或者最近兴起的机器学习方法如神经网络等,在实际控制中有较典型的应用的。
其次,这些控制算法,都有实际的应用,但都不是用之天下而皆准。
- 像模糊控制、预测控制一般用于过程控制中的温度控制啥的。模型不太准确,噪声大,不能model的不确定性大;而控制要求更注重于稳态性能,比如variance较小。模糊控制在比如电饭煲、洗衣机什么的中有很多应用。
- 相比之下,预测控制(模型预测控制)的应用更广,特别是多入多出、有约束的,比如很多化工厂、发电厂什么的。很多国际上的大企业如壳牌都在用。更详细的说,一般底层用PID,处理单个plant动态的性能。PID上面用预测控制,把所有plants连起来考虑,同时考虑约束。预测控制更注重于整个系统的稳态性能。
- 而自适应控制、最优控制什么的,更多的用于模型较精确的比如航天、卫星、机器人、无人机的运动控制,跟电机马达挂钩的。控制要求更注重于动态性能,比如给你一个指令,你跟上的速度怎么样啥的。自适应控制则在一些航天飞船等要求更高的场合中有应用。
至于控制算法在电网中的应用,接触的不多,不敢说什么样的能用,什么样的不能用。企业用电侧优化控制,我也是一窍不通。但我刚开始学控制算法,也是看着这么多算法,理不清头绪。但我常寻找一些前辈,首先要在实际中摸爬滚打过的,同时有一定理论深度的,向他们取经。单纯懂理论的,往往钻入数学,控制的最多不过是matlab中的所谓plant。只懂工程的,则往往对理论中的一些好东西熟视无睹,而好的理论是磨刀不费砍柴工的。
但如果你能提供更详细的背景资料,也许我能回答得有针对性。现在我只能泛泛回答,因为怕做出错误引导。
链接:https://www.zhihu.com/question/22020678/answer/24399118
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
控制算法的划分(自适应控制、预测控制、模糊控制等,PID等;蚁群算法、神经网络,还有机器学习、人工智能中的很多方法)的更多相关文章
- PID控制算法的C语言实现十 专家PID与模糊PID的C语言实现
本节是PID控制算法的C语言实现系列的最后一节,前面8节中,已经分别从PID的实现到深入的过程进行了一个简要的讲解,从前面的讲解中不难看出,PID的控制思想非常简单,其主要问题点和难点在于比例.积分. ...
- PID控制及整定算法
一.PID控制算法 PID是比例.积分.微分的简称,PID控制的难点不是编程,而是控制器的参数整定.参数整定的关键是正确地理解各参数的物理意义,PID 控制的原理可以用人对炉温的手动控制来理解.阅读本 ...
- 怎样加快master数据库的写操作?分表原则!将表水平划分!或者添加写数据库的集群
1.怎样加快master数据库的写操作?分表原则!将表水平划分!减少表的锁定时间!!! 或者或者添加写数据库的集群!!!或者添加写数据库的集群!!! 2.既然分表了,就一定要注意分表的规则!要在代码层 ...
- 蚁群算法和简要matlab来源
1 蚁群算法原理 从1991由意大利学者 M. Dorigo,V. Maniezzo 和 A. Colorni 通过模拟蚁群觅食行为提出了一种基于群体的模拟进化算法--蚁群优化.极大关注,蚁群算法的特 ...
- PID应用详解
PID应用详解 阅读目录 1.PID介绍及原理2.常用四轴的两种PID算法讲解(单环PID.串级PID)3.常用PID算法的C语言实现5.常用的四轴飞行器PID算法 PID介绍及原理 PID介绍 在工 ...
- 基于改进人工蜂群算法的K均值聚类算法(附MATLAB版源代码)
其实一直以来也没有准备在园子里发这样的文章,相对来说,算法改进放在园子里还是会稍稍显得格格不入.但是最近邮箱收到的几封邮件让我觉得有必要通过我的博客把过去做过的东西分享出去更给更多需要的人.从论文刊登 ...
- NLP&数据挖掘基础知识
Basis(基础): SSE(Sum of Squared Error, 平方误差和) SAE(Sum of Absolute Error, 绝对误差和) SRE(Sum of Relative Er ...
- 十一个行为模式之模板方法模式(Template Method Pattern)
定义: 定义一个操作中算法的框架,并且将一部分操作延迟到子类当中.使得子类可以不改变一个算法的结构即可重新定义算法步骤. 结构图: AbstractClass:抽象方法类,定义了一些基本操作,这些操作 ...
- C语言实现粒子群算法(PSO)一
最近在温习C语言,看的书是<C primer Plus>,忽然想起来以前在参加数学建模的时候,用过的一些智能算法,比如遗传算法.粒子群算法.蚁群算法等等.当时是使用MATLAB来实现的,而 ...
随机推荐
- 使用Filter过滤器,解决中文乱码问题
首先是建立一个filter.java文件,注意implements的是Filter的servlet的那个包: public class filter11 implements Filter { @Ov ...
- Maven打包异常:Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.2:war
出现下面异常,因为默认web.xml在 src/main/webapp 下所以才出现找不到的异常. 我的项目结构为 解决办法①: 在pom.xml里面制定 web位置即可 //先确保打包方式为w ...
- 解决 “Project ERROR: Unknown module(s) in QT: webengine”以及“Your MaintenanceTool appears to be older than 3.0.2. .” 的办法
1.环境 Windows10,Qt5.8.0 2.问题描述 需要使用到WebEngineView组件,在工程.pro中增加webengine后,Qt Creator应用程序输出中打印了 Project ...
- js-表格
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- GO语言基础(结构+语法+类型+变量)
GO语言基础(结构+语法+类型+变量) Go语言结构 Go语言语法 Go语言类型 Go语言变量 Go 语言结构 Go 语言的基础组成有以下几个部分: 包声明 引入包 函数 变量 语句 &a ...
- python检查是否有缺失值(有用)以及list,array合并
df.isnull().any() 用来判断某列是否有缺失值 df.isnull().all() 用来判断某列是否全部为空值
- LGP6240题解
题解 我们可以发现,背包有结合律. 也就是先加入元素 \(a\) 再加入元素 \(b\) 和 \(c\),与先加入元素 \(a\) 后再与只有元素 \(b\) 和元素 \(c\) 的背包合并,得到的背 ...
- 翻译 | Kubernetes 将改变数据库的管理方式
作者:Álvaro Hernández 当技术决策人考虑在 Kubernetes 上部署数据库时,面临的第一个问题就是:"Kubernetes 有应对有状态服务的能力吗?"多年来的 ...
- XML解析与文件存取
using System; using System.IO; using System.Text; using System.Xml; namespace XMLDemo { class Progra ...
- wms、wmts、wfs等地图服务区别
OGC OGC 全称是开放地理空间信息联盟(Open Geospatial Consortium),是一个非盈利的国际标准组织,它制定了数据和服务的一系列标准,GIS厂商按照这个标准进行开发可 ...