В этом примере показано, как использовать инструмент Sensitivity Analysis, чтобы исследовать поведение ПИ-контроллера для двигателя постоянного тока. Контроллер восприимчив к изменениям, вызванным допусками компонента, и удар на надежность контроллера исследуется.
Вы исследуете надежность контроллера путем охарактеризования компонентов с помощью вероятностных распределений. Вы используете распределения, чтобы сгенерировать случайные выборки и выполнить оценку Монте-Карло проектирования контроллера в этих точках выборки. Вы оцениваете удар допусков компонента на поведении контроллера и используете статистический анализ, чтобы определить, какие компоненты имеют большую часть влияния на то, удовлетворяет ли контроллер его требования. Этот анализ ведет выбор допусков компонента.
Этот пример требует Statistics and Machine Learning Toolbox™.
Контроллер позволяет угловому положению двигателя постоянного тока совпадать с желаемым ссылочным значением. Нагрузка на двигатель подвергается воздействиям, и контроллер должен отклонить эти воздействия. Модель Simulink может использоваться, чтобы зондировать, как хорошо контроллер отклоняет воздействие шага в 1 секунду.
open_system('sdoMotorPosition');
Усиления ПИ-контроллера, 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 использовался, чтобы исследовать эффект стандартных компонентов точности на конструктивных требованиях ПИ-контроллера. Со стандартными компонентами точности некоторые требования, как находили, были нарушены. Статистический анализ использовался, чтобы идентифицировать который параметры большая часть влияния требования. Анализ привел к замене только двух из этих четырех компонентов с большинством дорогостоящих компонентов высокой точности.
Закройте модель.
bdclose('sdoMotorPosition')