В этом разделе показано, как сгенерировать выборки параметров для анализа чувствительности.
Можно выполнить глобальный анализ чувствительности с помощью Simulink® Проектируйте Optimization™ программное обеспечение. Используя методы, такие как design of experiments (DOE) (также называемые experimental design), можно выбрать набор параметров для анализа чувствительности.
Вы генерируете выборки параметров путем изменения значения параметров модели Simulink и интересующих состояний в соответствии с заданным распределением вероятностей. Эти параметры и состояния в совокупности называются parameters. Каждая комбинация сгенерированных значений параметров упоминается как sample или sample point. Набор выборок упоминается как design space, sample space или parameter set.
После генерации набора параметров вы задаете функцию затрат путем создания проекта требований к сигналам модели. Затем вычисляется функция затрат для каждой выборки в наборе параметров. Затем вы анализируете отношение между параметрами и требованием, чтобы понять, как параметры влияют на функцию затрат.
Можно сгенерировать два вида значений параметров: случайные значения параметров или значения параметров с сеткой.
При генерации значений случайных параметров вы задаете следующие характеристики пространства параметров:
Можно задать характеристики пространства параметров либо в Sensitivity Analyzer, либо в командной строке.
Выберите достаточное количество выборок, чтобы получить полезные результаты. Однако каждая оценка модели имеет вычислительные затраты и может быть интенсивной во времени. Когда количество параметров увеличивается, количество выборок, необходимых для исследования проектного пространства, обычно увеличивается. Для корреляционного или регрессионного анализа рассмотрите использование 10 Np выборок, где Np - количество параметров.
Укажите метод, используемый для генерации выборок. Вы можете выбрать один из следующих методов:
Случайный - Случайные выборки рисуются из распределений вероятностей, заданной для параметров.
Если вы задаете корреляцию между параметрами, программное обеспечение использует алгоритм Iman-Conover, чтобы наложить корреляции параметров.
Латинский гиперкуб - выборки латинского гиперкуба берутся из распределений вероятностей, заданной для параметров. Используйте эту опцию для более систематического подхода заполнения пространства, чем случайная выборка. Методы квазирандомной выборки Соболь и Халтон являются более пространственными, чем латинский метод гиперкуба.
Если вы задаете корреляцию между параметрами, программное обеспечение использует алгоритм Iman-Conover, чтобы наложить корреляции параметров.
Sobol - Требует программного обеспечения Statistics and Machine Learning Toolbox™. Квазирандомные последовательности Соболь берутся из распределений вероятностей, заданной для параметров. Используйте этот метод для высоко систематического заполнения пространства.
Рисунок показывает 20 выборки для двух параметров. Выборки генерируются из равномерного распределения в интервале от 0 до 1. Случайная выборка может привести к большим погрешностям между некоторыми выборками и тесной кластеризации других выборок. Методы квазирандомной выборки Соболь и Халтон избегают пробелов и кластеризации образцов. Если у вас есть много параметров в наборе параметров, Sobol sets дает более систематическое заполнение пространства, чем Halton quasirandom sets. Для получения дополнительной информации смотрите Генерация квазислучайных чисел (Statistics and Machine Learning Toolbox).
Если вы задаете корреляцию между параметрами, программное обеспечение использует алгоритм Iman-Conover, чтобы наложить корреляции параметров.
Halton - требует программного обеспечения Statistics and Machine Learning Toolbox. Последовательности Halton quasirandom берутся из распределений вероятностей, заданной для параметров. Как и метод Соболя, можно использовать метод Хэлтона для высоко систематического заполнения пространства. Однако метод Соболь дает более систематическое заполнение пространства, если у вас есть много параметров в наборе параметров. Для получения дополнительной информации смотрите Генерация квазислучайных чисел (Statistics and Machine Learning Toolbox).
Если вы задаете корреляцию между параметрами, программное обеспечение использует алгоритм Iman-Conover, чтобы наложить корреляции параметров.
Copula - требует программного обеспечения Statistics and Machine Learning Toolbox. Случайные выборки берутся из копулы. Используйте эту опцию, чтобы наложить корреляции между параметрами с помощью копул.
Можно использовать либо Гауссову копулу (по умолчанию), либо t копулу. Используйте t копул, когда вероятность экстремальных значений параметров не незначительна (распределение тяжелохвосто), и задайте степени свободы. Когда вы увеличиваете степени свободы, t-копула сходится к Гауссовой копуле, и вероятность экстремальных значений параметров становится незначительной. Следующий рисунок показывает 1000 выборок, нарисованных для двух параметров в интервале от 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.
В диалоговом окне «Генерация случайных Значений параметров» задайте количество выборок, распределений вероятностей, границы параметров и корреляции и метод дискретизации. Для получения информации о том, как задать поля в диалоговом окне, нажмите 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);
Сгенерируйте 1000 выборки.
Ns = 1000; x = sdo.sample(ps,Ns);
(Необязательно) Использование sdo.scatterPlot
чтобы визуализировать выборки и подтвердить пространство выборок.
Можно сгенерировать значения параметров с сеткой в Sensitivity Analyzer или в командной строке.
Вы можете сгенерировать параметры с сеткой в приложении после того, как вы создали набор параметров.
Создайте набор параметров.
В Sensitivity Analyzer, на вкладке Sensitivity Analysis, нажмите Select Parameters.
В диалоговом окне Select Parameters выберите все параметры, которые вы хотите включить в свой набор параметров, и нажмите OK.
A ParamSet
переменная создается в Parameter Sets области приложения. Текущее значение для каждого параметра в наборе параметров отображается в таблице.
Задайте значения начальных параметров и метод сетки для генерации сетки.
На вкладке Анализ чувствительности щелкните Generate Values и выберите Generate Gridded Values из раскрывающегося меню.
В диалоговом окне «Генерация значений параметров сетки» задайте метод сетки следующим All Combinations. Приложение генерирует все возможные комбинации значений, заданных в Values.
Задайте значения начальных параметров в Values. Значения, которые вы здесь вводите, определяют пространство параметров. Чтобы увидеть другие способы задать значения начальных параметров и методы сетки, нажмите Help.
Сгенерируйте параметры.
Нажмите Overwrite. Таблица набора параметров обновляется с помощью сгенерированных значений параметров с сеткой.
Можно также добавить сгенерированные значения к ранее сгенерированным случайным или сетчатым значениям параметров в таблице набора параметров. Для этого нажмите Append.
(Необязательно) Постройте график сгенерированных значений.
В Parameter Sets области приложения выберите ParamSet. На вкладке Plots приложения выберите Scatter Plot из галереи графиков.
Графики сгенерированы гистограммами распределения значений параметров, показанных на диагоналях. Off-диагональные графики отображают графики поля точек между парами параметров. Дополнительные сведения о графиках см. в разделе «Взаимодействие с графиками» Sensitivity Analyzer.
Эта функциональность не поддерживается в Simulink Online.
В этом примере показано, как создать таблицу значений параметров с сеткой в командной строке.
Сгенерируйте сетку выборок для двух параметров модели, 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