【强化学习算法与动态规划】【强化学习算法在优化和控制问题中的应用】根据性能和效率对强化学习控制器进行了比较,并与经典线性二次调节器(LQR)控制器进行了单独比较(Matlab代码实现)

    💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

 ⛳️赠与读者

👨‍💻做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。当哲学课上老师问你什么是科学,什么是电的时候,不要觉得这些问题搞笑。哲学是科学之母,哲学就是追究终极问题,寻找那些不言自明只有小孩子会问的但是你却回答不出来的问题。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能让人胸中升起一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它居然给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“躺平”上的尘埃吧。

     或许,雨过云收,神驰的天地更清朗.......🔎🔎🔎

💥1 概述

强化学习算法,如SARSA、Q学习、演员-评论者策略梯度和价值函数近似,已应用于稳定反向摆系统并实现最优控制。因此,强化学习控制器的概念已经建立。根据性能和效率对强化学习控制器进行了比较,并与经典线性二次调节器(LQR)控制器进行了单独比较。每个强化学习控制器都与一个摆动上升控制器集成在一起。一个虚拟开关根据相对于垂直平面的角偏差θ的值自动切换摆动上升控制器和强化学习控制器。

文献1:

强化学习算法在摆车问题中的比

摘要——随着系统变得复杂和固有非线性,设计最优控制器仍然具有挑战性。强化学习(RL)的主要优点在于其能够通过与环境的互动学习并提供最优控制策略。本文探讨了在没有先验动力学知识的情况下,利用强化学习控制基准摆车动态系统的应用。在此背景下,比较了时间差分、策略梯度演员-评论者和价值函数近似等强化学习算法与标准线性二次调节(LQR)解的表现。此外,我们提出了一种新的方法,将强化学习与摆动上升控制器相结合。  
关键词——摆车;时间差分;策略梯度演员-评论者;价值函数近似;LQR;摆动上升
文献2:

强化学习算法在优化和控制问题中的应用

**摘要**  
强化学习是机器学习的一个分支,受到行为主义心理学的启发,采用系统的方法研究人类和动物行为。它涉及代在环境中应如何行为以及采取何种行动,以最大化某种累积奖励的概念。学习可以基于几种形式的评估反馈。标准的监督学习方法需要一个由输入向量和相应期望输出向量组成的训练数据集,换句话说,它们需要一个监督系统。这些方法无法应用于期望输出未知的任务。可以使用各种强化学习算法来解决这些任务。如果期望输出不可用,则必须通过考虑系统输出对其交互环境的影响来间接评估系统的性能。强化学习方法可以在这种影响通过评估信号或强化的变化来测量时应用。此外,这些算法专注于在线性能,涉及在探索(未知领域)和利用(当前知识)之间找到平衡。

在机器学习中,环境通常被表述为马尔可夫决策过程(MDP)。MDP可以是离散时间或连续时间的随机过程,包括当前状态、策略(要采取的行动)、下一个状态、奖励和转移概率。MDP为建模决策提供了数学框架,适用于结果部分随机且部分受决策者控制的情况。MDP的核心问题是根据当前状态为代理(决策者)找到一个策略。MDP对于研究通过强化学习解决的广泛优化和控制问题非常有用。动态规划(DP)是强化学习的一个分支,指一组算法,这些算法可以在环境的完美模型作为MDP的情况下计算最优策略。动态规划算法最适合优化问题,因为这些算法的设计是为了检查先前解决的子问题,并结合它们的解决方案,以提供给定问题的最佳解决方案。然而,经典的DP算法在强化学习中的实用性有限,因为它们假设存在完美模型,并且计算成本很高。因此,动态规划算法不适合控制问题。

在复杂的非线性系统中,获得准确的植物模型是困难的。在这种情况下,可以应用无模型强化学习算法来实现最优控制。蒙特卡罗学习、时间差分学习、演员-评论者策略梯度方法是一些无模型强化学习算法的例子。虽然这些算法处理的是离散状态空间,但价值函数近似被应用于将强化学习算法扩展到连续状态空间。

在本报告中,我们通过解决一个优化问题和一个控制问题来探索各种强化学习算法。选择杰克的汽车租赁问题作为优化问题,并使用动态规划进行求解;选择摆杆平衡问题作为具有固有不稳定性的非线性控制问题,并使用上述所有离散时间和连续时间的无模型强化学习算法进行求解。我们比较了各种强化学习算法在控制问题上的结果和性能,并与经典控制技术进行了对比。

强化学习控制器与线性二次调节器(LQR)在优化控制中的性能与效率对比研究

摘要:本文聚焦强化学习算法与动态规划在优化控制问题中的应用,系统比较多种强化学习控制器的性能与效率,并与经典线性二次调节器(LQR)控制器进行单独对比。通过理论分析与案例研究,揭示不同控制器在处理复杂系统时的优势与局限,为实际工程中控制器的选择与优化提供理论依据和参考。

关键词:强化学习控制器;线性二次调节器(LQR);性能;效率;优化控制

一、引言

在现代工程与科学领域,优化和控制问题广泛存在于智能交通、机器人运动控制、电力系统调度等场景。传统的控制方法如线性二次调节器(LQR)基于精确的系统模型,在处理线性、确定性系统时表现良好,但面对非线性、不确定的复杂系统时存在局限性。强化学习算法通过智能体与环境的交互,以最大化长期累积奖励为目标进行学习,能够在模型未知的情况下实现有效控制;动态规划作为求解最优决策的经典方法,为强化学习提供了理论基础和算法框架。近年来,强化学习与动态规划的结合在优化和控制领域取得了显著进展,多种强化学习算法被应用于控制器设计。因此,对这些控制器进行性能和效率比较具有重要意义。

二、强化学习控制器与动态规划基础

2.1 强化学习基础

强化学习是一种机器学习范式,用于解决序列决策问题。其框架包含智能体、环境、状态、动作、奖励等要素。智能体在环境中感知状态,执行动作后,环境根据动作转移到新状态,并给予智能体相应奖励。智能体的目标是通过不断与环境交互,学习到最优策略,以最大化长期累积奖励,其核心问题包括策略评估、策略改进和值函数估计。强化学习使用不同的学习算法,如价值迭代、策略迭代、Q - learning、深度强化学习等,来学习最优策略或价值函数。

2.2 动态规划基础

动态规划基于贝尔曼方程,通过将复杂问题分解为一系列子问题,利用子问题的最优解逐步构建全局最优解。在强化学习中,动态规划常用于策略迭代和值迭代算法,以求解最优策略和最优值函数。例如,值迭代算法通过不断更新值函数,直到收敛到最优值函数,进而得到最优策略。其数学模型公式可以表示为:

三、强化学习控制器类型及特点

3.1 Q - 学习控制器

Q - 学习控制器通过迭代更新 Q 函数来学习最优策略。在机器人路径规划中,机器人作为智能体,将环境状态(如自身位置、障碍物分布)作为输入,执行不同动作(如前进、左转、右转)后,根据到达目标的情况获得奖励,通过不断学习,Q - 学习控制器可找到从起点到终点的最优路径。但该控制器在大规模状态 - 动作空间中,学习效率较低,收敛速度慢。

3.2 DQN 控制器

DQN 控制器将深度神经网络与 Q - 学习相结合,解决了传统 Q - 学习在处理高维状态空间时的存储和计算难题。在 Atari 游戏等复杂视觉任务中,DQN 能够自动提取图像特征,学习最优游戏策略。然而,DQN 存在训练不稳定、对超参数敏感等问题。

3.3 策略梯度控制器

策略梯度控制器直接对策略进行参数化,通过梯度上升的方式最大化期望奖励。在机器人运动控制中,策略梯度控制器可根据机器人的状态(如关节角度、速度)直接输出动作(如关节力矩),相较于基于值函数的方法,策略梯度方法能够更直接地优化策略,适用于连续动作空间。但该方法通常需要大量的样本进行训练,且训练过程可能出现震荡或收敛到局部最优解。

3.4 DDPG 控制器

DDPG 结合了策略梯度和 DQN 的思想,适用于连续动作空间的强化学习问题。在自动驾驶车辆的速度和转向控制中,DDPG 控制器能够根据车辆状态和周围环境信息,输出连续的动作(如油门开度、方向盘转角),实现稳定、高效的控制。不过,DDPG 的性能依赖于目标网络的设计和参数调整,且在复杂环境下可能出现学习困难。

四、强化学习控制器与 LQR 控制器的性能和效率比较

4.1 性能比较

4.1.1 控制精度

在非线性、不确定系统中,强化学习控制器通过学习能够适应系统的动态变化,实现较高的控制精度。例如,在机器人的柔性关节控制中,DDPG 控制器可以根据关节的实际运动情况动态调整控制策略,相比之下,LQR 控制器依赖精确的线性化模型,在处理非线性系统时控制精度会下降。但在简单的线性系统中,LQR 控制器能够基于精确模型计算出最优控制策略,控制精度较高。

4.1.2 鲁棒性

强化学习控制器在面对环境干扰和模型不确定性时具有较强的鲁棒性。以电力系统频率控制为例,Q - 学习控制器可以在负荷波动、新能源发电不确定性等情况下,通过不断学习调整控制策略,维持系统频率稳定;而 LQR 控制器在模型与实际系统存在偏差时,鲁棒性较差。

4.1.3 适应性

强化学习控制器能够在运行过程中不断学习和适应新的环境和任务。例如,在新的工业生产场景中,强化学习控制器可以通过与环境的交互,逐渐学习到最优的控制策略,而 LQR 控制器由于依赖精确模型,在新环境中适应性较差。

4.2 效率比较

4.2.1 计算复杂度

强化学习控制器在训练过程中通常需要大量的计算资源和时间。例如,策略梯度方法需要进行多次策略评估和梯度计算,在大规模状态 - 动作空间中计算复杂度极高;而 LQR 控制器基于系统的状态空间模型,通过求解代数 Riccati 方程得到最优控制策略,计算复杂度相对较低,适合实时控制场景。

4.2.2 数据需求

强化学习控制器需要大量的样本数据进行训练,以学习到有效的策略。如 DDPG 在训练自动驾驶模型时,需要收集海量的驾驶场景数据;LQR 控制器基于已知的系统模型,对数据的需求较少,仅需系统的参数信息。

4.2.3 收敛速度

不同的强化学习控制器收敛速度差异较大。Q - 学习在简单问题中收敛较快,但在复杂问题中可能需要大量的迭代次数;DQN 由于神经网络的训练复杂性,收敛速度较慢;相比之下,LQR 控制器在模型准确的情况下,能够快速得到最优解,收敛速度快。

五、案例分析

5.1 机器人手臂轨迹跟踪控制

在机器人手臂轨迹跟踪控制中,分别应用 Q - 学习控制器、DDPG 控制器和 LQR 控制器。实验结果显示,LQR 控制器在理想模型下能够实现较高精度的轨迹跟踪,但当存在机械摩擦、负载变化等干扰时,跟踪误差明显增大;Q - 学习控制器经过一定次数的学习后,能够适应干扰,保持较好的跟踪性能,但学习过程耗时较长;DDPG 控制器在连续动作空间的控制中表现出色,能够快速调整控制策略,实现高精度的轨迹跟踪,且对干扰具有较强的鲁棒性。

5.2 电力系统电压控制

在电力系统电压控制场景中,采用 DQN 控制器和 LQR 控制器进行对比。LQR 控制器在系统运行状态稳定、模型准确时,能够有效控制电压,但当系统出现故障或负荷突变时,电压控制效果变差;DQN 控制器通过学习系统的运行规律,能够在复杂工况下动态调整无功功率补偿设备的输出,维持电压稳定,展现出更强的适应性和鲁棒性,但训练过程需要大量的系统运行数据。

六、结论

本研究通过对强化学习控制器与 LQR 控制器的性能和效率比较发现,强化学习控制器在处理非线性、不确定系统时,具有更好的控制精度、鲁棒性和适应性,但存在计算复杂度高、数据需求大、收敛速度慢等问题;LQR 控制器在简单线性系统中,具有计算效率高、收敛速度快的优势,但对模型准确性依赖强,适应性较差。不同的强化学习控制器在性能和效率上也各有优劣,实际应用中需根据具体问题和需求选择合适的控制器。在未来的研究中,可以进一步探索如何结合强化学习和 LQR 控制器的优势,开发出更高效、更鲁棒的控制器,以满足复杂工程系统的控制需求。

📚2 运行结果

部分代码:

ALPHA = 0.4;             % Learning rate parameter
GAMMA = 0.999;           % Discount factor for future reinf
Q = zeros(NUM_BOXES,2);  % State-Action Values
action = [30 -30];
MAX_FAILURES = 1000;
MAX_STEPS = 150000;
epsilon = 0;
steps = 0;
failures = 0;
thetaPlot = 0;
xPlot = 0;
%Pendulum state initialization
theta = 0;
thetaDot = 0;
x = 0;
xDot = 0;
box = getBox4(theta,thetaDot,x,xDot);

while(steps<=MAX_STEPS && failures<+MAX_FAILURES)
    steps = steps + 1;
    
    % choose either explore or exploit
    if(rand>epsilon)       % exploit
        [~,actionMax] = max(Q(box,:));
        currentAction = action(actionMax);
    else                   % explore
        currentAction = datasample(action,1);
    end
    
    actionIndex = find(action == currentAction); % index of chosen action
    %Apply action to the simulated cart pole
    [thetaNext,thetaDotNext,thetaacc,xNext,xDotNext] = cart_pole2(currentAction,theta,thetaDot,x,xDot);
    %Get box of state space containing the resulting state
    thetaPlot(end + 1) = thetaNext;

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

🌈4 Matlab代码、文献

资料获取,更多粉丝福利,MATLAB|Simulink|Python资源获取

                                                           在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值