人在仿真软件万博1manbetx

万博1manbetx基于Simulink和模型的设计

使用Simulink编译器部署病毒传播模拟器万博1manbetx

在我的Simulink编译器的基础知识万博1manbetx以前的文章,现在我们来看一个更复杂的应用程序。

为此,我决定利用几个月前我在这个博客上发表的项目我模拟了指数传播的进化,比如COVID-19病毒的传播

使用App Designer.,我创建了一个应用程序,你可以调整参数和可视化的模拟结果。我在应用部署领域的同事建立了一个MATLAB Web应用服务器所以每个阅读这篇博客的人都可以在浏览器上尝试这个应用程序。

尝试决赛Web应用程序通过点击这里或者下面的图片。

COVID-19模拟器Web应用程序

获取源代码

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

我发现从GitHub检索项目很方便的一种方法是通过万博1manbetx模型起始页.你可以简单地点击来自源代码控制的项目按钮和粘贴我的回购地址:git@github.com: guirlo万博1manbetx / Simulink-Virus-Simulator.git

让我们看看为了使项目与Simulink Compiler兼容,我必须做些什么,以及我一路学到的技巧和技巧。万博1manbetx

快速的加速器

在我的前一篇文章中,我提到它在部署的应用程序中模拟模型,SimulationInput对象必须配置为部署使用万博1manbetxsimulink.compiler.configureForDeployment.为了理解这个函数的作用,让我们把它应用到一个默认的SimulationInput对象上:

为deployement配置

如你所见,配置应用程序用于部署意味着模拟模型快速加速器模式并禁用RapidAcceleratorUpToDateCheck参数。对于未来的版本,我们计划增加更多的功能万博1manbetxsimulink.compiler.configureForDeployment,例如标记模型组件的设置与Simulink Compiler不兼容万博1manbetx

对我来说,最重要的后果是我不得不移除SimEvents因为SimEvents不支持Rapid Accelerator。万博1manbetx我没有使用SimEvents来安排受感染的代理恢复所需的时间,而是在Simulink函数中实现了一个计数器,用于检测代理何时已被感染到足以恢复和更改其状态的时间。万博1manbetx

我建议大家看看这个文档页面对于与快速加速器要求相关的其他限制。

可调参数

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

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

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

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

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

指定可调参数

这里有一个我在这个项目中没有用到的技巧,但是您可能会发现您是Simscape用户,这个技巧很有用。

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

Simscape偏好

一旦启用了这个首选项,就会在所有Simscape参数旁边出现一个新的下拉列表,这些参数可以在运行时进行调优:

Simscape运行时参数

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

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

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

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

注意:在R2020b中,可以将数据流输入或输出编译模型。我打算在以后的文章中介绍这一点。

技巧2:在警报对话框中显示潜在的模拟错误

如果出现问题,请在Try-Catch语句中包装一些代码总是一个好主意uialert显示错误。它可能帮助您的最终用户了解哪里出了问题,并在可能的情况下进行修复。

技巧3:处理Simulink启动万博1manbetx时间

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

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

技巧1、2和3

现在轮到你了

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

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

如果你已经在使用Simulink编译器和/或Web应用程序,或者你计划很快使用它们,请在下面的评论中告诉我们。万博1manbetx

|

评论

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