主要内容

为强化学习SIL和公益诉讼的运行验证

这个例子展示了如何执行software-in-the-loop(银)和processor-in-the-loop(公益诉讼)验证工作流模型的强化学习代理®。金宝app

这个例子需要以下硬件。

  • 覆盆子π硬件。

  • 无线电子狗或一个以太网电缆。

  • 电源连接到一个微型USB电缆。

你必须下载并安装以下软件包使用的支持金宝app附件探险家

金宝app仿真软件环境

这个例子是一个环境Quanser QUBE™伺服2摆摆起模型。摆起和平衡行动是由一个组合的比例微分(PD)控制器和强化学习(RL)代理。在这个例子中,您将在software-in-the-loop模拟控制器(银)和processor-in-the-loop(公益诉讼)验证和比较模拟结果与正常模式。有关更多信息,请参见银和公益诉讼模拟(嵌入式编码)

对环境负荷的参数。

loadQubeParameters

顶层模型由控制器模型的参考和钟摆的环境。打开模型。

mdl =“rlQubeServo_SIL_PIL”;open_system (mdl)

打开控制器模型参考。

open_system (“控制器”)

整个控制系统由两个RL代理在外层循环计算高度参考角度。参考角度被送到一个低级控制器稳定摆系统通过计算电机的电压。在控制器设计和培训的更多信息,参见强化学习培训代理控制Quanser QUBE摆

政策评估

强化学习策略生成代码并将其部署到硬件,您可以使用下列方法之一。

  1. 评估使用深度学习的政策工具预测块。

  2. 评估政策通过生成代码使用MATLAB®generatePolicyFunction。在本例中使用这个选项。

负载RL代理的rlQubeServoSILPILAgents.mat文件。

负载(“rlQubeServoSILPILAgents.mat”,“swingAgent”,“modeAgent”);

产生下面的政策评估函数。

  1. evaluateAgentSelectPolicy——选择参考和外摆角

  2. evaluateAgentSwingPolicy——振动和摆动的钟摆。

generatePolicyFunction (swingAgent“MATFileName”,“policy_swing.mat”,“FunctionName”,“evaluateAgentSwingPolicy”);generatePolicyFunction (modeAgent“MATFileName”,“policy_select.mat”,“FunctionName”,“evaluateAgentSelectPolicy”);

打开外循环控制子系统模型评价方法和选择从下拉菜单中选择RL。这样做激活使用MATLAB代码生成政策执行。

或者,您可以使用以下命令设置该参数。

set_param (“控制器/外环控制”,“VChoice”,“RL”);

生成的功能evaluateAgentSelectPolicyevaluateAgentSwingPolicy外层循环内部控制执行子系统使用MATLAB函数块。

Software-in-the-Loop模拟

您可以使用software-in-the-loop分析代码生成性能(SIL)模拟。SIL模拟生成和构建代码开发计算机上使用生成的代码,然后模拟系统。你可以比较的结果与从正常模式获得的模拟。

为SIL模拟配置控制器

以下步骤显示如何配置代码生成设置SIL模拟仿真软件。金宝app您可以跳过这些步骤和使用预配置与以下命令设置,设置适当的配置参考SIL模拟。

setActiveConfigSet (“控制器”,“configSILReferenceRL”);

否则,

  • 打开控制器模型。

  • 在仿真软件模型金宝app窗口,在建模选项卡上,单击模型设置

  • 在配置参数窗口解算器节中,设置类型参数固定步解算器参数离散。设置固定的大小参数ts_PID,这是0.005秒。

  • 模拟目标节中,设置语言参数c++目标库参数MKL-DNN。如果使用深度学习工具箱预测块进行评估,集语言C

  • 代码生成节中,设置系统目标文件参数ert.tlc语言参数C。另外,选择一个合适的工具链参数。

  • 可选地,您可以设置语言c++并设置目标库代码生成>界面部分,MKL-DNN。这样为控制器生成c++代码。

  • 保存模型。

视图生成的代码

可选地,您可以查看生成的代码控制器从c代码的角度。

  • 在仿真软件模型金宝app窗口,在应用程序选项卡,在画廊中,单击嵌入式编码器

  • 来生成代码并将其显示在代码中面板上C代码选项卡上,单击构建,。

  • 在这一过程中确保没有错误。你可以重新配置代码生成设置优化生成的代码。

配置顶级SIL仿真模型

开放顶级模型rlQubeServo_SIL_PIL.slx并指定控制器模型的模拟模式参考。

配置控制器模型的模拟模式参考,右键单击并选择控制器子系统块的参数。然后,在块参数对话框中,设置模拟模式参数Software-in-the-loop(银)

SIL模拟运行

运行SIL模拟,应用程序选项卡上,单击银/公益诉讼经理

银/公益诉讼选项卡,被测系统下拉菜单,选择模型块硅/公益诉讼模式。然后,在高级模型模式中,选择正常的

模拟模型,生成并运行代码SIL模拟,并比较结果,点击运行验证。结果显示在模型检查器的数据。金宝app

比较正常和硅之间的显示控制器输出值模拟。对于这个例子公差的误差是可以接受的。

Processor-in-the-Loop模拟

processor-in-the-loop(公益诉讼)模拟,您可以生成代码的目标硬件(在这种情况下,树莓π),并从硬件部署并运行代码。公益诉讼的结果模拟传输模型来验证数值模拟的等效和代码生成的结果。金宝app公益诉讼验证过程的一个重要组成部分设计周期,确保部署代码的行为匹配设计。

为公益诉讼模拟配置控制器

建立公益诉讼仿真:

  • 覆盆子π连接到主机和权力。

  • 执行raspi(树莓π硬件MA金宝appTLAB支持包)在MATLAB命令,确保硬件连接。该命令还显示设备地址。

遵循SIL模拟工作流的配置步骤。你可以用下面的命令或者使用预配置的设置。

setActiveConfigSet (“控制器”,“configPILReference”);

除了这些设置,在配置参数对话框硬件实现节中,设置硬件板参数覆盆子π董事会并输入参数。指定设备地址,用户名,密码适当的值作为参数。

配置公益诉讼的顶级模型模拟,第一次打开顶层模型rlQubeServo_SIL_PIL.slx

然后,右键单击并选择控制器子系统块的参数。在块参数对话框中,设置模拟模式参数处理器循环中的(公益诉讼)

公益诉讼运行仿真

公益诉讼仿真运行,在应用程序选项卡上,单击银/公益诉讼经理

银/公益诉讼选项卡,被测系统下拉菜单,选择模型块硅/公益诉讼模式。然后,在高级模型模式中,选择正常的

模拟模型,生成并运行代码,硬件,并比较结果,点击运行验证。结果显示在模型检查器的数据。金宝app

控制器输出值的比较正常和公益诉讼之间的模拟显示。对于这个例子公差的误差是可以接受的。