精华内容
下载资源
问答
  • 训练DDPG智能体控制双积分系统双积分器的MATLAB环境创建环境接口创建DDPG智能体训练智能体DDPG智能体仿真 该示例说明了如何训练深度确定性策略梯度(DDPG)智能体来控制以MATLAB®为模型的二阶动态系统。 有关DDPG...

    该示例说明了如何训练深度确定性策略梯度(DDPG)智能体来控制以MATLAB®为模型的二阶动态系统。

    有关DDPG智能体的详细信息,请参阅深度确定性策略梯度智能体。 有关显示如何在Simulink®中训练DDPG智能体的示例,请参阅训练DDPG智能体平衡摆

    双积分器的MATLAB环境

    此示例的强化学习环境是具有增益的二阶双积分器系统。 训练目标是通过施加力输入来控制介质在二阶系统中的位置。
    在这里插入图片描述
    对于这种环境:

    1. 从4到4单位之间的初始位置开始。
    2. 从介质到环境的力作用信号是2到2N。
    3. 从环境中观察到的是质量的位置和速度。
    4. 如果质量从原来的位置移动超过5米或如果x <0.01,则episode 终止。
    5. 每一步提供的奖励r(t)是r(t)的离散化
      在这里插入图片描述

    这里:

    1. x是质量的状态向量。

    2. u是施加到介质上的力。

    3. Q是控制性能的权重; Q = [10 0; 0 1]。

    4. R是控制作用的权重; R = 0.01。

    创建环境接口

    为双积分器系统创建一个预定义的环境接口。

    env = rlPredefinedEnv("DoubleIntegrator-Continuous")
    

    在这里插入图片描述

    env.MaxForce = Inf;
    

    接口具有连续的作用空间,智能体可以在其中对介质施加从-Inf到Inf的力值。

    从环境接口获取观察和动作信息。

    obsInfo = getObservationInfo(env);
    numObservations = obsInfo.Dimension(1);
    actInfo = getActionInfo(env);
    numActions = numel(actInfo);
    

    固定随机发生器种子的重现性。

    rng(0)
    

    创建DDPG智能体

    DDPG智能体使用评论者价值函数表示法,根据给定的观察和操作来估算长期奖励。 要创建评论者,首先要创建一个具有两个输入(状态和动作)和一个输出的深度神经网络。 有关创建神经网络值函数表示的更多信息,请参见创建策略和值函数表示

    statePath = imageInputLayer([numObservations 1 1],'Normalization','none','Name','state');
    actionPath = imageInputLayer([numActions 1 1],'Normalization','none','Name','action');
    commonPath = [concatenationLayer(1,2,'Name','concat')
                 quadraticLayer('Name','quadratic')
                 fullyConnectedLayer(1,'Name','StateValue','BiasLearnRateFactor',0,'Bias',0)];
    
    criticNetwork = layerGraph(statePath);
    criticNetwork = addLayers(criticNetwork,actionPath);
    criticNetwork = addLayers(criticNetwork,commonPath);
    
    criticNetwork = connectLayers(criticNetwork,'state','concat/in1');
    criticNetwork = connectLayers(criticNetwork,'action','concat/in2');
    

    查看评论者网络配置。

    figure
    plot(criticNetwork)
    

    在这里插入图片描述
    使用rlRepresentationOptions指定评论者表示的选项。

    criticOpts = rlRepresentationOptions('LearnRate',5e-3,'GradientThreshold',1);
    

    使用指定的神经网络和选项创建评论者表示。 您还必须指定评论者的操作和观察信息,这些信息是从环境界面获得的。 有关更多信息,请参见rlQValueRepresentation

    critic = rlQValueRepresentation(criticNetwork,obsInfo,actInfo,'Observation',{'state'},'Action',{'action'},criticOpts);
    

    DDPG智能体使用行动者表示来决定要采取的行动(在给定的观察结果中)。 要创建行动者,首先要创建一个具有一个输入(观察)和一个输出(动作)的深度神经网络。

    以类似于评论者的方式构造行动者。

    actorNetwork = [
        imageInputLayer([numObservations 1 1],'Normalization','none','Name','state')
        fullyConnectedLayer(numActions,'Name','action','BiasLearnRateFactor',0,'Bias',0)];
    
    actorOpts = rlRepresentationOptions('LearnRate',1e-04,'GradientThreshold',1);
    
    actor = rlDeterministicActorRepresentation(actorNetwork,obsInfo,actInfo,'Observation',{'state'},'Action',{'action'},actorOpts);
    

    要创建DDPG智能体,请首先使用rlDDPGAgentOptions指定DDPG智能体选项。

    agentOpts = rlDDPGAgentOptions(...
        'SampleTime',env.Ts,...
        'TargetSmoothFactor',1e-3,...
        'ExperienceBufferLength',1e6,...
        'DiscountFactor',0.99,...
        'MiniBatchSize',32);
    agentOpts.NoiseOptions.Variance = 0.3;
    agentOpts.NoiseOptions.VarianceDecayRate = 1e-6;
    

    使用指定的评论者表示,评论者表示和智能体选项创建DDPG智能体。 有关更多信息,请参见rlDDPGAgent

    agent = rlDDPGAgent(actor,critic,agentOpts);
    

    训练智能体

    要训练智能体,请首先指定训练选项。 对于此示例,使用以下选项。

    1. 在训练环节中最多运行1000 episodes,每个episode最多持续200个时间步。

    2. 在“情节管理器”对话框中显示训练进度(设置“Plots ”选项),并禁用命令行显示(设置“Verbose ”选项)。

    3. 当智能体收到的移动平均累计奖励大于–66时,请停止训练。 在这一点上,智能体可以用最小的控制力来控制质量块的位置。

    有关更多信息,请参见rlTrainingOptions

    trainOpts = rlTrainingOptions(...
        'MaxEpisodes', 5000, ...
        'MaxStepsPerEpisode', 200, ...
        'Verbose', false, ...
        'Plots','training-progress',...
        'StopTrainingCriteria','AverageReward',...
        'StopTrainingValue',-66);
    

    您可以在训练或仿真过程中使用绘图功能来可视化双积分器环境。

    plot(env)
    

    在这里插入图片描述
    使用训练功能训练智能体。 训练此智能体是一个需要大量时间才能完成的计算密集型过程。 为了节省运行本示例的时间,请通过将doTraining设置为false来加载预训练的智能体。 要自己训练智能体,请将doTraining设置为true。

    doTraining = false;
    if doTraining
        % Train the agent.
        trainingStats = train(agent,env,trainOpts);
    else
        % Load the pretrained agent for the example.
        load('DoubleIntegDDPG.mat','agent');
    end
    

    在这里插入图片描述

    DDPG智能体仿真

    要验证受过训练的智能体的性能,请在双集成器环境中对其进行仿真。 有关智能体模拟的更多信息,请参见rlSimulationOptionssim

    simOptions = rlSimulationOptions('MaxSteps',500);
    experience = sim(env,agent,simOptions);
    

    在这里插入图片描述

    totalReward = sum(experience.Reward)
    

    在这里插入图片描述

    展开全文
  • 针对Buck-Boost电压平衡器的控制,设计一种双积分滑模控制器。该方法考虑了系统的非线性和工作动态,并采用双积分滑模面以减小稳态误差。实验结果表明,相比传统的PI控制器,本文设计的控制器能有效缩短动态调节时间...
  • 为满足系统输出微分平滑的前提,即输出电流能快速准确跟踪参考电流,提出适合电流内环的双积分高阶定频准滑模控制算法,给出了数学模型和控制器设计方法。最后,搭建了系统仿真模型、工程样机及实验平台。仿真与实验结果...
  • 采用常规PID控制器时需要同时调整比例系数、积分系数和微分系数三个...在仿真分析的基础上,将单参数比例积分微分控制器应用于容水箱液位控制系统中,试验结果表明单参数比例积分微分控制器较好的控制性能和鲁棒性。
  • 针对存在齿隙非线性的电机驱动伺服系统控制问题,给出了电机驱动伺服系统的模型,应用反演积分自适应控制方法,引入虚拟控制量和位置跟踪误差的积分,确保系统跟踪误差能够渐近稳定地趋于零。通过逐步递推选择...
  • 为了有效地分析和设计BLDCM控制系统,基于Matlab提出了一种新型的模块化的BLDCM控制系统仿真建模的方法。...转速环引入了积分分离的PI调节器使超调量为零,系统特性稳定,它为实际系统设计和调试工作提供了极大方便。
  • 本文研究了通过采样控制实现双积分动力学的共识问题。 通过使用周期性采样技术和零阶保持电路,从连续时间线性共识协议中得出采样控制协议。 利用获得的采样控制协议,连续时间多智能体系统等效地转换为线性离散时间...
  • 典型的二维模糊控制器因缺少积分环节,难以消除稳态误差,控制的精度常常不能满足系统要求;而PI控制器具有良好的消除稳态误差的作用,所以将其与模糊控制器结合构成复合控制器。通过Matlab/Simulink仿真,结果表明...
  • 引入电压干扰补偿,建立三相高功率因数脉宽调制(PWM)整流器的简化数学模型,该模型既能真实反映PWM整流器的运行状态,又便于控制系统设计。针对电流内环的控制要求,根据电流内环的斜坡响应特性设计其比例积分(PI)调节...
  • 针对最大功率点滑模控制器中存在跟踪电压误差、抖震和瞬态响应缓慢等问题,在一个独立光伏系统中,提出了一种新型的基于双积分滑模控制最大功率点跟踪,为此二重积分滑模控制器采用跟踪电流误差项的滑动面来消除稳态...
  • 转速电流闭环控制直流调速系统的仿真模型。 运用以下的参数: 转速调节器ASR:Kp=17.72,Ki=1/0.087; 电流调节器ACR:Kp=2.47,Ki=1/0.065; 积分环节的限幅值为,调节器输出限幅值为; 三相晶闸管整流器SCR:Ks=...
  • 为了实现基于 AC-DC-AC 的异步电机系统四象限运行、能量双向流动、网侧单位功率因数、直流母线电 压可控,采用了积分反步与滑模控制。 当负载转矩较大范围变化时,直流母线电压发生较大的波动,网侧子系统电 流内环采用...
  • 同步意味着每个代理获取新控制信号的更新时间与其他代理相同;而异步则表示每个代理的更新时间与其他代理无关。 在同步情况下,共识问题被证明等效于离散时间切换系统的渐近稳定性问题。 通过分析离散时间切换系统...
  • @[TOC]水箱系统的电路模型仿真 之前写的文章没处理好,有的图片因为太大了,没有上传成功。万分抱歉。 邮箱:qs@mail.sdu.edu.cn 前言 很多控制系统都是由若干环节组成,这若干个环节可以用电路来表征,从而通过...

    @[TOC]双水箱系统的电路模型仿真
    之前写的文章没处理好,有的图片因为太大了,没有上传成功。万分抱歉。
    邮箱:qs@mail.sdu.edu.cn


    前言

    很多控制系统都是由若干环节组成,这若干个环节可以用电路来表征,从而通过电路仿真软件来仿真控制系统。

    一、使用工具Multisim

    通过简单的积分电路来表征惯性环节。

    二、电路

    在这里插入图片描述

    2.仿真结果

    在这里插入图片描述

    总结

    学习仿真,将所学结合。
    我总是做着同一个梦,在梦里,我总是不停地奔跑、不停地寻找,他们说我必须比别人多一分勇气,多一分幸运,才能到达那个地方、找到那个人。
    我需要冒险,我也可能死在半路上。
    我希望,我到达那个地方时,能找到那个人。
    也许只有死去,人们才会记得你曾经活过。

    在这里插入图片描述

    展开全文
  • 摘 要 摘要 直流调速系统的在...数学模型通过全面分析根据闭环直流调速系统控制要求将电流和转速都设计为 比例积分调节器并设计了电流和转速调节器的参数对经典闭环系统进行分析的 同时为了能得到合理的设计参

空空如也

空空如也

1 2 3 4 5 ... 11
收藏数 205
精华内容 82
关键字:

双积分系统控制