强化学习MATLAB代码实现

news/2024/5/18 23:06:20 标签: 强化学习, matlab

强化学习MATLAB代码实现

目录

  • 倒立摆代码实现


倒立摆代码实现

代码如下(MATLAB):

mdl = 'rlSimplePendulumModel';
open_system(mdl)
env = rlPredefinedEnv('SimplePendulumModel-Discrete');
env.ResetFcn = @(in)setVariable(in,'theta0',pi,'Workspace',mdl);
obsInfo = getObservationInfo(env);
actInfo = getActionInfo(env);
Ts = 0.05;
Tf = 20;
rng(0);
dnn = [
    featureInputLayer(3,'Normalization','none','Name','state')
    fullyConnectedLayer(24,'Name','CriticStateFC1')
    reluLayer('Name','CriticRelu1')
    fullyConnectedLayer(48,'Name','CriticStateFC2')
    reluLayer('Name','CriticCommonRelu')
    fullyConnectedLayer(3,'Name','output')];
figure;
plot(layerGraph(dnn));
criticOpts = rlRepresentationOptions('LearnRate',0.001,'GradientThreshold',1);
critic = rlQValueRepresentation(dnn,obsInfo,actInfo,'Observation',{'state'},criticOpts);
agentOptions = rlDQNAgentOptions(...
    'SampleTime',Ts,...
    'TargetSmoothFactor',1e-3,...
    'ExperienceBufferLength',3000,... 
    'UseDoubleDQN',false,...
    'DiscountFactor',0.9,...
    'MiniBatchSize',64);
agent = rlDQNAgent(critic,agentOptions);
trainingOptions = rlTrainingOptions(...
    'MaxEpisodes',1000,...
    'MaxStepsPerEpisode',500,...
    'ScoreAveragingWindowLength',5,...
    'Verbose',false,...
    'Plots','training-progress',...
    'StopTrainingCriteria','AverageReward',...
    'StopTrainingValue',-1100,...
    'SaveAgentCriteria','EpisodeReward',...
    'SaveAgentValue',-1100);
doTraining = false;

if doTraining
    trainingStats = train(agent,env,trainingOptions);
else
    load('SimulinkPendulumDQNMulti.mat','agent');
end
simOptions = rlSimulationOptions('MaxSteps',500);
experience = sim(env,agent,simOptions);

来自MATLAB帮助文档


http://www.niftyadmin.cn/n/563596.html

相关文章

结构力学:某点零位移问题的解法

问题:如下图所示,集中力P作用于刚架上,X值为多少时,A点竖直位移为0。 解: 在A点施加竖直向上的单位力“1”, 作用力为单位力时的弯矩图和作用力为P时的弯矩图如右图所示。(因为在单位力下&#…

科里奥利力对地球的影响

科里奥利力背景介绍第一部分,科氏力与地质作用第二部分,科氏力与潮汐第三部分,科氏力与中尺度涡旋第四部分,总结背景介绍 将地球当作一个转动的非惯性参照系,如果地球表面或者是其内部有一个物体以某种速度进行运动时&…

第二代战斗机的特点有哪些

第二代战斗机的特点有哪些 第二代超音速战斗机出现于50年代末和60年代初。代表机型包括美国洛克希德公司;英国“闪电”式;法国的“幻影”Ⅲ和“幻影”F1;瑞典的萨伯-37;前苏联的米格-21、米格-23和苏-19;中国在米格-21…

第三代战斗机的特点有哪些

第三代战斗机简介第三代战斗机的特点有哪些第三代战斗机的特点有哪些 第三代战斗机的性能有了明显的提升,具有更高的机动性能和超视距攻击能力,具有多用途、大航程、敏捷性、先进的综合航空电子和火控系统,更大的武器外挂能力,是名…

第四代战斗机的标示性特点有哪些

第四代战斗机的标示性特点有哪些? 第四代战斗机有三大设计特点:一是最大限度地增加了作战飞机在超音速状态下飞行的时间;二是大量采用隐形材料和技术;三是飞机的起降性能得到很大改善,其灵活性将彻底改变人们对战斗机的现有观念。…

第一代战机的特点

第一代战机的特点 第一代战机技术特点是全金属机身、单翼、后掠翼、喷气发动机、亚音速,装有简单的无线电雷达,主要武器为机枪、航炮,作战方式为近距离格斗,采用基本的光学瞄准射击系统,飞行员的飞行技术是空中格斗取胜…

飞行控制系统中滤波器的影响

飞行控制系统中滤波器的影响低通滤波器高通滤波器结构陷波器总结低通滤波器 低通滤波器是容许低于截止频率的信号通过,但高于截止频率的信号不能通过的电子滤波装置。 高通滤波器 高通滤波器,允许高于某一截频的频率通过,而大大衰减较低频率…

滑模控制概述

滑模控制概述1.滑模控制概念2.滑模控制原理3.滑模控制设计步骤4.研究现状5.发展趋势5.1自适应滑模变结构控制5.2模糊滑模控制5.3神经网络与滑模控制的结合1.滑模控制概念 滑模控制(Sliding Mode Control,SMC)是一种特殊类型的变结构控制(Variable Structure Control…