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

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

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

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

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

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

  • Нормальный

  • Экстремум

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

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

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

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

  • Универсальная форма

  • \beta

  • Бином — дискретное распределение

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

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

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

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

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

  • Шум

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

  • \Gamma

  • Обобщенный экстремум — Несимметричный или от - к , В зависимости от значений параметров.

  • Гауссова инверсия

  • Логистический журналом

  • Логарифмически нормальный

  • Nakagami

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

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

  • Рэлеевский

  • Rician

  • Weibull

Пользовательский дистрибутив

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

Для получения дополнительной информации об этих распределениях, смотрите Вероятностные распределения (Statistics and Machine Learning Toolbox) категория.

Корреляции параметра

Задайте корреляцию между параметрами. Алгоритм, используемый, чтобы наложить корреляции параметра, зависит от метода выборки. Для получения дополнительной информации см. Метод Выборки.

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

В Sensitivity Analyzer, после того, как вы выбрали параметры в наборе параметров, нажимают 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%-й области значений его номинальной стоимости.

  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. Сгенерируйте 1 000 выборок.

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

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

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

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

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

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

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

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

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

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

    Во вкладке Sensitivity Analysis нажмите Generate Values и выберите Generate Gridded Values из выпадающего меню.

    В диалоговом окне Generate Gridded Parameter Values задайте gridding метод как All Combinations. Приложение генерирует все возможные комбинации значений, заданных в Values.

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

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

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

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

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

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

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

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

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

Сгенерируйте сетку выборок для двух параметров модели, 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

Смотрите также

|

Похожие темы