机械荟萃山庄

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 491|回复: 12

最优化与最优控制交流

[复制链接]

2

主题

25

帖子

107

积分

注册会员

Rank: 2

积分
107
发表于 前天 23:17 | 显示全部楼层 |阅读模式
  本人所从事的工作与最优控制强相关,即在带约束下寻找,使代价函数能够取得最小的控制序列。如果不考虑带约束问题,问题也比较好求解,就是LQR问题。

  咱们论坛从事的方向有很多,有做控制的大侠,可以能多交流交流,俺也想多学习学习。

  在此开一贴,想和大侠们探讨技术,当然是原理层面的,因为不同行业的被控对象有较大区别,不深入一个行业,未必对该行业的被控对象有较深和较细的理解和了解。

  说说俺对最优控制的理解,其本质就是在一个可行域下,求解一个最小值。其中涉及到以下几点:

  1.状态方程的建立。建立状态方程,就需要你对该被控对象有较为清晰的了解,这就和行业有关。

    但在某些情况下,你无法获取到状态方程中你需要的系统参数,这时候就需要进行系统参数的变数,有时候你的状态变量也没法被直接测量,这时候就需要涉及到状态量的估计,同时你构建出的状态方程也非线性的,而这时候就需要将其线性化。

    因此看起来简单的状态方程的建立,涉及到了:1.对被控对象的深刻了解 2.系统参数的辨识 3.状态量的估计 4.状态方程的线性化。

2.cost_function的设立。这部分看你如何设计你的系统,一般来说:舒适性、安全性、效率性等几个维度。

3.最优化问题的求解。这里可以大致区分为带约束问题和不带约束问题。不带约束问题,在于你如何看待这个问题,是将其作为一个最优控制问题,还是一个最优化问题(俺觉得这两个本质没区别,但形式还是有点略微不同)。

   如果是最优控制问题,可以有两大方向。一种是由庞特里亚金最小值原理来求,即构造出新的拉格朗日函数,将状态方程看成是个约束加入到cost_function里,转为无约束问题来求。

   另一种就是由贝尔曼方程来进行逆向求解,状态方程还是状态转移方程,通过贝尔曼原理来进行求解。

   如果是最优化问题,那么状态方程可以看作是等式约束,构造拉格朗日法函数来进行求解,或者是增广拉格朗日函数来进行求解。

   如果是有约束问题的最优控制,就需要将其转化为无约束问题,其中的流行方法有罚函数、增广拉格朗日方法等。

   最优化问题的求解方法有很多,目前俺的理解是约束问题,都是倾向于转化到无约束问题,无约束问题的最优化,就是梯度下降,牛顿法,拟牛顿法等。

   如LQR的ricatti方程就是贝尔曼方程求解,mpc的qp问题求解器如osqp使用是admm方法(本质在俺看来是增广拉格朗日)。


  以上是俺对最优化和最优控制的理解,有大侠感兴趣的,可以交流下,上面所写只是个人对最优化和最优控制的浅薄理解,可能存在错误和不深刻,希望大侠们可以多交流,谢谢。












  



回复

使用道具 举报

1万

主题

5万

帖子

28万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
282996
发表于 昨天 00:07 | 显示全部楼层
我主要玩工业控制!与你的东西也许稍有偏差!我针对一个目标,比如压力、温度这些具体目标值,想办法使其“框在”要求的区域,比如250度基准值,正负偏差一度,利用多关联函数,建立相关性解析,比如利用前馈算法!赌一个目标点!

同时我还玩工艺节奏计算!就是一个复杂生产线的节拍,采用什么方式提高节拍!

再就是无线传输一些特定数据!对方强干扰!解跳频模式!他没办法全频段最大功率的,他在想办法追踪我!我想办法逃脱追踪,哈,

还有一些东西,可以逐步聊,你最好有个具体项目目标!就是你使什么类型参数最优化,比如我说的温度控制,我现在有300度,正负一度的精度能力,当然这个模型非常复杂的,但可以谈原理,大的轮廓都能聊,不涉及具体程序,

许多矢量控制也是大致我说的,需要感知一种趋势,把趋势汇总,再在严格数学定义下描述一个曲线,怎么纠正误差,就用到一些你谈的数学方式,前提就是有具体目标

当然,纯理论的也能聊,你也许有些东西不涉及具体问题,纯粹数学解也可以聊,比如解算陀螺仪,就是数学的各种变换啊!

我还玩水下自航器!需要连续解航线,周围潜在风险,与水面通讯等等,也是寻求一个最优化的解!
数学解是为了应用!

不知道你读过钱先生的控制论没有?那个经典书籍可以读一下,
回复 支持 反对

使用道具 举报

发表于 昨天 09:57 | 显示全部楼层
本帖最后由 疯子在雨中咆哮 于 2025-7-30 10:10 编辑

楼主基本涵盖了优化控制的典型内容。忘得差不多,瞎扯两句。跟一般的数值优化求极值不同,这里面带时间,对过程优化,也就是对常微分优化,这是我觉得最精彩的部分。如你所说,构建微分模型,非线性到线性泰勒展开,构建状态微分方程,求平衡态,造观测器。最后回归到原始的经典问题,最速降线,也就是找能量最小值,也就是求花费方程的极值。我就记着拉格朗日构建另一个微分方程,一个顺着时间推,一个逆着时间远道而来,梯度下降,迭代,就得到了每个步长的控制器输入,也就是8爷说的曲线,从而达到设定目标的最优解。对于离散的问题,策略最优解,还有动态编程,强化学习的方法。我档次还不够,没实际应用过,模型复杂,状态量太多,建出来跑一下合个大概就不错了,优化就不要提了。

点评

迭代求解,需要考虑控制器的运算资源,以及求解过程中数值是否合理,比如是否正定等。所以对于迭代求解,需要提供比较好的粗解来加快求解  发表于 昨天 21:12
回复 支持 反对

使用道具 举报

14

主题

182

帖子

2494

积分

金牌会员

Rank: 6Rank: 6

积分
2494
发表于 昨天 10:39 | 显示全部楼层
最优化现在都完成数学游戏了

点评

是的,一切都是数学  发表于 昨天 21:09
回复 支持 反对

使用道具 举报

发表于 昨天 12:12 | 显示全部楼层
大侠找个例子具体说说?
回复 支持 反对

使用道具 举报

4

主题

1214

帖子

1万

积分

版主

Rank: 7Rank: 7Rank: 7

积分
15499
发表于 昨天 12:21 | 显示全部楼层
说个结论,这些东西写文章吹牛逼挺好,实战,基本都得死,就是所谓的设计得了做不了。那些数学工具,都有成熟的码,会用就行,但会用会成为问题,问题在这里。你把Matelabel runtime装好,玩明白就行。

点评

挺奇怪的,在下没遇到过啥卡住的问题。也许是运气比较好吧。倒是围观过不少没成的项目。  发表于 昨天 22:15
螺旋侠,可以谈谈您实际中遇到的问题。比如您提到的“实战,基本都得死”,可以具体谈谈。  发表于 昨天 20:52
螺旋大侠,这些是原理性的东西,源码有很多,但如果不去深入了解其背后的原理,上来就用也会一知半解的。实际中的运用也离不开原理本身  发表于 昨天 20:50
哈,经历过实战!  发表于 昨天 12:32
回复 支持 反对

使用道具 举报

2

主题

25

帖子

107

积分

注册会员

Rank: 2

积分
107
 楼主| 发表于 昨天 20:49 | 显示全部楼层
2266998 发表于 2025-7-30 00:07
我主要玩工业控制!与你的东西也许稍有偏差!我针对一个目标,比如压力、温度这些具体目标值,想办法使其“ ...

八爷玩的太全面了!我目前从事的更是偏向应用层的控制,即应用层控制器+底层控制器,如要让一个系统相应的速度,底层控制器的接口为加减速度接口,应用层控制器下发相应的加减速度,底层控制器来通过电机或者液压机构来实现相应的加减速。所以我对更基础的被控对象如电机,液压系统这些的了解的比较少。

“针对一个目标,比如压力、温度这些具体目标值...,利用前馈算法赌一个目标点”。
控制目标是压力或温度,有一定的控制精度,同时建立系统的数学模型,能够将控制量直接解算出来,该量可以作为前馈值加在系统上,但只有前馈,没有反馈吗?那么您的这个系统对干扰如何处理呢?或者说是对一些未知的扰动。

钱先生的工程控制论还没读过。




回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|机械荟萃山庄 ( 辽ICP备16011317号-1 )

GMT+8, 2025-7-31 19:31 , Processed in 0.122363 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表