主要内容

sdo.sample

生成样本参数进行敏感性分析

描述

例子

x= sdo.sample (ps)生成样本使用指定的参数空间的定义,ps

  • 如果ps是一个sdo.ParameterSpace对象,然后sdo.sample返回一个表的样本来自中指定的概率分布ParameterDistributions,RankCorrelation,选项的属性ps

  • 如果ps是一个sdo.GriddedSpace只包含网格参数,然后sdo.sample在指定的网格生成样本。

  • 如果ps是一个sdo.GriddedSpace包含一个random-parameter子空间sdo.sample生成一个网格和随机抽样的混合物。

例子

x= sdo.sample (ps,N)指定要生成的随机抽样数量。

  • 如果ps是一个sdo.ParameterSpace对象,然后x是一个表N行和Np列,Np参数的数量在吗ps

  • 如果ps是一个sdo.GriddedSpace只包含网格参数,然后sdo.sample忽略了N并返回样品整个网格的网格选项中指定ps

  • 如果ps是一个sdo.GriddedSpace包含一个random-parameter子空间sdo.sample生成N为每个样本随机参数,结合网格参数,按网格选项。

例子

x= sdo.sample (ps,N,选择)指定取样选项,例如抽样方法。

例子

全部折叠

打开模型。

open_system (“sdoHydraulicCylinder”);

从模型中获得的参数。

p = sdo.getParameterFromModel (“sdoHydraulicCylinder”,{“交流”,“K”});

创建一个sdo.ParameterSpace对象指定样本分布。

ps = sdo.ParameterSpace (p);

生成样本的参数。

x = sdo.sample (ps);

打开模型。

open_system (“sdoHydraulicCylinder”);

从模型中获得的参数。

p = sdo.getParameterFromModel (“sdoHydraulicCylinder”,{“交流”,“K”});

创建一个sdo.ParameterSpace对象指定样本分布。

ps = sdo.ParameterSpace (p);

为参数生成50个样本。

x = sdo.sample (ps, 50);

自从R2023a

下面的例子使用了sdoCSTR模型中详细讨论设计探索使用参数抽样(代码)。在这个模型中参数反应堆缸区域一个和高度h。假设您想要测试的灵敏度设计目标在一个网格为这些参数的值。首先,打开模型和创建param.Continuous对象来表示这两个参数。

mdl =“sdoCSTR”;open_system (mdl);p = sdo.getParameterFromModel (mdl, {“一个”,“h”});

为每个参数指定值的网格通过将细胞中的值数组。本例中的网格均匀间隔的,但是您也可以使用非均匀间隔的值。

保兑= {0.2 0.6 1.0 1.4 1.8 2.2};hvals = {0.5 1.5 2.5 3.5};

使用这个网格定义网格参数空间。

gp = sdo.GriddedSpace (p{保兑,hvals});

样本参数空间生成所有组合使用进行敏感性分析。默认情况下,sdo.sample生成一个详尽的清单的所有可能的组合参数空间,(保兑,hvals)= (0.2,0.5),(0.6,0.5),(1.0,0.5),…(1.4,3.5),(1.8,3.5),(2.2,3.5)。因此,采样值占24的表行。

值= sdo.sample (gp)
值=24×2表一个h中国画1 0.2 0.5 0.6 0.5 0.5 1.4 0.5 1.8 0.5 2.2 0.5 0.2 1.5 0.6 1.5 - 1 1.5 1.4 1.5 1.8 1.5 2.2 1.5 0.2 2.5 0.6 2.5 1 2.5 1.4 2.5⋮

你可以想象一个视图的采样值分布的样本。

sdo.scatterPlot(值)

MATLAB图

使用sdo.evaluate评估你的设计目标采样参数值。例如,如果您定义了一个成本函数design.m捕捉你的设计目标,可以使用在调用sdo.evaluate如下。

年,公司]= sdo.evaluate (@design p值);

自从R2023a

如果你的模型包含一些参数你要样品在一个网格和其他你想画的随机样本,您可以结合网格和随机参数空间。

下面的例子使用了sdoCSTR模型中详细讨论设计探索使用参数抽样(代码)。打开模型。

mdl =“sdoCSTR”;open_system (mdl);

在这个模型中参数反应堆缸区域一个、身高h进料温度和浓度,FeedCon0FeedTemp0。假设您想要探索你的设计约束,这四个参数的敏感性,在网格采样一个h值而画FeedCon0FeedTemp0从随机分布。

首先,定义一个网格参数空间一个h。使用sdo.getParameterFromModel创建一个数组param.Continuous对象代表一个h。然后,为网格指定值,并创建参数空间。

pg = sdo.getParameterFromModel (mdl, {“一个”,“h”});保兑= {0.2 0.6 1.0 1.4 1.8};hvals = {0.5 1.5 2.5};是= sdo.GriddedSpace (pg,{保兑,hvals});

接下来,定义一个随机参数空间FeedCon0FeedTemp0。创建一个数组的param.Continous对象和指定每个参数的概率分布。对于这个示例,分配这两个变量的正态分布的意思是当前模型中参数值和方差的5%的意思。然后,创建参数空间。

公关= sdo.getParameterFromModel (mdl, {“FeedCon0”,“FeedTemp0”});distCon = makedist (“正常”公关(1)value, 0.05 *公关(1)value);distTemp = makedist (“正常”公关(2)value, 0.05 *公关(2)value);rspace = sdo.ParameterSpace (pr);rspace = setDistribution (rspace,“FeedCon0”,distCon);rspace = setDistribution (rspace,“FeedTemp0”,distTemp);

最后,结合两个参数空间合并成一个新的参数空间。

rspace cspace =结合(是)
cspace = GriddedSpace属性:ParameterValues: {{1 x5细胞}{1}x3细胞[1 x1概率。NormalDistribution] [1 x1概率。N或malDistribution]} Notes: [] Spaces: {[1x1 sdo.GriddedSpace] [1x1 sdo.ParameterSpace]} ParameterNames: {'A' 'h' 'FeedCon0' 'FeedTemp0'} Options: [1x1 sdo.GriddingOptions]

由合并后的空间sdo.GriddedSpace对象。房地产cspace.Spaces显示,cspace包含两个子空间,一个网格空间和一个随机参数空间。房地产cspace.ParameterValues显示,包括有限元网格的空间一个H,随机变量的概率分布FeedCon0FeedTemp0

您现在可以使用sdo.sample画组采样值相结合的空间。默认情况下,样品都详尽的网格,意义的所有可能的组合网格值包含在样本集。假设为每个组合,你想样本随机参数的十倍。提供价值sdo.sampleNumSample论点。

cspace.Options。方法=“详尽”;NumSample = 10;安勤科技= sdo.sample (cspace NumSample)
安勤科技=150×4表ah FeedCon0 FeedTemp0中国画________ _____ 1 0.2 0.5 10.269 275.09 0.6 0.5 10.269 275.09 0.5 10.269 275.09 1.4 0.5 10.269 275.09 1.8 0.5 10.269 275.09 0.2 1.5 10.269 275.09 0.6 1.5 10.269 275.09 1 1.5 10.269 275.09 1.4 1.5 10.269 275.09 1.8 1.5 10.269 275.09 0.2 2.5 10.269 275.09 0.6 2.5 10.269 275.09 1 2.5 10.269 275.09 1.4 2.5 10.269 275.09 1.8 2.5 10.269 275.09 0.2 0.5 10.917 339.77⋮

在这里,每个15的组合(一个,h)值,sdo.sample分配十随机值(Feedcon0,FeedTemp0),导致150套(一个,h,FeedCon0,FeedTemp0)样品。

你也可以有sdo.sample只选择一个随机的(FeedCon0,FeedTemp0为每个()值一个,h)对。为此,设置的采样方法cspace顺序。请注意,在本例中,您创建的cspace使用一个网格的空间是只有gspace.Options。方法=“详尽”。因此,当您样品cspace(一个,h)对还详尽。

cspace.Options。方法=“顺序”;svalues = sdo.sample (cspace)
svalues =15×4表ah FeedCon0 FeedTemp0中国画________ _____ 1 0.2 0.5 9.5682 296.27 0.6 0.5 10.039 273 0.5 9.3929 284.05 1.4 0.5 9.4432 279.34 1.8 0.5 9.9966 329.67 0.2 1.5 10.766 285.92 0.6 1.5 9.6152 306.03 1 1.5 10.186 292.16 1.4 1.5 9.8872 308.11 1.8 1.5 10.559 283.72 0.2 2.5 9.4555 274.32 0.6 2.5 10.016 274.02 1 2.5 10.276 302.2 1.4 2.5 10.55 292.38 1.8 2.5 10.772 292.11

使用sdo.evalute评估你的设计目标在每个采样参数值。例如,如果您定义了一个成本函数设计,你可以使用在调用sdo.evluate如下。

年,公司]= sdo.evaluate (@design p值);

打开模型。

open_system (“sdoHydraulicCylinder”);

从模型中获得的参数。

p = sdo.getParameterFromModel (“sdoHydraulicCylinder”,{“交流”,“K”});

创建一个sdo.ParameterSpace对象指定样本分布。

ps = sdo.ParameterSpace (p);

指定作为拉丁超立方抽样法。

选择= sdo.SampleOptions;opt.Method =“韩”;

生成50个样本参数使用拉丁超立方体抽样。

x = sdo.sample (ps, 50岁的选择);

输入参数

全部折叠

样本参数空间,指定为一个sdo.ParameterSpace(对于随机抽样)或一个对象sdo.GriddedSpace对象(网格采样或随机的混合物和网格采样)。

随机抽样生成数量、指定为一个正整数。

理想情况下,使用最小的样本数量产生有用的结果,因为每个样品需要一个模型评估。随着参数的数量的增加,样品的数量需要探索设计空间普遍增加。相关和回归分析,考虑使用10 * Np样品,Np是采样的数量参数。

N仅适用于随机采样参数,参数中指定一个sdo.ParameterSpace对象或一个sdo.ParameterSpace子空间的组合sdo.GriddedSpace对象。sdo.sample忽略了N参数配置为网格采样,而是返回样品在指定网格值。

例子:One hundred.

取样选项,指定为一个sdo.SampleOptionssdo.GriddingOptions对象。

  • sdo.SampleOptions——指定图纸样本概率分布的方法在一个定义sdo.ParameterSpace对象。

  • sdo.GriddingOptions——指定图纸样本的方法在一个定义的网格的参数值sdo.GriddedSpace对象。

输出参数

全部折叠

参数样本,作为一个表返回。

  • 如果ps是一个sdo.ParameterSpace对象,然后x是一个表N行和Np列,Np参数的数量在吗ps。每一列对应一个参数,每一行对应一个样本的参数。如果N省略了,sdo.sample使用N= 2 * Np + 1

  • 如果ps是一个sdo.GriddedSpace只包含网格参数,然后sdo.sample忽略了N并返回样品整个网格,在网格中指定的选项ps

  • 如果ps是一个sdo.GriddedSpace包含一个random-parameter子空间sdo.sample生成N为每个样本随机参数,结合网格参数,按网格选项。

版本历史

介绍了R2014a

全部展开