人在仿真软件金宝app

金宝appSimulink &基于模型的设计

使用Simulink编译器部署病毒传播模拟器金宝app

在覆盖了Simulink编译器的基础后,在我的金宝app以前的文章,现在是时候看看更复杂的应用程序了。

为此,我决定利用我几个月前在这个博客上发布的项目我模拟了像COVID-19这样的病毒的指数传播演变

使用程序设计师,我创建了一个应用程序,你可以调整参数和可视化的模拟结果。我的同事从应用部署区设置了一个MATLAB Web应用服务器在云端,这样每个阅读本博客的人都可以在浏览器中尝试这个应用程序。

试着最后的Web应用程序通过点击在这里或者在下面的图片上。

COVID-19模拟器Web App

获取源代码

要查看我如何实现的应用程序,你可以下载项目上MATLAB中央GitHub

我发现方便从GitHub检索项目的一种方式是通过金宝app模型起始页.单击来自源代码控制的项目按钮粘贴我的回购地址:git@github.com: guirlo金宝app / Simulink-Virus-Simulator.git

让我们看看为了使项目与Simulink Compiler兼容,我必须做些什么,以及在此过程中我学到的技巧和窍门。金宝app

快速的加速器

在我的上一篇文章中,我提到要在已部署的应用程序中模拟模型,则SimulationInput对象必须配置为使用金宝appsimulink.compiler.configureForDeployment.为了理解这个函数的作用,让我们将它应用到默认的SimulationInput对象:

为deployement配置

正如你所看到的,配置一个用于部署的应用程序意味着在快速加速器模式禁用RapidAcceleratorUpToDateCheck参数。对于未来的版本,我们计划添加更多的功能金宝appsimulink.compiler.configureForDeployment,以标记模型组件的设置与Simulink Compiler不兼容金宝app

在我的情况下,最重要的结果是我必须移除SimEvents块,因为SimEvents不支持Rapid Accelerator。金宝app我没有使用SimEvents来安排受感染代理恢复所需的时间,而是在Simulink函数中实现了一个计数器,用于检测代理何时已感染足够长的时间来恢复并更改其状态。金宝app

我建议看一下这个文档页面与Rapid Accelerator需求相关的其他限制。

可调参数

您需要注意的第二件事是如何调优参数。由于模型必须在不重建的情况下以Rapid Accelerator模式运行,因此只能对某些参数进行调优,并且需要以特定的方式进行调优。

在我的例子中,每次模拟模型时,我需要调优代理的4个属性:

  • 初始位置
  • 初始速度
  • 半径
  • 恢复时间

幸运的是,它们在默认情况下是可调的,所以我不需要做任何更改来使它们可调。您需要注意的是如何为这些参数指定新值。使用Sim金宝appulink Compiler,您需要通过setVariable的方法金宝app仿真软件。SimulationInput对象。

在我的应用程序中,这意味着模拟模型的代码如下所示:

指定可调参数

这里还有一个我在这个项目中没有用到的附加技巧,但是您可能会觉得有用,因为您是Simscape用户。

Simscape参数:默认情况下,Simscape参数是不可调的。要使Simscape参数可调,首先需要进入您的首选项并启用选项“显示运行时参数设置”:

Simscape偏好

一旦启用了这个首选项,一个新的下拉菜单将出现在所有Simscape参数旁边,这些参数可能被设置为运行时可调:

Simscape运行时参数

我建议只将实际计划调优的Simscape参数设置为可运行时调优。将所有Simscape参数设置为运行时可调可能导致性能和健壮性问题。

如果您打算将编译后的应用程序部署为Web应用程序,我认为这里还有一些更方便的技巧。

提示1:在模拟运行时显示进度条

在R2020a中,只有在模拟完成后才有仿真结果。如果模拟花费的时间超过几秒钟,我建议在模拟期间显示一个进度条,以便最终用户知道正在进行模拟。

注意:在R2020b中,可以在编译模型中输入或输出数据流。我计划在未来的文章中讨论这个问题。

提示2:在警告对话框中显示潜在的模拟错误

如果出现错误,最好将部分代码封装在try-catch语句中并使用uialert显示错误。它可能会帮助您的终端用户理解出了什么问题,并在可能的情况下修复它。

提示3:处理Simulink启动金宝app时间

如果您在Web应用程序服务器上部署应用程序,则不会自动启动Simulink。金宝app这意味着第一次模拟模型时,需要额外的时间来加载Simulink。金宝app为了避免终端用户想知道发生了什么,一个进度条也可以提供帮助。

下面是结合这3个技巧的代码片段示例:

技巧1、2和3

现在轮到你了

通过使用app Designer创建、使用Simulink Compiler编译并托管在MATLAB Web金宝app app Server上的应用程序,您公司的每个人都可以在Web浏览器中访问Simulink的强大功能,而无需安装MATLAB。

如果你还没做过,点击这里在您的Web浏览器中尝试部署的Web应用程序。要查看实现,请从MATLAB中央GitHub

如果你已经在使用Simulink编译器和/或Web应用程序,或者你打算很快使用,请在下面的评论中告诉我们。金宝app

|

评论

请点击留下评论在这里登录到你的MathWorks帐户或创建一个新的。