虚拟调试使用仿真软件——第2部分:虚拟调试万博1manbetx
概述
许多行业面临日益复杂的算法部署在生产系统,以实现更大的生产力。此外,停机时间控制软件实现改善的成本可能会高得令人不敢问津。今天,公司调整虚拟调试解决这两个问题。矿业公司可以利用虚拟调试,以确保新的控制算法将可靠,达到预期的结果,和无缝地实现以最少的停机时间。
虚拟调试使用动态模型设计和验证算法提高生产力。验证后,这些算法可以自动部署到一个模拟PLC, PLC上运行的代码在哪里测试装置模型。
的虚拟调试这个研讨会侧重于两个方面:设计与仿真,并实现与代码生成。您将看到工作流在矿业公司演示了使用一个共同的挑战:multi-tank液位控制问题。
第2部分:虚拟调试
在模拟开发和验证控制策略后,控制算法是部署到嵌入式平台常见的矿业:可编程逻辑控制器(PLC)。生成的代码上运行的代码模拟验证了PLC连接前仿真软件工厂模式实现真正的系统。万博1manbetx研讨会的这部分强调了从设计算法易于生成PLC代码提供了一个简短的从设计到生产实现可靠的路径。
的主持人
Ruth-Anne马尔尚
Ruth-Anne马尔尚是一个高级应用工程师专业模型,和基于模型的设计。万博1manbetx自从2015年加入MathWorks,她的重点是支持客户采用基于模型的设计与仿真软件。万博1manbetx万博1manbetx加入MathWorks之前,Ruth-Anne在加拿大航空工业作为一个控制系统工程师。Ruth-Anne持有过时在计算机工程和电气和计算机工程的德文,从滑铁卢大学,加拿大,专门从事控制系统。
布兰科·迪杰斯特拉
布兰科·迪杰斯特拉是一个主要技术顾问专注于基于模型设计工作流过程工业优化。加入MathWorks之前,布兰科·是一个工程经理的发展汽车气候控制和电动汽车热管理系统。在此之前,他曾在显微光刻法行业。布兰科·主机根据他收到了他的一批结晶装置建模工作。他收到了控制工程博士学位(显微光刻法)从代尔夫特理工大学,荷兰基于他的论文迭代学习控制应用到晶片的阶段。
记录:2020年10月14日
你好,欢迎并感谢大家参加我们的第二矿业研讨会集。几年前,当我在跟一个矿业公司的高级主管负责生产方面的业务,这个高管提到两件事都停留在我脑海里,思考我们今天讨论的话题。其中一个是这个高管说,如果他们在生产环境中实现一个新的创新的算法,它需要运行在生产密切监测前一年他们相信它是健壮的对所有算法的典型环境条件会接触到。,另一个是在生产环境中实现这些算法一旦你开始得到越来越多的他们,你怎么能确保他们玩很高兴彼此,他们不开始互相争斗?
我认为在本系列讲座的第一个元素,Ruth-Anne调优算法表明,她已经跑了很多,很多,很多模拟所以她已经暴露出这个算法大量的模拟时间。所以你可以想象并不是同样的一段使用模拟环境中运行许多极端条件下,长,长时间的运行,以确保你的算法,你开发的模拟将是健壮的。这个系列讲座一点看第二个元素。,一旦我们有了这个算法和我们与真正的集成控制系统,我们怎样才能确保我们把这些东西放在一起时,他们不开始互相争斗?
和我们今天将讨论的元素,这是虚拟与仿真软件调试。万博1manbetx这个研讨会的虚拟调试需要特别关注的事情。我是布兰科·迪杰斯特拉。我是MathWorks技术顾问。Ruth-Anne马尔尚是一个应用程序工程师谁来接管这一路走来来演示这个话题是什么样子。
这里你看到这句话我是从一个世界经济论坛的报告从几年前,他们创造了与埃森哲。这是一个引用一家矿业公司的首席执行官说,利用技术使采矿安全的核心和更有效率。你可以很容易地替换矿业与不管你的领域或行业是什么,因为我觉得这句话仍然是正确的。是使用这种新技术来获得更多的从你的业务,而不只是使您的业务更加安全,但以使它更好不牺牲任何安全或生产率。
这是另一个引用从几年前麦肯锡的一份报告,谈到使用分析技术。你能想到的任何类型的算法和直接分析技术能够提高你的收入了几个百分点。它告诉你,你可以降低成本和提高生产率的聪明你做什么,通过增加的复杂性技术适用于你的系统。
这导致这张幻灯片。几乎所有行业正经历着这一趋势。他们正在经历一个趋势,算法的复杂性与系统接口,差不多的复杂性与系统集成的软件,正在增加。和处理这种复杂性带来了一系列的挑战,这就是我们今天要讲。你如何处理这个问题增加了复杂性的软件以及操作系统增加了复杂性的一个可靠的、安全的,并可预测的方式吗?
现在它是理想的,如果你能新算法在实际系统开发和实验。但是这里已经两个系统不切实际或不可能的地方的照片或太贵了你真正的实验系统。例如,您可能想知道如何我在飓风的风力涡轮机的行为,但实际上这只是有点不切实际的召唤新的风力涡轮机公园的飓风每次你佣金。所以这就是为什么我们正在讨论使用您的系统的模型。
在过去的网络研讨会,Ruth-Anne显示她如何使用一个虚拟的工厂,工厂的模型,开发一个算法和优化算法的这个工厂的系统动力学模型。今天,实际上把它下一步我们需要算法,控制器开发,我们将实现一个实际控制或PLC与PLC和让我们的模型,我们的虚拟工厂,并验证,当股价开始说话一个实际的植物,它会如何表现,这些东西会正常运转。就是我们所说的虚拟调试。
所以我们想做虚拟调试是我们想要的植物模型,把它在一个虚拟的环境,到一个模拟,我们想开发或应用的算法,我们想要实现在现实中。我们想要实现在这个虚拟环境中,尝试一下,我们相信,当我们再轻弹开关,操作控制系统真正的植物,事情会顺利进行和正确,给我们信心,一旦它开始和各种各样的其他系统进行集成,事情仍然很好地运行。
所以第一步,我们要看,我们开始与这个金属盒子工厂和一个控制器。我们要转换控制器对控制器的目标。我们今天讨论的例子,这将是一个可编程逻辑控制器,PLC。它可以是任何其他目标,但这是我们今天显示的步骤。我们如何把这个算法,我们验证了仿真和在一个灵活的开发环境,我们现在把它放在如何在全运行生产环境吗?我们使用的是自动代码生成。
这张照片显示几乎是多么复杂和Ruth-Anne将展示这一点。我们有一个控制器模块和我们有一个工厂。我们右键单击控制器代码块,我们选择我们想要的PLC。然后我们点击按钮,生成代码的子系统。这就是将生成PLC代码我们可以直接放在PLC,这样我们就可以运行它在生产中或在虚拟调试验证它。
你还要注意,如果你看屏幕的中间,是我们选择PLC代码。但如果你想实现HDL代码或C代码,这是完全可能的。这基本上意味着你可以想象的任何目标,您可以生成代码并实现它。
这里有一个例子,那将会是什么样子。一旦我们正确的点击,仿真软件消失一段时间,然后为你生万博1manbetx成结构化的文本文件。这种结构化文本文件包含链接到原始模型,所以你有可追溯性,你能看到这段代码涉及到什么了,它给你一个报告生成和它是什么样子。这路径自动代码生成确保你没有错误之间的最初实现,你测试,你所模拟的价值也许年或几十年的的条件和场景,当你然后到PLC实现的代码,你有直接的联系,显示相同的代码,我们现在将会投入生产。
完成这一步后下一步是虚拟调试。我们把这个公司代码,我们把它放在一个PLC,然后我们得到PLC的模拟植物交谈。这意味着如果有任何毛病勾搭算法实际的工厂,我们的仿真软件,如果有任何集成问题,我们会发现他们在这个虚拟环境在这一阶段的虚拟调试。万博1manbetx这是一个阶段,如果你会这样做的真正的植物,它实际上可能带来的工厂如果你有某种形式的集成问题。这个阶段,我们要确保在此代码仿真,当我们把这个PLC与工厂一起,事情仍正常运行。
现在表明,在仿真中,我们验证的算法是很有意义的。的步骤,我们在这里所做的是真正确保一旦我们把算法在我们的生产目标,PLC,它仍然在其新集成环境的正常运行。所以这里的集成,是很重要的。
所以我们要做的是我们要把这种植物会留在仿真软件,我们要转变对PLC控制器在模型。万博1manbetx最后我们看到的是这样的一个环境模型,完全像一个常规的模拟运行。万博1manbetx所以它看起来非常类似于我们以前做过的模拟。但在幕后,我们实际上是PLC通信。交流,在这个特定的例子中,我们通过OPC UA这PLC,这意味着这个PLC,我们说可以任何地方,可能是在我们自己的电脑,可能是一个独立的计算机。我们沟通是跨网络就像PLC(听不清)在生产经验。
现在,让我们看一看这是什么看起来像一个行动。Ruth-Anne,拿走它。
非常感谢,布兰科。这时的演讲,我们将看到如何在仿真软件。万博1manbetx布兰科·提到,第一步是控制算法自动生成代码,位于这个块。如果你记得从第一个演讲几周前,我们——我们调整了住在这个子系统的控制算法,以满足一些需求。这都是在连续时间完成。
现在我们想要的是这段代码上运行,在这个例子中,PLC,它将运行在一个固定的时间步。所以我们需要做的第一件事是将连续时间控制块转换成离散时间设置。这包括设定适当的样品时间,这个例子在这个演示中,我们选择的样本以0.5秒的成绩,然后重新运行仿真测试算法的整体性能。所以我要运行一个模拟与这个示例,我们可以看到这些离散时间控制块,我们的系统的性能是什么样子。
所以我双击范围。你可以看到在图五坦克的水平。你可以看到,第一个柜,是黄线,这一步反应,看起来非常光滑。然后其他四个有一点干扰作为第一个坦克水平调整。所以这个性能,假设它是可以接受的,现在我们继续配置代码自动生成PLC控制子系统。
所以我们做的第一个选择。第一步我们要做的是我们要改变原子子系统的子系统。所以当我选择,我可以看到这个新选项卡显示在工具条。我已经选择的是原子子系统。然后我想做的是原子子系统的样品时间,所以我右键单击块并单击块参数,这里我选择样品时间。我参数化,以便容易测试和样品时间的操作。
接下来我要做的是选择目标ID。因此,在应用程序选项卡,这里我想做的第一件事是选择PLC编码器应用。所以当我点击,它开辟了一个新的选项卡,允许我配置设置PLC代码生成。
这引出了配置参数。你可以看到在底部,我有一个公司代码生成选项。对于这个例子,我选择了西门子TIA门户作为我的目标IDE。如果我扩大这个列表,您可以看到的,我们支持广泛的——我有一个公司,目标的ide。万博1manbetx如果你不看到你在名单上,请让我们知道,我们非常乐意和你谈谈你的具体的用例。
然后我在这个块,确保我指向正确的子系统,我想生成代码。然后你可以选择生成PLC代码在这里。这是它自动生成PLC代码配置的设置中指定的目标。
所以现在你可以看到,我们已经成功地自动生成PLC代码块。这个sci文件和生成的文件住在这里。我可以访问代码生成报告,也是自动生成。单击sci文件。的一件事,我真的很喜欢这个工具就是这个生成的代码和模型之间的可跟踪性。所以我说可以选择这个链接,在评论中,似乎表明它的有关某种饱和,双击它,这需要我直接饱和块内生活的PID控制器。
好了,现在我们已经自动生成的代码,你能做什么?好,下一步是联合仿真,或虚拟调试或虚拟测试示例的一部分。所以我要做的是向您展示如何将其集成到您的西门子项目,然后建立一个虚拟的模拟或虚拟调试测试。现在布兰科·谈到了——什么是虚拟调试在一个较高的水平。在这个例子中,我要——而不是将代码部署到物理PLC设备,我将使用一个虚拟PLC。
所以我们在西门子TIA门户。第一步我要做当我引进项目是指定sci文件作为外部源文件。所以我点击添加新的外部文件,点自动生成的代码,并把它在这里。然后我可以右键单击阻止并生成块来源。然后从那里,我可以拖放块进我的循环中断,我已经在这里完成。这是现在在西门子环境集成到项目。
我现在要做的就是下载到一个虚拟PLC。为此,我使用PLC SIM [?的进步。?]在这里,我已经预先配置,PLC实例是活跃的。这PLC虚拟PLC,已经配置了一个OPC UA服务器。所以我要做的就是让这个虚拟PLC与OPC UA服务器。我也希望我的Simulink仿真模型和万博1manbetxOPC UA服务器。让我们来谈谈如何这样做。
这是我们使用的模型自动生成PLC的代码。现在我要这里在控制器块替换为一个接口的OPC UA服务器。让我们去那的模型。
这是我以前一样的模型显示,在这个块的主要区别是,有一个接口与OPC UA服务器。如果我双击这个块中,我们看到的是MATLAB函数,在MATLAB函数设置OPC UA连接服务器和处理数据传输的输入和输出。
如果我们回到仿真软件模型,所以我们这里是MATLA万博1manbetxB功能块作为输入的所有错误来自我们的植物模型,然后通过OPC UA将其发送到虚拟PLC运行生成的代码,我们在前面的步骤。这段代码计算所需的阀命令来打开和关闭阀门。再次发送的OPC UA回仿真软件模型,它发送这些信号作为输入的模式植物。万博1manbetx
现在让我们一分之二co-simulated方式运行。开始我的虚拟PLC,单击run按钮。等到绿灯的固体。现在我将开始仿真软件模型。万博1manbetx
所以这是现在所做的是工厂的运行仿真软件模型,计算所有植物动力学,同时与一个虚拟PLC通过万博1manbetxOPC UA连接,运行自动生成控制器代码。如果我双击这里的范围,我流的生活值水平为每个坦克,我们测试。
所以我要停止,把备份范围,缩小我们可以看到整个事情,整个事情是什么样子。现在跑大约38 - 40秒的模拟,没有运行整个5或10分钟基础仿真PLC co-generated模型中,我们显示,为了时间。但这里的想法是,你可以自动生成的代码可以部署到你的公司。然后你可以测试,之前你把它放到硬件PLC代码。你可以在一个虚拟的环境中测试它通过连接一个虚拟PLC仿真软件。万博1manbetx
这并不是唯一的——OPC UA并不是唯一接口,支持这种类型的工作流。万博1manbetx这是一种可能性。这个例子,是的,我使用了西门子的环境。但西门子是,正如您所看到的,并不是唯一一个支持这种类型的工作流,和这样的测试框架。万博1manbetx所以,完全有可能为此与许多其他流行的供应商。
所以总结一下,你见过在这个演示如何从一个仿真软件模型,自动生成的代码可以部署到PLC。万博1manbetx然后你看到自动生成的代码运行在一个虚拟PLC与,或co-simulated,植物模型中,一个物理系统的动态模型。和两个一齐跑co-simulated环境使用OPC UA连接。所以在这一点上,我将把它交给Branko结束。
谢谢,Ruth-Anne。这是很酷的看到所有的行动。现在我们看到的是在通信仿真软件,我们看见一个工厂co-simulating的PLC运万博1manbetx行在其他地方。出于实用目的,在这种情况下,这是一个虚拟PLC,由西门子提供的,但它可能是一个物理独立PLC通过OPC UA盒子的地方,因为我们沟通。我们已经显示在第一网络研讨会,我们显示仿真,利用仿真开发和验证一个算法。然后我们今天使用代码生成算法和实现PLC。然后我们使用一个虚拟调试验证,如果我们把PLC在连接工厂,那事情还去打好了。
现在如果你有这个环境,你可以做一些其它的事情。所以有一件事是我们已经表明,生成的代码,我们将直接在PLC。一旦你确认,你已经有了选择开关,PLC在生产,这可能是一个明智的选择。所以你可以将这些最优算法,你直接验证自动部署到生产。
您还可以使用该探索新工厂设计与实际控制系统。所以你可以想象,你建立一个新网站的虚拟工厂,新工厂,你的建筑。您可以开发算法的控制系统,你想要的,你可以把它们放在实际控制,您可以验证所有这些控制器正常工作之前你甚至建立了工厂。
你也可以连接到任何类型的工作平台。所以如果你想在云中运行的算法或GPU,是完全可以使用这个相同的方法来验证这种集成。所以你可以尝试任何类型的平台,您可以实现任何你想要的的平台。
另一个例子是,你可以使用这个虚拟植物作为训练模拟器。所以你可以用这个虚拟植物模拟某些灾难场景在你们工厂,并有操作员接口与它直接就像一个正常的控制面板,因为它们实际上直接与真正的PLC。但是他们可以被训练在应付各种情况,希望他们永远不会遇到在正常操作。这些是一些想法的还有什么你可以通过虚拟工厂,实际系统的虚拟表示形式。
在过去的网络研讨会,Ruth-Anne告诉你关于这个故事的贝克休斯使用模型来开发一个算法的钻井系统。我只是想强调的另一个领域在这个应用程序中,他们不仅使用模型来开发他们的算法,它们实际上也使用硬件在回路,或他们所谓的边境测试,这是一样的虚拟调试,以确保他们不需要做许多实地测试甚至将这些算法集成到生产环境。所以他们拯救了他们的钱在模拟阶段,正如Ruth-Anne上次提到的,但他们也救了它通过这些虚拟调试测试。
现在我们取得了昂贵的停机的风险减少了测试这些算法的集成在产品环境下,使用一个虚拟的工厂,之前我们去生产。此外,如果我们使用代码生成,如果我们有算法在仿真软件和自动部署路径,缩短我们的时间从概念到生产理念。万博1manbetx所以我们能够迅速保存时间迭代算法在虚拟环境的设计。
一起把这最后的结果(听不清)网络研讨会,我们已经完成了一个减少的风险代价高昂的停机时间在开发更复杂的算法通过使用虚拟调试仿真,然后第二。我们创建了能够提高我们的日益复杂的系统的性能我们可以开发一个虚拟环境中复杂的事情。和我们有能力节省时间快速迭代这些过程通过使用自动代码生成。
下面列出的资源为你进入这些主题更深。顶部是一个链接到我们当前运行的系列讲座。还有更多有趣的话题上来。有一个白色的纸可以在我们的网站,其中包含更多细节虚拟调试和包含链接到其他视频和文件。这里有一个链接到另一个网络研讨会系列供你。如果你错过了Ruth-Anne的演讲的第一部分,还可以在我们的网站。
但是我们会真的喜欢你要做的就是联系我们,一个人或所有人,当你对这个话题感兴趣,当你感兴趣建立一个模型来开发算法或验证算法在虚拟环境中通过虚拟调试或全部。请在联系我们。我们非常愿意并渴望帮助你。请跟我们。非常感谢你的关注,请取得联系。
下载代码和文件
相关产品s manbetx 845
你也可以从下面的列表中选择一个网站
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。