MPC控制与强化学习控制的区别

控制问题的求解思路

1、问题建模(自动驾驶、机器控制、工业过程控制、电力系统优化、医疗健康等),明确控制约束(控制动作本身约束、内部外部状态安全约束、控制目标约束等),控制变量(在离散or连续or混合时间间隙中执行离散or连续or混合动作等)等等等
2、系统模拟,对于实际问题一般不直接上真机进行试验,因此要尽可能真实的模拟系统模型(构建系统动力学模型,可能会存在高阶非线性问题,甚至没有明确的物理模型,只有一些运行历史数据)
3、找控制策略求解,(可以是模型预测控制、经典PID控制、鲁棒控制、最优控制、伺服控制等,也可以是启发式算法机器学习算法等)

MPC控制

模型预测控制(Model Predictive Control)控制技术由两部分组成:系统模型用于预测未来状态,优化器用于基于未来状态求解最优控制。
需要程序内在的动态模型、过去的控制讯号、以及正对滚动预测域最佳目标函数,来计算最佳控制信号

强化学习控制

首先学习虚拟环境模型(即系统模型),并基于虚拟环境求解最优控制策略。

二者差异

1、 系统建模方法不同

MPC控制劣势:
(1) MPC控制主要基于人工动力学建模、严重依赖专家经验、建模耗时长、成本高
ps:是啥系统动力学模型?

系统动力学 System Dynamics,SD是利用存量、流量、内部反馈回路、表函数和时滞等信息来理解复杂系统随时间变化的非线性行为的一种方法。
是构建、理解和讨论复杂问题的一种方法论和数学建模技术,一般在工业过程中使用较多,
比如这张图:
在这里插入图片描述
https://wiki.swarma.org/index.php/%E6%96%87%E4%BB%B6:Adoption_SFD_ANI_s.gif

(2) 系统模型误差的大小直接决定了最终控制的性能,且难以自动更新减小误差

强化学习控制优势:
(1)主要基于数据驱动,无需动力学建模,可选择性的注入专家经验,建模耗时短、成本低
(2)虚拟环境模型可自然的随数据的积累而更新,贴近真实系统

2、 系统模拟能力不同

MPC控制劣势:
(1)大量采用了近似技术,不可避免的建模误差导致系统模型只能进行短期预测
(2)受限于凸优化技术,难以对多环节的复杂系统进行建模
强化学习控制优势:
(1)基于虚拟环境学习的数学理论突破,可进行数千步以上的长期预测
(2)基于深度神经网络模块的流程建模方式,可以对大至城市级的系统进行建模

3、控制策略能力不同

MPC控制劣势:
(1)基于系统模型和优化器进行实时求解,在线计算开销(滚动优化
(2)受限于凸优化技术,控制策略的代价函数不可随意设置
强化学习控制优势:
(1)得益于深度学习与强化学习的长足发展,具备高度的非线性和自适应能力,且神经网络推理计算开销小
(2)在虚拟环境中接收对应业务需求设计的奖励,可面向全局目标求解有全局约束的问题

ps1:近几年有提到强化学习中的模型预测控制概念,理解为model-based 的RL,在一些问题的性能上相对于model-free有所提升

《2022强化学习控制白皮书》 https://revive-algorithm.hk.ufileos.com/polixir-web/files/%E5%BC%BA%E5%8C%96%E5%AD%A6%E4%B9%A0%E6%8E%A7%E5%88%B6%E7%99%BD%E7%9A%AE%E4%B9%A6.pdf

### MPC强化学习的结合及其应用场景 #### 1. **MPC强化学习的核心区别** 模型预测控制(Model Predictive Control, MPC)是一种基于优化的方法,其核心在于利用系统的动态模型对未来的行为进行预测并优化当前决策[^2]。而强化学习(Reinforcement Learning, RL)则侧重于通过试错机制从环境中学习最佳行为策略[^4]。 尽管两者的出发点不同,但在实际应用中它们可以相互补充。例如,在某些场景下,MPC可以通过预定义的精确动力学模型提供短期规划能力,而RL可以在长期目标上表现出更强的学习能力自适应性[^3]。 --- #### 2. **MPCRL结合的优势** 当将MPCRL结合起来时,可以获得以下优势: - **数据效率提升**:通过引入概率模型预测控制(PMPC),能够显著降低环境交互的需求,从而提高数据利用率[^1]。 - **不确定性建模**:借助高斯过程(Gaussian Processes, GP)等工具,能够在存在噪声或不确定性的环境下更好地估计状态转移函数。 - **理论保障增强**:部分结合方案提供了关于收敛性稳定性的严格证明,增强了整体框架的信任度。 这些特性使得混合架构特别适合解决那些既需要快速响应又面临高度复杂变化的任务需求。 --- #### 3. **典型的应用领域** 以下是几个典型的MPCRL相结合的实际案例: ##### (a) 自动驾驶汽车导航 在自动驾驶车辆路径规划过程中,传统MPC负责生成局部轨迹以避开障碍物并遵循交通规则;此同时,全局范围内的目的地设定以及更复杂的路况判断交由经过充分训练后的神经网络完成——即采用深度强化学习技术来指导高层次的战略抉择[^2]。 ##### (b) 工业制造流程自动化 对于像发酵罐这样的连续生产装置而言,单纯依靠历史经验值调整输入参数往往难以达到理想效果。因此有学者提出了融合DDQN(Double Deep Q-Networks)同经典线性二次型调节器(LQR)-MP组合而成的新颖控制器设计方案用于改善产品质量的同时降低成本支出[^3]。 ##### (c) 机器人运动控制 无论是机械臂抓取物体还是双腿行走机器人的平衡维持,都需要兼顾速度精度及时效性等多个维度考量因素。此时如果仅依赖单一模式可能会遇到瓶颈限制,则可考虑把两者优点综合起来构建更加灵活高效的解决方案。 --- #### 4. **具体实现方式举例说明** 下面给出一段简单的伪代码展示如何在一个假设情景里联合运用这两种方法论来进行求解: ```python import gym from pypm import PMController from dqn_agent import DQNAgent env = gym.make('CartPole-v1') pm_controller = PMController(env.model) dqn_agent = DQNAgent(state_size=env.observation_space.shape[0], action_size=env.action_space.n) for episode in range(total_episodes): state = env.reset() while True: # 使用DQN获取初步动作建议 suggested_action = dqn_agent.act(state) # 将此动作传递给MPC作进一步精细化处理 final_action = pm_controller.refine(suggested_action, current_state=state) next_state, reward, done, _ = env.step(final_action) # 更新DQN的经验回放池 dqn_agent.remember(state, suggested_action, reward, next_state, done) if done: break state = next_state # 训练DQN网络 dqn_agent.train_replay_batch() ``` 上述例子展示了先让DQN探索可能的动作空间得到粗略方向后再交给MPC精调细节这样一个循环迭代过程[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值