Sonja Krzok,Mathworks
了解如何通过使用在Simulink中开发的控制算法来快速迭代和优化设计金宝app®并将其部署到配置为原型控制器的Speedgoat目标计算机上。您可以将原型控制器连接到物理系统,以迭代控制算法设计,尽早发现问题。在开始实现之前,探索设计折衷并验证系统架构。
大家好,我是Sonja Krzok,我是MathWorks的一名应用工程师,专攻实时仿真和测试,这也是本次演讲的主题。金宝appSimulink real可以让你从Simulink模型创建实时应用程序,并在Speedgoat目标计算机硬件上运行它们。它是为实时仿真和测试任务而设计的,包括快速控制原型和半实物仿真。
使用Sim金宝appulink real,您可以使用Speedgoat I/O驱动程序块扩展Simulink模型,自动构建实时应用程序,创建自己的检测面板,并在配有实时内核、多核CPU、I/O和协议接口以及fpga的Speedgoat目标计算机上执行交互式自动运行。金宝appSimulink real和Speedgoat的目标计算机硬件是专门设计来共同创建桌面、实验室和现场环境的实时系统。这也是唯一的软硬件解决方案,支持最新版本的MATLAB和C建模。金宝app
从传统的V开发周期开始,从系统需求到系统集成,我们用蓝色突出了实时仿真和测试的两个主要应用。在这次演讲中,我将谈论快速控制原型,并向你们展示如何使用Speedgoat硬件从建模到实时原型,以及如何创建自己的图形用户界面,这也可以用于实时目标机器,并强调在没有任何MATLAB和Simulink许可证的情况下,你必须做什么才能免费运行系统。金宝app我的同事Pablo Romero也在这个领域与我一起工作,他将在另一个演示中向您展示硬件在环测试的工作流,以及如何在Simulink环境中自动化测试。金宝app我只能建议你也看看这个视频。
对于快速控制原型设计,我们将在Simulink中模拟控制器和工厂,并重用模型进行实时测试。金宝app因此,我们将使用SpeedGoat驱动程序库中的I / O输入和输出来替换工厂模型以接口物理系统。控制器将在Speedgoat目标硬件上实时运行,因此您可以使用物理系统实时地在早期开发阶段测试控制器。
在这个演示中,我们将看一下电气直流电机及其控制器,它将在速度上实时运行。硬件设置我使用的是以下 - 我有一个开发计算机,Matlab Simulink正在运行,我与以太网连接到SpeedGoat基线,它是来自SpeedGeat的入口机器。金宝app使用接口,我与我的物理系统进行通信,我们的示例中的直流电机。
我使用的是Simulink Pro金宝appject,所以它很容易管理、振奋、查找和设置东西,而且还可以直接与源代码控制系统交互。例如,您可以直接从Simulink Project提交更改,并将其推入存储库。金宝app但是,在你使用过的文件上与你的同事合作也是很好的,例如,创建项目快捷方式。金宝appSimulink允许你在一个环境中模拟工厂和控制器,因此它可以研究闭环行为,并重用模型进行实时测试。我们开始建模直流电机。
建模工厂允许您为其设计适当的控制系统。因此,我们有不同的可能性如何以Simulink模型的变体开始实现。金宝app因此,您必须首先推导等式,然后在Simulink块的帮助下构建微分方程。金宝app另一种可能性是使用simscape。
Simscape使您可以在Simulink环境中快速创建物理系统的模型。金宝app您通过将基本组件组装成示意图,将电动机模拟电动机,这可以比导出方程更容易,更快,尤其是当系统变得更加复杂时。在我们的示例中,我们可以直接从Simscape库中选择直流电机,并适应我们需求的参数。
如果您运行电机模型的仿真,并且输出与真实电机不匹配,则可以在参数估计应用程序的帮助下校准DC电机。它允许您输入和处理输入输出测试数据,例如DC电机的电压输入和转子速度输出,并指定要估计的型号参数。然后,您执行估计并进行比较并验证估计结果。
在下一步,我们必须设计控制器。在我们的例子中,我们使用一个PID控制器,您也可以直接从Simulink库中选择并根据您的参数进行调整。金宝app我们将参数保存在一个数据字典中,该字典直接链接到我们的模型。
要运行模拟,我们创建了这个仪表板测试[?频带?]改变输入,以便在模拟期间跟踪仪表板范围上的信号。我们的闭环模型实现为参考模型。通过此操作,我可以轻松切换到我想要用于模拟的变体。我正在选择Simscape,以及用于数据记录,我们正在使用STI。
我可以直接点击Run,开始模拟,在scope块中,你可以看到我们的位置出现了——在这种情况下,方波和实际位置。在模拟过程中,我现在可以改变我们的位置命令,例如,锯齿或正弦波。但我也可以在模拟过程中激活开关,用滑块改变位置命令菜单。
当我停止模拟时,您会看到我们的模拟结果在Data Inspector中可用。我们有我们的运行和我们记录的所有分段,我选择实际位置和位置为position命令。我可以使用来自Simulation Data Inspector的工具进行更详细的查看——例如,放大时间并使用光标查看实际值。
现在,我们已经在台式电脑上测试了控制算法,它似乎工作得很好。现在,我们要检查控制器如何与外部直流电机的行为。因此,我选择了变体Speedgoat,我们可以看看我们的闭环模型,现在,Speedgoat I/O变体是活动的,我们的工厂模型现在被来自Speedgoat库的I/O驱动程序块所取代。在我们的例子中,电压由PWM产生模块发送,实际位置由模拟输入读取。
对于PWM生成,你可以在这里找到所有的设置和步骤,你可以改变,例如,PWM模式。在我们的例子中,我们用这个度规。还有B通道的通道设置,在我们的例子中,它独立于A通道输出。
如果我们单击Help,您会看到Speedgoat库的文档集成在Simulink文档模型中,在那里您可以找到所有的信息,如何设置您的I/O驱动程序块。金宝app你也会发现非常有用的使用笔记,所以你知道如何使用,例如,PWM块,在另一边是输入。所以我们必须选择信道如何在我们的实际位置读取,但你也可以改变这里的模拟输入范围。而Speedgoat库块,你可以直接在库中找到。一方面,你有Simulink Real-Time,这里是Speed金宝appgoat库,有所有可用的I/O模块。
返回我们的仪表板测试台,您可以看到我们可以使用与Variant SpeedGeat的相同模型,并为实时仿真,我们切换到实时选项卡。当您希望实时执行模型时,我突出了一些硬件设置,所以你必须要记住你使用固定步骤求解器的一件事。您必须制作的其他设置是选择Simulink实时系统目标文件。金宝app您可以使用现在使用相同的模型进行实时执行,仅在此按钮上单击,在目标上运行。
通过单击目标运行 - 您也可以在此处打开诊断 - 您可以启动该过程,以便我们从我们的C代码中的Simulink模型生成,必须编译,然后通过SpeedGoat目标计算机传输。金宝app但是,我们也留在同一个环境中。因此,此过程需要一些时刻,但随后我们使用Simulink作为用户界面,并且仍然可以在模拟期间与我们的模型进行交互。金宝app
所以我们看到构建过程是成功的。我们可以关上那扇窗。我们已经创建了实时应用程序,它现在被转移了,也许你也能听到,直流电机现在正在移动。
应用程序正在运行,对于实时模拟,我现在可以直接与我们的模型进行交互,并在这里更改输入。比如选择方波。切换到锯齿波,或者快正弦波。也应该听到我们的直流电机现在是如何移动的。也可以改变为手动,改变位置命令与滑块再次。
好的。因此,如果我停止应用程序,您可以在数据检查器中看到我们的数据再次可在Simulink中自由使用。金宝app因此,您不必更改数据记录的任何设置。您可以看一下模拟结果,并且您从我们之前从我们的日志记录设置中看到,它会记住我们的设置,并已选择额外的位置和位置命令。
所以这是我们的实际运行,但我们可以比较我们在我们之前在我们最近的运行中选择的运行相同的信号。所以现在它真的很容易比较你的结果,并且再次也可以使用相同的工具。充分放大,并使用光标。好的。因此,这是在外部模式下使用Simul金宝appink使用仪表板块,但您也可以使用应用程序设计并创建自己的用户界面。
App Design包含在MATLAB中,你可以将其用于桌面模拟,也可以用于实时应用。要创建GUI,您可以从不同的组件中进行选择,并为您创建设计。在我们的例子中,我们使用了不同的按钮。我们有旋钮来改变,例如,位置命令,但也为可视化,你可以使用不同的范围。
在此处创建设计后,您要添加功能。因此,在我们的情况下,添加回调以设置位置命令的参数。因此,您可以在此处看到,您的所有设计视图将自动添加灰色,例如,对于位置命令音符值,我们有函数setparam来更改位置命令的值。类似于不同的其他按钮,您始终可以在此处更改功能。
完成图形用户界面时,您可以单击Run,这是您的用户界面看起来的样子。您还可以调整它大小,并自动适应。并从该GUI中,您现在还可以单击“打开”模型。我们正在使用 - 并且还执行像连接目标一样的命令,构建模型,下载应用程序,开始应用程序。
所以我点击了“构建”按钮,我们看到了,在后台,在诊断视图中您看到的内容,现在我们在命令窗口中看到它,构建过程的进度。再次,我们必须从我们的应用程序生成代码。现在,编译它,链接它,然后下一步,在我们有我们的实时应用之后,我们可以将其下载到Speedgoat目标机器。
这可能需要几秒钟。回到我们的GUI——只要应用程序可用,您就会看到用于下一个操作的按钮再次被激活。这些东西你也可以在图形用户界面中实现。所以我们在等待应用程序,那些用户界面真的很好,如果你想把它给一个同事,可能不是很有MATLAB Simulink的经验,只是想测试模型和你的系统。金宝app
现在,应用程序构建成功。我们有我们的ml.x文件,所以我现在可以将应用程序下载到我们的Speedgoat目标机器。并再次,我们也看到了我们目标的地位。现在加载弃用,它可以执行命令启动应用程序。尽可能听到,我们的直流电机再次移动。
现在我们有一个正弦波作为输入,或者我们也可以激活手动位置命令并使用此旋钮更改它。您可以看到我们参考位置和范围中的实际位置的结果。我们还可以直接从图形用户界面控制来自我们的控制器的参数,并获得其他信息,如采样时间,停止时间和模拟时间。因此,从我们的用户界面停止应用程序,现在,您也可以打开直接模拟数据检查器,并且您将在我们最近的结果中再次出现看起来的可能性。
App Designer的另一个亮点是您现在可以共享该应用程序并创建一个独立的桌面应用程序。所以你看,因此你需要Matlab编译器一次创建该独立应用程序。这是在几下面完成的,我们可以在此图形用户界面上更改名称。而且您可以看到您可以创建一个可执行文件,该可执行文件将在任何PC上运行,没有任何MATLAB Simulink许可证。金宝app
你要做的唯一一件事,你也要安装一个运行时,MATLAB运行时,在那台PC上。但正如你所见,你可以编辑到那个下载包,或者从网上下载。所以这是,选择权在你。通过单击Package,您就有了这个图形用户界面,并且可以独立于任何MATLAB和Simulink许可证工作,但可能还要提到这个MATLAB运行时也是免费的。金宝app
此演示文稿让您概述了速度控制速度硬件的快速控制原型。如果您想详细了解如何设置Simulink项目,使用Simscape脚本进行物理建模,如何校准您的模金宝app型并设计控制器,或者如何在验证和验证工作流程中集成实时仿真,请不要犹豫与我们联系。如果您对硬件仿真和测试有兴趣,我强烈建议使用我的同事,Pablo Romero观看第二部分。非常感谢你,并有一个很好的。
你也可以从以下列表中选择一个网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。