一般来说,控制器的设计,分为控制框架的选取,跟参数的优化。自适应控制、预测控制、模糊控制等,跟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. PDF格式简单分析

    上周因需要编辑了下PDF,用了一两个试用软件,感觉文字版的PDF还是挺好编辑的.想要研究一下PDF格式. 0. 站在前辈的肩膀上 从前辈的文章和书籍了解到 PDF文件是一种文本和二进制混排的格式,二进 ...

  2. WPS:字母自动变大写的解决办法

    设置中:

  3. MySql绿色版的安装

    MySql绿色版的安装 1.下载 2.配置环境变量,执行命令 mysqld --initialize-insecure --user=mysql 会创建出data文件夹 3.创建my.ini文件 [c ...

  4. HTML 基础及超链接练习

    实验一:HTML 基础及超链接练习 实验目的: 熟悉 HTML 基础及超链接的使用 实验要求: 1.建立至少 3 个以上的网页: 2.实现任意两网页之间的跳转(建议做个导航菜单): 3.每个网页里面至 ...

  5. python检查是否有缺失值(有用)以及list,array合并

    df.isnull().any() 用来判断某列是否有缺失值 df.isnull().all() 用来判断某列是否全部为空值

  6. Docker——常用命令

    常用命令 docker version # 显示docker的版本信息 docker info # 显示docker的系统信息,包括镜像和容器的数量 docker 命令 --help # 帮助命令,中 ...

  7. 遇到REMOTE HOST IDENTIFICATION HAS CHANGED怎么办?

    今日遇到如下问题: 警告的大概意思就是,主机密钥发生变更,并提示安全风险(可能存在中间人攻击) 但是事实是,这是因为我重装系统之后遇到的问题.重装系统后,指纹当然会发生变化了...在Xshell实验中 ...

  8. (leetcode)链表反转-c语言实现

    反转一个单链表. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 使用迭代方法,代码 ...

  9. 配置Openfiler做ISCS实验

    在VMware workstation中安装openfiler(linux底层)   系统安装 选择redhat6,64bit   分配30G 2.   3.. 4.5.               ...

  10. C++设计模式 - 命令模式(Command)

    行为变化模式 在组件的构建过程中,组件行为的变化经常导致组件本身剧烈的变化."行为变化" 模式将组件的行为和组件本身进行解耦,从而支持组件行为的变化,实现两者之间的松耦合. 典型模 ...