强化学习开发面向现场控制
利用强化学习和DDPG算法实现永磁同步电机的磁场定向控制。本演示用标准面向场的控制体系结构的内环中的强化学习代理替换了两个PI控制器,并展示了如何使用强化学习工作流设置和训练代理。
在这个 视频中, 我们展示如何 使用强化学习对 一个 永磁同步电机的磁场定向控制。
为了展示这一点,我们从一个使用典型的面向域控制架构的示例开始,其中外环控制器负责速度控制;而内环 PI 控制器负责控制d轴和q轴电流
然后我们创建并验证一个 强化学习代理 ,它取代了这个体系结构的内部循环控制器。
当系统是非线性时,RL代理的使用尤其有益,在这种情况下,我们可以训练一个单一的RL代理,而不是在多个操作条件下调整PI控制器。
在这个例子中,我们使用一个线性电机模型来展示使用强化学习的面向磁场控制的工作流程,这个工作流程对于复杂的非线性电机也是一样的。
让我们来看看实现面向字段控制体系结构的Simulink模型
该模型包含两个控制环:一个外部速度环和一个内部电流环。
外环在“速度控制”子系统中实现,它包含一个PI控制器,负责为内环生成参考电流。
内环在“电流控制”子系统中实现,包含两个PI控制器,以确定dq帧中的参考电压。
然后使用参考电压产生适当的PWM信号,控制逆变器的半导体开关,然后驱动永磁同步电机实现所需的转矩和磁通。
让我们继续运行Simulink模型
我们可以看到,控制器的跟踪性能很好,能够跟踪所需的速度。
让我们把这个结果留到以后与强化学习控制器进行比较。
现在我们更新现有模型,用一个Reinforcement Learning Agent块替换当前循环中的两个PI控制器。
在这个例子中,我们使用DDPG作为强化学习算法,它同时训练一个行动者和一个批评家学习一个使长期奖励最大化的最优策略。
一旦用强化学习块更新了Simulink模型 ,我们就可以遵循强化学习工作流来设置、训练和模拟控制器。
强化学习工作流程如下:
第一步是创建一个环境。在这个例子中,我们已经有了一个Simulink模型,其中包含了在“Plant and逆变器”子系统中使用电机控制块集和Simscape电气建模的永磁同步电机。
然后,我们使用这个Simulink模型创建一个带有适当观察和操作的强化学习环境界面。
这里对强化学习块的观察是定子电流的' id误差'和' iq误差'以及定子电流' id '和' iq '中的误差。
动作是定子电压“vd”和“vq”。
接下来,我们创建奖励信号,让强化学习代理知道它在训练中选择的行为是好是坏,这取决于它与环境的相互作用。
在这里,我们基于惩罚距离目标和控制努力的二次奖励来塑造一个奖励。
然后我们继续创建网络架构。
在这里,我们根据DDPG算法的要求,用MATLAB函数对层和表示进行编程构建演员和评论家网络。
神经网络也可以使用深度网络设计器应用程序构建,然后导入MATLAB。
本例中的批评家网络将观察和行动作为输入,并给出估计的Q值作为输出。
另一方面,行动者网络将观察结果作为输入,将行动作为输出。
创建了演员和评论家表示之后,我们可以创建DDPG代理。
DDPG代理的采样时间根据控制循环的执行需求进行配置。
一般来说,样本时间越短的智能体训练时间越长,因为每一集的模拟步骤越多。
我们现在准备好训练特工了。
首先,我们指定培训选项。
在这里,我们指定我们希望运行最多2000集的训练,并在平均奖励超过提供的值时停止训练。
然后使用' train '命令启动训练过程。
一般来说,最好的做法是在训练过程中将参考信号随机分配给控制器,以获得更鲁棒的策略。这可以通过为环境编写一个本地重置函数来实现。
在训练过程中,可以在插曲管理器中监控进度。
一旦训练完成,我们就可以模拟和验证来自训练过的代理的控制策略。
用训练过的智能体对模型进行仿真,发现强化学习智能体控制定子电流时,磁场定向控制的速度跟踪性能较好。
在查看此性能与之前保存的输出,我们看到,具有强化学习代理的面向场控制的性能与它的PI控制器相比较。
视频到此结束。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。