主要内容

加速模型模拟和分析

加速度是什么?

通常,当在SimBiology模拟或分析模型®在MATLAB环境下,该模型表示®代码。您可以通过将模型转换为加快仿真编译C代码,执行得更快。因为这个编译步骤有一个小的时间开销,加速度不建议个人小模型的模拟。然而,对于大型模型,或者重复模拟分析过程中,加速度可以提供一个重要的速度增加,超过了小时间开销。

当加速

加速的功能模拟执行最优在下列条件:

  • 重复运行模拟不同的初始条件

  • 运行很长时间模拟(例如,模拟运行超过一分钟)

先决条件加速模拟和分析

为加速准备您的模型模拟,安装和设置编译器:

  1. 安装一个C编译器(如果不是已经安装在您的系统上)。当前支持的编译器列表,请参阅金宝app金宝app支持和兼容的编译器

  2. 确保任何用户定义的函数模型可以用于从MATLAB代码生成,这样他们就可以转换为编译c。更多信息,明白了语言中,函数和对象支持C和c++代码生成金宝app(MATLAB编码器)或联系MathWorks技术支持金宝app

请注意

  • 在Windows上®,如果您还没有安装另一个编译器,SimBiology使用lcc-win64编译器模型的加速度。如果您已经安装了另一个编译器的支持,它将自动被选中。金宝app更好的性能的加速功能,你可能想要安装一个金宝app支持编译器lcc-win64以外,它将自动被选中。

加速模拟编程

使用sbioaccelerate如果你正在加速SimBiology模型。对于一个SimFunction对象和一个导出的模型(SimBiology.export.Model),使用相应的加速方法。

使用sbioaccelerate

跟随加速度的两步过程。

  1. 运行sbioaccelerate为加速准备您的模型模拟。使用相同的输入参数,您计划使用sbiosimulate在接下来的步骤。例如:

    sbioaccelerate (模型,configset,剂量);

    为一个非常大的模型,这个步骤可能需要一分钟或更长时间才能完成。

  2. 运行sbiosimulate使用相同的输入参数sbioaccelerate。例如:

    simdata= sbiosimulate (模型,configset,剂量);

如果你在一个数组的剂量sbioaccelerate,你可以使用任何这些剂量的子集模拟模型,不需要再次运行加速度。

范例,请参阅以下。

使用加速

一个SimFunction对象是在第一个函数自动加速执行。因此没有必要加速模型之前创建的对象。然而,人工加速使用加速方法的对象如果你想加速部署应用程序。

对于导出的模型,看看加速

当重新运行加速度

如果你做任何修改模型,如更改或添加事件的反应,你需要重新运行加速度,在模拟运行。

不过,也有例外。你做需要再次加速,如果你正在改变:

加速模拟使用SimBiology模型分析仪

您可以启用模型的加速度SimBiology模型分析应用程序通过检查为加速模型模拟盒子的模型程序的步骤。

故障排除加速模拟

如果你有定制函数,使用持久变量只对那些你不想要的变量(常量)重新计算或重新加载每个函数调用。原因是在加速过程中,SimBiology转换模型和自定义函数编译C代码。如果你想使用一个持久变量共享数据在生成的C函数(或编译),你可能有不同的结果。例如,如果您使用一个持久变量数多少次一个函数被调用时,每个编译函数将有一个单独的计数。这些持久性变量在相应的编译函数将使用不同的MATLAB函数定义。

如果指定自定义函数SimBiology表达式,您可能会看到下面的警告如果您的代码不兼容与MATLAB代码生成:

的SimBiology表达式和任何用户定义函数无法加速。请检查这些表情和任何支持用户定义函数的代码生成所述从MATLAB代码生成文档。金宝app

在哪里表达式有下列:

  • 反应速率/规则表达式

  • 初始赋值规则表达式

  • 重复赋值规则表达式

  • 事件触发的表情

  • 事件函数表达式

有关更多信息,请参见语言中,函数和对象支持C和c++代码生成金宝app(MATLAB编码器)或联系MathWorks技术支持金宝app

另请参阅

||||

相关的话题