Этот пример показывает, как использовать инструмент Sensitivity Analysis, чтобы исследовать поведение контроллера PI для двигателя постоянного тока. Контроллер восприимчив к изменениям, вызванным допусками компонента, и влияние на надежность контроллера исследуется.
Вы исследуете надежность контроллера путем охарактеризования компонентов с помощью распределений вероятностей. Вы используете дистрибутивы, чтобы сгенерировать случайные выборки и выполнить оценку Монте-Карло проектирования контроллера в этих точках выборки. Вы оцениваете влияние допусков компонента на поведении контроллера и используете статистический анализ, чтобы определить, какие компоненты имеют большую часть влияния на то, удовлетворяет ли контроллер его требования. Этот анализ ведет выбор допусков компонента.
Этот пример требует Statistics and Machine Learning Toolbox™.
Контроллер позволяет угловому положению двигателя постоянного тока совпадать с желаемым ссылочным значением. Нагрузка на двигатель подвергается воздействиям, и контроллер должен отклонить эти воздействия. Модель Simulink может использоваться, чтобы зондировать, как хорошо контроллер отклоняет воздействие шага в 1 секунду.
open_system('sdoMotorPosition');
Усиления контроллера PI, Kp
и Ki
, установлены с помощью резисторов в схеме ниже:
Сопротивления R1
через R4
составляют 47 кОм, 180 кОм, 10 кОм и 10 кОм соответственно. Они были выбраны, чтобы установить Kp
и Ki
к значениям, которые позволяют контроллеру удовлетворить требования для подавления помех. Однако на практике фактические значения резистора будут отличаться от номинальных единиц в допуске. Это ставит вопрос о том, удовлетворит ли фактический контроллер все еще требования. Чтобы исследовать эффект различных значений сопротивления, используйте инструмент Sensitivity Analysis. В меню Simulink Analysis нажмите Sensitivity Analysis..., чтобы открыть инструмент.
Контроллер должен поддержать двигатель в ссылочном положении в присутствии воздействий. Если воздействие шага происходит, двигатель должен отклонить не больше, чем 20 градусов и должен возвратиться к в 5 градусах ссылочного положения на 4 секунды после воздействия.
Загрузите ранее заданные конструктивные требования для подавления помех. В инструменте нажмите Open Session и выберите Open из рабочего пространства модели в выпадающем меню.
Можно построить требования и проверить, что им соответствуют, когда сопротивления имеют номинальную стоимость. В области Results в браузере данных щелкните правой кнопкой по требованию LowerBound
и выберите Plot и Simulate. Сделайте то же самое для требования UpperBound
.
Моторное положение удовлетворяет требования подавления помех, когда сопротивления по их номинальной стоимости. Однако на практике фактические значения резистора будут отличаться от номинальных единиц, и мы должны определить, удовлетворит ли контроллер все еще требования. Нажмите Select Parameters и сделайте новый набор параметра. Это создает ParamSet
в области Parameter Sets инструмента. Укажите, что R1
, R2
, R3
и R4
находятся в наборе параметра и нажимают ОК.
Нажмите Generate Values и сгенерируйте случайные значения. Для повторяемых результатов, сброс состояние генератора случайных чисел в MATLAB®.
rng('default')
В диалоговом окне Generate Random Parameters задайте 500 выборок, чтобы сгенерировать.
Задайте распределение вероятностей для каждого параметра. Стандартные резисторы точности совпадают со своим номинальным значением компонента в допуске 5%. Это могло быть смоделировано с помощью универсального распределения вероятностей. Однако, потому что резисторы, которые измеряются в 1% номинальной стоимости, выделены и проданы в качестве резисторов точности с более высокой ценой, 5% резисторов могут быть более точно смоделированы распределением вероятностей с хорошо, который исключает значения в 1% номинала. Это может быть смоделировано с помощью кусочного линейного распределения вероятностей, если Statistics and Machine Learning Toolbox™ доступен.
Задайте распределение R1
как кусочное линейный с 4 точками. Задайте x значения как [0.95 0.99 1.01 1.05] времена 47 (номинальная стоимость резистора). Задайте значения Fx как [0 0.5 0.5 1]; это значения кумулятивной функции распределения, соответствующей каждому x значению. Точно так же установите дистрибутивы R2
, R3
и R4
к кусочному, линейному с 4 точками, x значения как [0.95 0.99 1.01 1.05] времена номинальная стоимость (180, 10, и 10, соответственно), и значения Fx как [0 0.5 0.5 1].
Нажмите ОК, чтобы сгенерировать значения параметров. Сгенерированные значения хранятся в переменной ParamSet
в области Parameter Set инструмента. (Обратите внимание на то, что из-за генератора случайных чисел, определенные значения в приведенной ниже таблице могут отличаться от того, что вы получаете при выполнении примера.)
Чтобы построить набор параметра нажимают ParamSet
в области Parameter Sets браузера инструмента. Во вкладке Plots выберите Scatter Plot в галерее графика. График показывает гистограмму сгенерированных параметров на диагональных и попарных графиках рассеивания параметра от диагонали. Каждый маркер на графике представляет одну строку таблицы ParamSet
с каждой строкой, одновременно отображаемой на всех графиках рассеивания. Можно использовать вкладку View, чтобы расположить размещение таблицы и графика, таким образом, они оба видимы.
Оцените требования для каждой строки значений параметров в таблице, чтобы видеть, удовлетворены ли требования. Во вкладке Sensitivity Analysis нажмите Select for Evaluation. По умолчанию все требования выбраны, чтобы быть оцененными. Нажмите Evaluate Model, чтобы оценить UpperBound
и требования LowerBound
для каждой строки значений параметров в ParamSet
. Обратите внимание, что можно ускорить оценку при помощи параллельных вычислений, если у вас есть Parallel Computing Toolbox™, или при помощи быстрого перезапуска. Для получения дополнительной информации см., что "Параллельные вычисления использования для Анализа чувствительности" и "Используют Быстрый Режим Перезапуска Во время Анализа чувствительности" в документации Simulink Design Optimization™.
График рассеивания результатов, показывающий каждое требование по сравнению с каждым параметром, обновляется во время образцовой оценки. В конце оценки показывают таблицу с результатами оценки. Каждая строка в таблице результата оценки содержит значения для R1
, R2
, R3
, R4
и получившихся значений требования UpperBound
и LowerBound
. Результаты оценки хранятся в переменной EvalResult
в области Results инструмента. Можно использовать вкладку View, чтобы расположить размещение таблицы и графика, таким образом, они оба видимы.
Можно отсортировать таблицу результатов оценки путем нажатия на заголовки столбцов в таблице. Требование LowerBound
все еще удовлетворяется, как обозначено тем, что все результаты оценки для связанного требования сигнала отрицательны. Дело не в этом для требования UpperBound
, которое имеет несколько положительных значений. Путем выбора строк таблицы с этими положительными значениями можно также видеть соответствующие точки, подсвеченные в графике рассеивания.
Используя 5% компонентов допуска закончился в нарушение требования UpperBound
. Компоненты точности с 1%-м допуском удовлетворили бы конструктивные требования, но они являются более дорогостоящими, таким образом, желательно использовать только столько же по мере необходимости. Можно использовать статистический анализ, чтобы идентифицировать компоненты что большая часть влияния конструктивные требования.
Во вкладке Statistics выберите множество исследований, которые будут сделаны, включая Корреляцию и Стандартизированные методы Регрессии и Линейные и Оцениваемые типы обработки. Нажмите Compute Statistics. Результат анализа хранится в StatsResult
в области Results инструмента, и график торнадо показывает результаты анализа. Для каждого требования график торнадо показывает самые влиятельные параметры наверху и другие в порядке убывания значения их влияния на требование. Для требования UpperBound
R3
и R4
имеют большую часть влияния, таким образом, мы попытаемся заменить их более высокими компонентами 1% точности.
Исследуйте использование 1%-х допусков компонента только к резисторам R3
и R4
. Во вкладке Sensitivity Analysis нажмите Generate Values и сгенерируйте значения с координатной сеткой. Для R1
и R2
, укажите, что номинальная стоимость должна быть встревожена на plus-minus 5%. Для R3
и R4
, укажите, что номинальная стоимость должна быть встревожена на plus-minus 1%.
Нажмите Overwrite, чтобы сгенерировать новые значения параметров. Чтобы построить набор параметра нажимают ParamSet
в области Parameter Sets браузера инструмента. Во вкладке Plots выберите Scatter Plot в галерее графика.
Во вкладке Sensitivity Analysis нажмите Evaluate Model. Требования оценены для каждой строки в таблице значений параметров, и результаты хранятся в EvalResults_1
, показанном в области Results инструмента. График рассеивания результатов оценки и таблица результатов оценки показывают, что оба требования удовлетворяются для всех комбинаций значений компонента.
Инструмент Sensitivity Analysis использовался, чтобы исследовать эффект стандартных компонентов точности на конструктивных требованиях контроллера PI. Со стандартными компонентами точности некоторые требования, как находили, были нарушены. Статистический анализ использовался, чтобы идентифицировать который параметры большая часть влияния требования. Анализ привел к замене только двух из этих четырех компонентов с большинством дорогостоящих компонентов высокой точности.
Закройте модель.
bdclose('sdoMotorPosition')