Эта тема показывает, как сгенерировать выборки параметра для анализа чувствительности.
Можно выполнить глобальный анализ чувствительности с помощью программного обеспечения Simulink® Design Optimization™. Используя методы, такие как design of experiments (DOE) (также называемый experimental design), можно выбрать набор параметра для анализа чувствительности.
Вы генерируете выборки параметра путем варьирования значения параметров модели Simulink и состояний интереса согласно заданному вероятностному распределению. Эти параметры и состояния коллективно упоминаются как parameters. Каждая комбинация сгенерированных значений параметров упоминается как sample или sample point. Набор выборок упоминается как design space, sample space или parameter set.
После генерации набора параметра вы задаете функцию стоимости путем создания конструктивных требований на сигналах модели. Вы затем оцениваете функцию стоимости для каждой выборки в наборе параметра. Затем вы анализируете отношение между параметрами и требованием, чтобы изучить, как параметры влияют на функцию стоимости.
Можно сгенерировать два вида значений параметров: случайные значения параметров или значения параметров с координатной сеткой.
При генерации случайных значений параметров вы задаете следующие характеристики пространства параметров:
Можно задать характеристики пространства параметров или в инструменте Sensitivity Analysis или в командной строке.
Выберите достаточно выборок, чтобы дать к полезным результатам. Однако каждая оценка модели имеет вычислительный расход и может быть время интенсивная. Как количество увеличений параметров, обычно увеличивается количество выборок, требуемых исследовать пробел проекта. Для корреляционного или регрессионного анализа рассмотрите использование 10Np выборки, где Np является количеством параметров.
Укажите, что метод раньше генерировал выборки. Можно выбрать из следующих методов:
Случайный — Случайные выборки чертятся от вероятностных распределений, заданных для параметров.
Если вы указываете, что корреляция между параметрами, программное обеспечение использует алгоритм Iman-Коновера, чтобы наложить корреляции параметра.
Латинский гиперкуб — латинские выборки гиперкуба чертятся от вероятностных распределений, заданных для параметров. Используйте эту опцию в более систематическом заполняющем пространство подходе, чем случайная выборка. Sobol и Холтон квазислучайные методы выборки являются более заполняющими пространство, чем латинский метод гиперкуба.
Если вы указываете, что корреляция между параметрами, программное обеспечение использует алгоритм Iman-Коновера, чтобы наложить корреляции параметра.
Программное обеспечение Sobol — Requires Statistics and Machine Learning Toolbox™. Sobol квазислучайные последовательности чертятся от вероятностных распределений, заданных для параметров. Используйте этот метод в очень систематическом заполнении.
Рисунок показывает 20 выборок для двух параметров. Выборки сгенерированы от равномерного распределения в интервале от 0 до 1. Случайная выборка может привести к большим разрывам между некоторыми выборками и близко кластеризацией других выборок. Sobol и Холтон квазислучайные методы выборки избегают разрывов и кластеризации выборок. Если у вас есть много параметров в вашем наборе параметра, наборы Sobol дает более систематический пробел, заполняющий, чем Холтон квазислучайные наборы. Для получения дополнительной информации смотрите Генерирующиеся Квазислучайные числа (Statistics and Machine Learning Toolbox).
Если вы указываете, что корреляция между параметрами, программное обеспечение использует алгоритм Iman-Коновера, чтобы наложить корреляции параметра.
Холтон — Программное обеспечение Requires Statistics and Machine Learning Toolbox. Холтон квазислучайные последовательности чертится от вероятностных распределений, заданных для параметров. Как метод Sobol, можно использовать метод Холтона в очень систематическом заполнении. Однако метод Sobol дает более систематическое заполнение пробела, если у вас есть много параметров в вашем наборе параметра. Для получения дополнительной информации смотрите Генерирующиеся Квазислучайные числа (Statistics and Machine Learning Toolbox).
Если вы указываете, что корреляция между параметрами, программное обеспечение использует алгоритм Iman-Коновера, чтобы наложить корреляции параметра.
Программное обеспечение Copula — Requires Statistics and Machine Learning Toolbox. Случайные выборки чертятся от связки. Используйте эту опцию, чтобы наложить корреляции между параметрами с помощью связок.
Можно использовать или Гауссову связку (значение по умолчанию) или t связку. Используйте t связки, когда вероятность экстремальных значений параметров не незначительна (распределение с тяжелым хвостом), и задайте степени свободы. Когда вы увеличиваете степени свободы, t связка сходится к Гауссовой связке, и вероятность экстремальных значений параметров становится незначительной. Следующий рисунок показывает 1 000 выборок, чертивших для двух параметров в интервале от 0 до 1 использования Гауссовых и t связок.
По сравнению с Гауссовой связкой t связка имеет больше выборок, которые представляют экстремумы параметров. Когда степени свободы увеличены, t связка сходится к Гауссовой связке.
Задайте тип корреляции или как порядковую корреляцию Копьеносца или как порядковую корреляцию Кендалла.
Задайте функцию распределения вероятностей и связанные характеристики распределения для каждого параметра. Используйте свое знание системы (эмпирический или теоретический), чтобы выбрать вероятностные распределения.
Программное обеспечение Simulink Design Optimization позволяет вам задавать универсальную форму (значение по умолчанию), нормальное, многочлен, кусочные линейные, и треугольные распределения. Для других распределений вам нужно программное обеспечение Statistics and Machine Learning Toolbox.
Рассмотрите следующие характеристики своих параметров при выборе распределения:
Характеристики параметра | Применимые распределения |
---|---|
Расширяет от - к |
|
Ограниченный в обоих концах |
|
Расширяет от 0 до |
|
Пользовательский дистрибутив | Кусочный линейный |
Для получения дополнительной информации об этих распределениях, смотрите Вероятностные распределения (Statistics and Machine Learning Toolbox) категория.
Задайте корреляцию между параметрами. Алгоритм, используемый, чтобы наложить корреляции параметра, зависит от метода выборки. Для получения дополнительной информации см. Метод Выборки.
В инструменте Sensitivity Analysis, после того, как вы выбрали параметры в наборе параметра, нажимают Generate Values и, выбирают Generate Random Values.
В диалоговом окне Generate Random Parameter Values задайте количество выборок, вероятностных распределений, границ параметра и корреляций и метода выборки. Для получения информации о том, как задать поля в диалоговом окне, нажмите Help.
Сгенерированный набор параметра и стол соответствующего параметра, на который накрывают, отображены в инструменте. Количество строк в столе параметра, на который накрывают, соответствует количеству выборок, которые вы задали.
После генерации значений параметров постройте их, чтобы проверять, совпадают ли сгенерированные значения параметров с намеченными спецификациями. Это релевантно, если вы генерируете небольшое количество случайных выборок для каждого набора параметра. Для получения дополнительной информации смотрите, Смотрят Сгенерированный Набор Параметра.
Для примера смотрите, Идентифицируют Основные параметры для Оценки (графический интерфейс пользователя).
В командной строке используйте sdo.ParameterSpace
задавать пространство параметров. Этот объект задает вероятностные распределения и корреляции для параметров. Используйте этот объект в качестве входа к sdo.sample
для генерации значений параметров от заданного пространства параметров.
Сгенерировать случайные значения параметров:
Задайте количество выборок как второй входной параметр sdo.sample
.
Укажите, что метод раньше генерировал эти выборки с помощью Method
свойство sdo.SampleOptions
объект. Используйте этот объект в качестве входа к sdo.sample
задавать опции выборки.
Если выбранным методом является 'sobol'
или 'halton'
, задайте MethodOptions
свойство sdo.SampleOptions
.
Если выбранным методом является 'copula'
, задайте выбор связки с помощью MethodOptions
свойство sdo.SampleOptions
. Также задайте RankCorrelation
свойство sdo.ParameterSpace
объект.
Задайте вероятностное распределение параметра с помощью ParameterDistributions
свойство sdo.ParameterSpace
объект.
Задайте корреляцию между параметрами, с помощью RankCorrelation
свойство sdo.ParameterSpace
.
После генерации значений параметров постройте сгенерированные значения, чтобы проверять, совпадают ли они с желаемыми спецификациями. Это релевантно, если вы генерируете небольшое количество случайных выборок для каждого набора параметра. Для получения дополнительной информации смотрите, Смотрят Сгенерированный Набор Параметра.
Для примера смотрите, Идентифицируют Основные параметры для Оценки (Код).
В этом примере показано, как сгенерировать случайные значения параметров с пользовательским дистрибутивом при выполнении анализа чувствительности в командной строке. Сгенерируйте 1000 выборки параметра модели, R
, в 5%-й области значений его номинальной стоимости, 10. R
резистор. Резисторы 1%-го допуска удалены производителем, не генерируйте R
значения в 1%-й области значений его номинальной стоимости.
Создайте param.Continuous
объект.
R = param.Continuous('R',10);
Создайте индивидуально настраиваемое вероятностное распределение, pdR
, сконфигурировать пространство параметров.
x = [0.95 0.99 1.01 1.05]*R.Value; F = [0 0.5 0.5 1]; pdR = makedist('PiecewiseLinear','x',x,'Fx',F); x = linspace(0.9*R.Value,1.1*R.Value,1e3); plot(x,pdf(pdR,x));
makedist
задает кусочное линейное распределение для значения резистора, с “отверстием” в 1%-й области значений.
Задайте pdR
как вероятностное распределение для R
параметр в sdo.ParameterSpace
объект.
ps = sdo.ParameterSpace(R,pdR);
Сгенерируйте 1 000 выборок.
Ns = 1000; x = sdo.sample(ps,Ns);
(Необязательно) используйте sdo.scatterPlot
визуализировать выборки и подтверждать выборочное пространство.
Можно сгенерировать значения параметров с координатной сеткой в инструменте Sensitivity Analysis или в командной строке.
Можно сгенерировать параметры с координатной сеткой в инструменте после того, как вы создали набор параметра.
Создайте набор параметра.
В инструменте Sensitivity Analysis, во вкладке Sensitivity Analysis, нажимают Select Parameters.
В диалоговом окне Select Parameters выберите все параметры, которые вы хотите включать в свой набор параметра и нажать OK.
ParamSet
переменная создается в области Parameter Sets инструмента. Текущее значение для каждого параметра в наборе параметра отображено в таблице.
Задайте стартовые значения параметров и gridding метод для генерации сетки.
Во вкладке Sensitivity Analysis нажмите Generate Values и выберите Generate Gridded Values из выпадающего меню.
В диалоговом окне Generate Gridded Parameter Values задайте gridding метод как All Combinations. Инструмент генерирует все возможные комбинации значений, заданных в Values.
Задайте стартовые значения параметров в Values. Значения, которые вы вводите здесь, определяют пространство параметров. Чтобы видеть другие способы задать стартовые значения параметров и gridding методы, нажмите Help.
Сгенерируйте параметры.
Нажмите Overwrite. Параметр установил табличные обновления со сгенерированными значениями параметров с координатной сеткой.
Можно также добавить сгенерированные значения к ранее сгенерированным случайным или значениям параметров с координатной сеткой в столе параметра, на который накрывают. Для этого нажмите Append.
(Необязательно) График сгенерированные значения.
В области Parameter Sets инструмента выберите ParamSet. Во вкладке Plots инструмента выберите Scatter Plot из галереи графиков.
Графики сгенерированы с гистограммами распределения значений параметров, показанных на диагоналях. Недиагональные графики отображают графики рассеивания между парами параметров. Чтобы узнать больше о графиках, смотрите, Взаимодействуют с Графиками в Sensitivity Analysis Tool.
В этом примере показано, как составить таблицу значений параметров с координатной сеткой в командной строке.
Сгенерируйте сетку выборок для двух параметров модели, A
и B
. Варьируйтесь A
между [2,3,4]
и B
между [20,30,40]
.
Создайте param.Continuous
объект.
A = param.Continuous('A',1); B = param.Continuous('B',10);
Задайте значения параметров для генерации сетки.
Avals = [2 3 4]; Bvals = [20 30 40];
Составьте таблицу значений параметров с координатной сеткой. Задайте один столбец для каждого параметра и одну строку для каждой выборки. Имена столбцов должны совпасть с названиями параметра.
[Agrid,Bgrid] = meshgrid(Avals,Bvals); x = table(Agrid(:),Bgrid(:),'VariableNames',{'A','B'});
x = A B _ __ 2 20 2 30 2 40 3 20 3 30 3 40 4 20 4 30 4 40
sdo.SampleOptions
| sdo.sample