Эта тема показывает, как сгенерировать выборки параметра для анализа чувствительности.
Можно выполнить глобальный анализ чувствительности с помощью Simulink® Программное обеспечение Design Optimization™. Используя методы, такие как design of experiments (DOE) (также называемый experimental design), можно выбрать набор параметров для анализа чувствительности.
Вы генерируете выборки параметра путем варьирования значения параметров модели Simulink и состояний интереса согласно заданному вероятностному распределению. Эти параметры и состояния коллективно упоминаются как parameters. Каждая комбинация сгенерированных значений параметров упоминается как sample или sample point. Набор выборок упоминается как design space, sample space или parameter set.
После генерации набора параметров вы задаете функцию стоимости путем создания конструктивных требований на сигналах модели. Вы затем оцениваете функцию стоимости для каждой выборки в наборе параметров. Затем вы анализируете отношение между параметрами и требованием, чтобы изучить, как параметры влияют на функцию стоимости.
Можно сгенерировать два вида значений параметров: случайные значения параметров или значения параметров с координатной сеткой.
При генерации случайных значений параметров вы задаете следующие характеристики пространства параметров:
Можно задать характеристики пространства параметров или в Sensitivity Analyzer или в командной строке.
Выберите достаточно выборок, чтобы привести к полезным результатам. Однако каждая оценка модели имеет вычислительный расход и может быть время интенсивная. Как количество увеличений параметров, обычно увеличивается количество отсчетов, требуемое исследовать пробел проекта. Для корреляционного или регрессионного анализа рассмотрите использование 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 Analyzer, после того, как вы выбрали параметры в наборе параметров, нажимают Generate Values и, выбирают Generate Random Values.
В диалоговом окне Generate Random Parameter Values задайте количество отсчетов, вероятностные распределения, границы параметра и корреляции и метод выборки. Для получения информации о том, как задать поля в диалоговом окне, нажмите Help.
Сгенерированный набор параметров и соответствующая таблица набора параметров отображены в приложении. Количество строк в таблице набора параметров соответствует количеству отсчетов, которое вы задали.
После генерации значений параметров постройте их, чтобы проверять, совпадают ли сгенерированные значения параметров с намеченными техническими требованиями. Это релевантно, если вы генерируете небольшое количество случайных выборок для каждого набора параметров. Для получения дополнительной информации смотрите, Смотрят Сгенерированный Набор параметров.
Для примера смотрите, Идентифицируют Основные параметры для Оценки (графический интерфейс пользователя).
Эта функциональность не поддерживается в Simulink Online™.
В командной строке используйте 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 Analyzer или в командной строке.
Можно сгенерировать параметры с координатной сеткой в приложении после того, как вы создали набор параметров.
Создайте набор параметров.
В Sensitivity Analyzer, во вкладке 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 Analyzer.
Эта функциональность не поддерживается в Simulink Онлайн.
В этом примере показано, как составить таблицу значений параметров с координатной сеткой в командной строке.
Сгенерируйте сетку выборок для двух параметров модели, 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.sample
| sdo.SampleOptions