文档

优化、估计和扫描块参数值

当你打扫一个或多个参数,可以在模拟运行之间更改其值,并比较和分析每次运行的输出信号数据。使用参数扫描调整控制参数,估计未知模型参数,并通过考虑实际系统中的不确定性来测试控制算法的鲁棒性。

可以扫描块参数值或用于设置参数值的工作空间变量的值。使用参数“模型数据编辑器”上的选项卡(位于建模选项卡,单击模型数据编辑器),物业督察(在建模选项卡,在下面设计点击属性查看器),命令提示符,或在模拟运行之间更改参数值的脚本。

如果要重复改变块参数的值,请考虑在工作区中创建变量。可以使用模型资源管理器或编程命令来改变变量的值,而不是在模型中定位或识别块。此外,有助于参数优化、估计的几个特征和产品,和扫描要求通过创建工作空间变量来设置块参数值。下载188bet金宝搏

要了解如何在创建模型的迭代过程中操纵参数值,请参见调整并试验块参数值.

有关在设计模型时访问和设置块参数值的基本信息,请参见设置块参数值。有关以编程方式模拟模型(例如通过使用脚本)的基本信息,请参阅以编程方式运行模拟.

扫描参数值并检查模拟结果

此示例显示如何在多个编程模拟运行之间更改块参数值。使用此技术通过比较每次运行的输出信号数据来确定最佳参数值。

示例模型刹车使用常数块指定防抱死制动系统的打滑设定点。使用两个不同的打滑设定值0.24和0.25模拟模型,并比较每次模拟运行的输出车轮转速。

要存储设定值,请在基本工作区中创建一个变量。此技术使您能够为该值指定一个有意义的名称。

打开示例模型。

开放式系统(“sldemo_absbrake”);

建模选项卡,单击模型数据编辑器.

在模型数据编辑器中,选择信号标签。

设定改变看法下拉列表到仪器仪表这个日志数据列显示信号青年(这是一个虚拟总线)和slp配置用于日志记录。当您模拟模型时,可以使用模拟数据检查器收集并稍后检查这些信号的值。

在模型数据编辑器中,选择参数制表符设置改变看法设计.

在模型中,选择标记为的常量块期望相对滑动。模型数据编辑器将高亮显示与定值块的参数。

使用价值列来设置参数值重新滑动.

编辑值时,请单击旁边的重新滑动,单击操作按钮(带有三个垂直点)并选择创造.

在“创建新数据”对话框中,设置价值0.2点击创造.一个变量,其值为0.2,出现在基本工作区中。模型现在从该变量获取相对滑动设定点。

或者,可以在命令提示下使用以下命令创建变量并配置块:

relSlip=0.2;设置参数(‘sldemo_absbrake/所需相对滑移’,“价值”,“重新滑动”)

在命令提示下,创建一个数组以存储相对滑动设定点的两个试验值,0.240.25.

relSlip_vals=[0.24 0.25];

创建一个金宝app模拟输入对象,用于要运行的每个模拟(在本例中为两个)。将对象存储在单个数组变量中,斯明.使用设置变量方法来识别两个实验值中的每一个。

对于i=1:length(relSlip\u vals)simIn(i)=Sim金宝appulink.SimulationInput(“sldemo_absbrake”); simIn(i)=设置变量(simIn(i),“重新滑动”,relSlip_vals(i));终止

使用模拟函数来模拟模型。或者,将输出存储在名为模拟输出.

simOutputs=sim(simIn);
[01-Feb-2020 04:04:28]运行模拟…[01-Feb-2020 04:04:31]完成了2次模拟运行中的1次[01-Feb-2020 04:04:31]完成了2次模拟运行中的2次

模型将记录的信号流化,青年slp,转到模拟数据检查器。您可以在模拟数据检查器中查看信号数据。

比较两次最新模拟运行的输出数据。

runIDs=Si金宝appmulink.sdi.getAllRunIDs();runResult=Simulink.sdi.compareRuns(runid(end-1),runid(end));

绘制两个值之间的差值栈单信号(虚拟总线信号的一个元素青年)通过指定结果索引1..

signalResult=getResultByIndex(运行结果,1);绘图(signalResult.Diff);

在扫描中存储值金宝app模拟输入物体

编写脚本以运行多个模拟时,请创建一个金宝app模拟输入对象(要运行的每个模拟对应一个对象)。使用设置变量设置锁定参数方法来标识用于相应模拟运行的参数值。使用此技术,您可以避免使用设置参数用于修改块参数值的函数和用于在模拟运行之间修改工作空间变量值的指定命令。

有关使用的详细信息,请参见金宝app模拟输入要运行多个模拟的对象,请参见模拟.

扫掠非标度、结构和参数对象

如果使用非标度变量、结构变量或金宝appSimulink.参数对象要设置块参数值,请使用设置变量每种方法金宝app模拟输入对象。请参阅表中的示例。

脚本 实例
MATLAB®变量myArray,其值为数组。您要设置数组中的第三个元素(假设基于一个索引)。
setVariable(simIn,'myArray(3)',15.23)
MATLAB变量,我的结构,它有一个名为字段1.
setVariable(simIn,“myStruct.field1”,15.23)
参数对象,myParam谁的价值属性是标量。
setVariable(simIn,“myParam.Value”,15.23)
参数对象,myArrayParam谁的价值属性是一个数组。要设置数组中的第三个元素。
setVariable(simIn,'myArrayParam.Value(3)',15.23)
参数对象,mystructpram谁的价值属性是一个结构。该结构有一个名为字段1.
setVariable(simIn,'myStructParam.Value.field1',15.23)

模型工作区中变量的扫描值

如果使用模型工作区存储变量,则在使用设置变量a方法金宝app模拟输入对象要修改变量值,请使用工作空间用于标识包含模型的配对参数:

setVariable(simIn,“myVar”,15.23,“工作区”,“我的模型”)

捕获并可视化仿真结果

参数扫描期间的每次模拟运行都会产生输出,例如来自外埠阻止和阻止记录的信号。

您可以在变量和对象中捕获这些输出,以便以后进行分析。有关更多信息,请参阅导出模拟数据.

要可视化仿真输出数据,以便比较每个参数值的效果,请参见决定如何可视化仿真数据.

提高仿真速度

要执行多个使用不同参数值的模拟,可以使用加速模拟模式。对于较大的模型,加速模拟比正常模拟花费更少的时间来执行。如果你也有并行计算工具箱™, 您可以使用处理器的多个内核同时执行模拟。使用模拟帕西姆功能。

要使用加速模拟和其他技术提高模型的模拟速度,请参见优化性能。有关示例和更多信息,请参阅运行多个模拟.

扫描参数值以测试和验证系统

如果你有金宝app®测验™,您可以在使用不同的参数值时确认模型仍然满足要求。参数替代和测试迭代使您能够为每个测试用例设置不同的参数值。有关更多信息,请参阅参数覆盖(金宝appSimulink测试)和测试迭代(金宝appSimulink测试)。

估计和校准模型参数

如果你有金宝appSimulink设计优化™,您可以估计模型参数值,以便模拟输出与您在真实世界中测量的数据紧密匹配。使用此技术可以估计模型中参数的真实世界值植物模型,表示无法直接测量值时真实系统的动态。此估计可提高设备模型的准确性。有关更多信息,请参阅根据测量数据估计参数(金宝appSimulink设计优化)。

调整和优化PID和控制器参数

如果你有金宝appSimulink控制设计™,您可以使用PID调谐器来调整PID控制器块有关详细信息,请参阅Simulink中PID控制器的整定金宝app(金宝appSimulink控制设计)。

如果你有金宝appSimulink设计优化,您可以优化控制参数值,以便模拟输出满足您指定的响应要求。有关更多信息,请参阅设计优化以满足阶跃响应要求(GUI)(金宝appSimulink设计优化)。

相关话题