Сгенерируйте выборки параметров для анализа чувствительности

В этом разделе показано, как сгенерировать выборки параметров для анализа чувствительности.

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

Примите во внимание следующие характеристики ваших параметров при выборе распределения:

Характеристики параметраПрименимые распределения

Расширяется от - кому

  • Нормальный

  • Экстремальное значение

  • Обобщенное экстремальное значение - Single-ended или from - кому , в зависимости от значений распределительных параметров.

  • Логистический - тяжелый хвостатый по сравнению с нормальным распределением.

  • t шкала местоположения - тяжелая хвостатая по сравнению с нормальным распределением.

Ограничено на обоих концах

  • Униформа

  • Бета

  • Биномиальный - дискретное распределение

  • Многочлен - дискретное распределение

  • Кусочно-линейный

  • Треугольный

Расширение от 0 до

  • Бирнбаум-Сондерс

  • Шум

  • Экспоненциал

  • Гамма

  • Обобщенное экстремальное значение - Single-ended или from - кому , в зависимости от значений параметров.

  • Обратный Гауссов

  • Логарифмическая логистика

  • Логарифмический режим

  • Nakagami

  • Отрицательный биномиал - дискретное распределение

  • Пуассон - дискретное распределение

  • Рэлей

  • Rician

  • Weibull

Настраиваемое распределение

Кусочно-линейный

Для получения дополнительной информации об этих распределениях смотрите категорию «Распределения вероятностей» (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% области значений от его номинального значения.

  1. Создайте param.Continuous объект.

    R = param.Continuous('R',10);
  2. Создайте настраиваемое распределение вероятностей, 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%.

  3. Задайте pdR как распределение вероятностей для R параметр в sdo.ParameterSpace объект.

    ps = sdo.ParameterSpace(R,pdR);
  4. Сгенерируйте 1000 выборки.

    Ns = 1000;
    x = sdo.sample(ps,Ns);
  5. (Необязательно) Использование sdo.scatterPlot чтобы визуализировать выборки и подтвердить пространство выборок.

Сгенерируйте значения параметров с сеткой

Можно сгенерировать значения параметров с сеткой в Sensitivity Analyzer или в командной строке.

Сгенерируйте значения параметров с привязкой к сетке в Sensitivity Analyzer

Вы можете сгенерировать параметры с сеткой в приложении после того, как вы создали набор параметров.

  1. Создайте набор параметров.

    В Sensitivity Analyzer, на вкладке Sensitivity Analysis, нажмите Select Parameters.

    В диалоговом окне Select Parameters выберите все параметры, которые вы хотите включить в свой набор параметров, и нажмите OK.

    A ParamSet переменная создается в Parameter Sets области приложения. Текущее значение для каждого параметра в наборе параметров отображается в таблице.

  2. Задайте значения начальных параметров и метод сетки для генерации сетки.

    На вкладке Анализ чувствительности щелкните Generate Values и выберите Generate Gridded Values из раскрывающегося меню.

    В диалоговом окне «Генерация значений параметров сетки» задайте метод сетки следующим All Combinations. Приложение генерирует все возможные комбинации значений, заданных в Values.

    Задайте значения начальных параметров в Values. Значения, которые вы здесь вводите, определяют пространство параметров. Чтобы увидеть другие способы задать значения начальных параметров и методы сетки, нажмите Help.

  3. Сгенерируйте параметры.

    Нажмите Overwrite. Таблица набора параметров обновляется с помощью сгенерированных значений параметров с сеткой.

    Можно также добавить сгенерированные значения к ранее сгенерированным случайным или сетчатым значениям параметров в таблице набора параметров. Для этого нажмите Append.

  4. (Необязательно) Постройте график сгенерированных значений.

    В Parameter Sets области приложения выберите ParamSet. На вкладке Plots приложения выберите Scatter Plot из галереи графиков.

    Графики сгенерированы гистограммами распределения значений параметров, показанных на диагоналях. Off-диагональные графики отображают графики поля точек между парами параметров. Дополнительные сведения о графиках см. в разделе «Взаимодействие с графиками» Sensitivity Analyzer.

Эта функциональность не поддерживается в Simulink Online.

Сгенерируйте значения параметров с сеткой в командной строке

В этом примере показано, как создать таблицу значений параметров с сеткой в командной строке.

Сгенерируйте сетку выборок для двух параметров модели, A и B. Переменные A между [2,3,4] и B между [20,30,40].

  1. Создайте param.Continuous объект.

    A = param.Continuous('A',1);
    B = param.Continuous('B',10);
  2. Задайте значения параметров для генерации сетки.

    Avals = [2 3 4];
    Bvals = [20 30 40];
  3. Составьте таблицу значений параметров в сетке. Укажите по одному столбцу для каждого параметра и по одной строке для каждой выборки. Имена столбцов должны совпадать с именами параметров.

    [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

См. также

|

Похожие темы

Для просмотра документации необходимо авторизоваться на сайте