Эта тема показывает, как сгенерировать выборки параметра для анализа чувствительности.
Можно выполнить глобальный анализ чувствительности с помощью программного обеспечения 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