如何在Simulink中开发DC-DC转换器控制,第6部分:自动代码生成和结论金宝app
从系列中:如何在Simulink中开发DC-DC变换器控制金宝app
了解如何在嵌入式处理器上实现SEPIC的数字控制器。转换器是来自德州仪器的DC-DC LED套件的一部分。微控制器是德州仪器TMS320F28069处理器。一旦你在Simulink中设计和验证了控制器金宝app®,使用嵌入式编码器®为嵌入式处理器上的实现生成代码。
请参阅示例,该示例显示如何为德州仪器C2000™处理器安装嵌入式编码器支持包,以生成针对德州仪器TMS32金宝app0F28069处理器优化的代码。使用此支持包中的块来更新控制器。金宝app该支持包金宝app还包括该模型中使用的TMS320F28069处理器的驱动程序块。
在您更新模型之后,使用Embedded Coder生成C代码。代码生成报告提供了Simulink模型和生成的代码之间的双向可追溯性,以帮助您更好地理解代码。金宝app了解如何为控制器生成算法和驱动程序代码,以及如何将这些代码部署到嵌入式处理器。使用Simulink中的外部模式来更改Si金宝appmulink模型中的LED亮度命令,并验证在嵌入式微处理器上运行的生成代码是如何执行的。
现在是时候讨论一下实现了。现在,为了在嵌入式平台上实现电力电子控制,我回到Simulink,我会向你们展示这个模型,我称之为应用软件。金宝app
在这个模型中,我创建了我的软件架构,可以这么说,我有一个——使用模型参考,我正在调用其他模型来实现某些算法,例如,对我当前的监管逻辑的一些限制,我们在statflow中的工作模式管理中看到了部分限制,闭环控制电压,以及闭环LED控制器。
你可以在这里看到不同的颜色。颜色与特定的计时步骤相关联,这样我们就可以一目了然地看到哪个子系统和不同的模型以何种速率工作,以及它们如何相互作用。然后我可以转到“应用程序”选项卡,打开“嵌入式编码器帮助”,如果我不知道具体如何开始,或者哪一个将是我的硬件平台,我可以从“嵌入式编码器”快速启动“快速入门”。
它会分析系统。你可以指定你想生成哪种代码,C, C AUTOSAR, c++, c++ AUTOSAR,有多少实例,所以你想用一个或者它会被重用。分析模型,看看系统中有多少采样率,是否有连续的状态被实现。最后,它会问我是否希望这是一个多任务速度单调的系统,或者如果我有一个执行时间最快的单任务,我是想要优先执行还是RAM。
最后,它会在代码生成中为我的参数提供一些新值。你已经在这里看到了。我们有22个参数。实际上,有数百个可以参数化的参数,以便获得您想要的确切代码。对于嵌入式编码器,非常建议采取我们的培训之一。
现在我们实现了一项新功能,即通过代码接口查看代码和模型的能力。在这里,我可以选择我的代码界面,然后代码将弹出在这里的一边,并允许我在模型和代码之间进行双向跟踪。如果我回到我的闭环控制系统,如果,举个例子,做这个开关,这里的代码会自动转到为这个子系统生成的C代码,我就会看到这个开关实际上是如何实现的,这个是如何实现的。我可以找到我的代码中我可能更感兴趣的那一部分。
这是学习嵌入式代码生成如何工作以及快速查看参数配置将如何影响生成的代码的好方法。如果我正在使用开发板,比如德州仪器C2000的开发板,我实际上可以到Add-Ons选项卡,搜索硬件类型,例如,在这里我可以搜索C2000,并下载嵌入式编码器的特定硬件支持包。金宝app有针对C2000的,但也有针对很多其他平台的,比如STMI, ARM处理器,覆盆子,任何你喜欢的。所以,有很多硬件支持,金宝app
这给了你驱动块和生成可执行文件的能力,并直接从我的嵌入式硬件中闪光。
因此,由于自动代码生成,我们可以部署到任何具有最佳性能的处理器上。模型可以为PLC或工业计算机生成结构文本,可以为FPGA生成HDL代码,可以为gpu和嵌入式gpu生成CUDA代码,也可以为嵌入式处理器或计算机处理器如Intel或AMD生成C代码或c++。
这项技术不仅允许您通过闪烁特定的板(例如TI的One)连接到硬件,而不管您的包,而且MATLAB和Simulink,总体而言,它们与硬件一起工作得非常好。金宝app可以直接连接示波器。您可以连接数据采集设备,还可以将Simulink模型与来自OPC和can的数字网络连接起来。金宝app你有一个集成了很多硬件的工具箱。所以如果硬件对你来说很重要,请看看我们支持的所有不同的硬件。金宝app让你的实验室生活更轻松。
另一件事是,当您开始生成代码时,您的项目将进入生产阶段,然后您将需要专业的能力来管理您的文件和模型。为此,您有一个Simulink Proje金宝appct,它允许您将其他文件连接到一个实体中,并通过检查(如Simulink Project Upgrade)帮助您始终保持最新版本。
金宝appSimulink Project是基本MATLAB的一个特性,不需要任何其他工具箱。同样,在Simulink Proje金宝appct中,您可以集成虚拟控制,然后您可以轻松地访问Simulink图形模型比较和合并。这是包含在Simulink中,自2017B以来不需要额外金宝app的工具箱。
在此之前,您将需要Simulink报告生成器,但我们决定退一步,金宝app将其单独放入Simulink产品中。所以如果你仍然没有17B,这可能是一个很好的理由。你不需要任何额外的工具箱。您可以简单地使用Simulink Pr金宝appoject并开始分析系统的不同版本。
当我们进行验证时,我们提供了许多不同的事情,您可以使用自动代码生成来完成。其中之一是Software-in-the-Loop,我们在闭环模拟中生成算法代码和嵌入式代码,因此您可以测试生成的代码在功能上是否与模型等效。
你可以做处理器在环或FPGA在环中,算法将在支持的板上闪烁,然后连接处理器将工作运行时步骤,将反馈模拟的结果,并将进行非实时功能验证,也将进行性能分析,这样你就可以准确地评估性能的准确性以及有多少可用资源。金宝app
第三种是“硬件在环”(Hardware-in-the-Loop),你可以让你的算法在你的处理器上工作,你的工厂模型从Simscale Electrical生成代码。我们仍然可以从Simscape中生成代码,并将其放在实时机器上,例如,来自Speedgoat的机器。实际上,我们询问了我在Speedgoat的合伙人Carlos Villegas,他为我提供了这几张幻灯片和硬件在环的例子。
Speedgoat是瑞士MathWorks的一家合作公司,为硬件在环和快速原型设计提供实时解决方案。这里,我们可以看到他们用我提供的模型做了什么。他们使用Simscape to HDL技术对不同操作下的SEPIC进行线性化
然后就能在FPGA上闪现。因此,我们提供了一个工作流,允许您从Simscape模型转换为HDL代码。
然后这个在FPGA上运行的HDL代码允许我们测试我们的算法仍然是100千赫兹的PWM信号,这是非常快的。所以我们需要200兆赫的高分辨率捕获,然后让模型在我们的FPGA上运行至少2兆赫,这是他们可以实现的。我们可以在这里看到他们和我分享的一个例子,他们首先部署了一个模型到嵌入式目标,比如TI,然后我在高速机器上部署了比特流。
最后,你可以在右边看到他们的示波器,它正在记录不同的电压。他们现在要增加电压。我们可以看到参考电压是9点,或者18电压,输出电压会变成18电压,你可以看到普通电容的不同电压或者PVM信号的不同电压都在硬件在环中以100千赫兹工作。
所以这是另一个非常有趣的工作,你可以重用一些你做过的模型,将它们转换为HDL并提供,高频开关系统的闭环功能。现在可以在检查器中看到系统的行为几乎完全像我在模拟中看到的那样。
这结束了我们的会话。再一次,让我展示一下我们今天所做的工作。我们基于德州仪器的硬件模型对SEPIC进行了建模。我们编写并调整了控制逻辑和监督逻辑。然后我们生成C代码,并使用其他支持包将其带到这些硬件上,就像我们现在看到的那样。金宝app
在这种情况下,我们可以使用我们获得的参数来控制LED电流到6000万对,这要归功于我们的控制设计调谐能力与系统识别相结合,这样我们就可以使用高保真模型,切换线性组件,以便为我的控制设计获得最优参数。
我们的客户使用这种工作流程的一个例子是ABB,该公司以电力转换社区而闻名,来自ABB新西兰的Robert Turner博士说,模拟和代码生成使我们能够迅速扭转变化,消除编码中的人为错误,开发人员的工作效率轻松提高了十倍。这些都是来自世界领先电力电子公司之一的强有力的声明。
最后,让我重申三个关键要点。在我们的解决方案中,我们有图形化编程Stateflow Simulink,这是非金宝app常直观和强大的,最先进的技术,如求解器和控制设计技术,促进了您的团队开发的复杂系统的设计验证,这本质上是多学科的。这将允许你尽早发现设计错误,并在提高质量的同时降低开发成本。
我想在我的顶部中心向我们的电力电子控制社区大声疾呼。你有他们的模型,答案,如何视频,以及与其他来自MathWorks和行业的电力电子专家互动的能力。非常感谢您的参与,请注意安全,下次再见。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。