基于DDPG强化学习的倒立摆小车平衡控制matlab性能仿真
1.引言
传统控制方法(如 PID、LQR)需依赖精确的系统动力学模型,且鲁棒性较差 —— 当摆长、质量等参数变化或存在外界扰动时,控制效果会显著下降。而深度强化学习(DRL)通过 “试错” 自主学习控制策略,无需预先推导动力学方程,且对系统扰动具有更强的适应性。其中,深度确定性策略梯度(Deep Deterministic Policy Gradient, DDPG) 算法是解决连续动作空间控制问题的经典方案,恰好匹配倒立摆小车 “小车加速度为连续值” 的动作需求,成为该场景的优选技术路径。
2.算法仿真效果演示



3.数据集格式或算法参数简介
% 定义Critic网络
% 构建Critic神经网络结构
StatePath = [
featureInputLayer(ObsInfo.Dimension(1), 'Name', 'ObsInput', 'Normalization', 'none')% 输入层,维度与观测空间一致,命名为'CriticInput'
fullyConnectedLayer(24, 'Name', 'ObsL1')% 第一个全连接层,24个神经元
reluLayer('Name', 'ObsReLU1')% ReLU激活函数层
fullyConnectedLayer(24, 'Name', 'ObsL2')% 输出层,1个神经元(输出状态价值)
];
% 设置 Critic 网络的学习参数(处理动作路径)
ActionPath = [
featureInputLayer(ActInfo.Dimension(1), 'Name', 'ActInput', 'Normalization', 'none') % 动作输入层,维度与动作空间一致,命名为'ActInput',不进行归一化
fullyConnectedLayer(24, 'Name', 'ActL1', 'BiasLearnRateFactor', 0)% 输出层,1个神经元(输出状态价值)
];
% 定义Critic网络的公共路径(状态和动作路径的融合部分)
CommonPath = [
additionLayer(2, 'Name', 'Add')% 加法层,融合状态和动作特征
reluLayer('Name', 'CommonReLU')% ReLU激活函数层
fullyConnectedLayer(1, 'Name', 'CriticOutput')% 输出层,1个神经元(输出状态-动作对的价值)
];
0Z_026m
4.算法涉及理论知识概要
DDPG是基于Actor-Critic框架的DRL算法,专为连续动作空间设计,其核心创新在于结合了 “确定性策略梯度(DPG)” 与 “经验回放(Experience Replay)”“目标网络(Target Network)”,解决了传统RL在连续动作场景下的采样效率低、训练不稳定问题。 4.1 Actor-Critic框架基础 DDPG包含两个核心网络: Actor网络:输入当前系统状态(如小车位置、摆角、小车速度、摆角速度),输出确定性动作(如小车的水平加速度),即策略函数 μ(s;θμ),其中 θμ 为 Actor 网络参数。其目标是学习一个最优策略,使长期累积奖励最大化。 Critic网络:输入当前状态s和Actor输出的动作a,输出该 “状态 - 动作对” 的价值估计(即未来累积奖励的期望),即Q函数Q(s,a;θQ),其中θQ为Critic网络参数。其目标是最小化价值估计与真实累积奖励的误差,为Actor提供策略更新的梯度方向。 4.2 经验回放(Experience Replay) 将智能体与环境交互产生的 “状态-动作-奖励-下一状态-终止标志” 五元组 (st,at,rt,st+1,dt) 存储到经验池D中(dt=1 表示状态 st 为终止态,否则为 0)。训练时从D中随机采样批量数据,打破样本间的时间相关性,避免训练过程中参数更新的震荡。

浙公网安备 33010602011771号