加速模型模拟和分析
加速度是什么?
通常,当在SimBiology模拟或分析模型®在MATLAB环境下,该模型表示®代码。您可以通过将模型转换为加快仿真编译C代码,执行得更快。因为这个编译步骤有一个小的时间开销,加速度不建议个人小模型的模拟。然而,对于大型模型,或者重复模拟分析过程中,加速度可以提供一个重要的速度增加,超过了小时间开销。
当加速
加速的功能模拟执行最优在下列条件:
重复运行模拟不同的初始条件
运行很长时间模拟(例如,模拟运行超过一分钟)
先决条件加速模拟和分析
为加速准备您的模型模拟,安装和设置编译器:
安装一个C编译器(如果不是已经安装在您的系统上)。当前支持的编译器列表,请参阅万博1manbetx万博1manbetx支持和兼容的编译器。
确保任何用户定义的函数模型可以用于从MATLAB代码生成,这样他们就可以转换为编译c。更多信息,明白了语言中,函数和对象支持C和c++代码生成万博1manbetx(MATLAB编码器)或联系MathWorks技术支持万博1manbetx。
请注意
在Windows上®,如果您还没有安装另一个编译器,SimBiology使用lcc-win64编译器模型的加速度。如果您已经安装了另一个编译器的支持,它将自动被选中。万博1manbetx更好的性能的加速功能,你可能想要安装一个万博1manbetx支持编译器lcc-win64以外,它将自动被选中。
加速模拟编程
使用sbioaccelerate
如果你正在加速SimBiology模型。对于一个SimFunction对象
和一个导出的模型(SimBiology.export.Model
),使用相应的加速
方法。
使用sbioaccelerate
跟随加速度的两步过程。
运行
sbioaccelerate
为加速准备您的模型模拟。使用相同的输入参数,您计划使用sbiosimulate
在接下来的步骤。例如:sbioaccelerate (
模型
,configset
,剂量
);为一个非常大的模型,这个步骤可能需要一分钟或更长时间才能完成。
运行
sbiosimulate
使用相同的输入参数sbioaccelerate
。例如:simdata
= sbiosimulate (模型
,configset
,剂量
);
如果你在一个数组的剂量sbioaccelerate
,你可以使用任何这些剂量的子集模拟模型,不需要再次运行加速度。
范例,请参阅以下。
使用加速
一个SimFunction
对象是在第一个函数自动加速执行。因此没有必要加速模型之前创建的对象。然而,人工加速使用加速
方法的对象如果你想加速部署应用程序。
对于导出的模型,看看加速
。
当重新运行加速度
如果你做任何修改模型,如更改或添加事件的反应,你需要重新运行加速度,在模拟运行。
不过,也有例外。你做不需要再次加速,如果你正在改变:
任何变体
InitialAmount
财产的物种能力
财产的隔间价值
的属性参数StopTime
财产configsetOutputTimes
财产SolverOptions时间
的属性ScheduleDose
时间间隔
,RepeatCount
,开始时间
的属性RepeatDose
加速模拟使用SimBiology模型分析仪
您可以启用模型的加速度SimBiology模型分析应用程序通过检查为加速模型模拟盒子的模型程序的步骤。
故障排除加速模拟
如果你有定制函数,使用持久变量只对那些你不想要的变量(常量)重新计算或重新加载每个函数调用。原因是在加速过程中,SimBiology转换模型和自定义函数编译C代码。如果你想使用一个持久变量共享数据在生成的C函数(或编译),你可能有不同的结果。例如,如果您使用一个持久变量数多少次一个函数被调用时,每个编译函数将有一个单独的计数。这些持久性变量在相应的编译函数将使用不同的MATLAB函数定义。
如果指定自定义函数SimBiology表达式,您可能会看到下面的警告如果您的代码不兼容与MATLAB代码生成:
的SimBiology表达式和任何用户定义函数无法加速。请检查这些表情和任何支持用户定义函数的代码生成所述从MATLAB代码生成文档。万博1manbetx
在哪里表达式有下列:
反应速率/规则表达式
初始赋值规则表达式
重复赋值规则表达式
事件触发的表情
事件函数表达式
有关更多信息,请参见语言中,函数和对象支持C和c++代码生成万博1manbetx(MATLAB编码器)或联系MathWorks技术支持万博1manbetx。
另请参阅
sbioaccelerate
|SimFunction对象
|SimBiology.export.Model
|加速
|加速