В этом примере показов, как использовать Sensitivity Analyzer для исследования поведения ПИ-контроллера для двигателя постоянного тока. Контроллер подвержен изменениям, вызванным допусками компонента, и исследуется влияние на надежность контроллера.
Вы исследуете надежность контроллера, характеризуя компоненты с помощью распределений вероятностей. Вы используете распределения, чтобы сгенерировать случайные выборки и выполнить оценку Монте-Карло проектирования контроллера в этих точках выборки. Вы оцениваете влияние допусков компонента на поведение контроллера и используете статистический анализ, чтобы определить, какие компоненты оказывают наибольшее влияние на соответствие контроллера его требованиям. В этом анализе описывается выбор допусков на компоненты.
Этот пример требует Statistics and Machine Learning Toolbox™.
Контроллер позволяет угловому положению двигателя постоянного тока совпадать с желаемым опорным значением. Нагрузка на двигатель подвержена нарушениям порядка, и контроллер должен отклонить эти нарушения порядка. Модель Simulink может использоваться, чтобы убедиться, насколько хорошо контроллер отклоняет нарушение порядка шага через 1 секунду.
open_system('sdoMotorPosition');
Усиления ПИ-контроллера, Kp
и Ki
, установлены с помощью резисторов в схеме ниже:
Сопротивления R1
через R4
47 кОм, 180 кОм, 10 кОм и 10 кОм соответственно. Они были выбраны для установки Kp
и Ki
к значениям, которые позволяют контроллеру удовлетворить требования к подавлению помех. Однако на практике фактические значения резисторов будут отличаться от номинальных таковых в пределах допуска. Это вызывает обеспокоенность по поводу того, будет ли фактический контроллер по-прежнему удовлетворять требованиям. Чтобы исследовать эффект различных значений сопротивления, используйте Sensitivity Analyzer. В модели Simulink на вкладке Apps щелкните Sensitivity Analyzer в разделе Системы управления, чтобы открыть приложение.
Контроллер должен поддерживать двигатель в ссылку положении в присутствии нарушений порядка. Если происходит нарушение порядка шага, двигатель должен отклоняться не более 20 степени и должен отступить в течение 5 степеней от ссылки положения на 4 секунды после нарушения порядка.
Загрузите ранее указанные проекты требования к подавлению помех. В приложении щелкните Открыть сеанс и выберите Открыть из рабочего пространства модели в раскрывающемся меню.
Можно построить график требований и проверить, что они выполняются, когда сопротивления имеют номинальные значения. В области Результаты в браузере данных щелкните правой кнопкой мыши по LowerBound
и выберите Plot and Simulate. Сделайте то же самое для UpperBound
требование.
Положение двигателя удовлетворяет подавление помех требованиям, когда сопротивления равны их номинальным значениям. Однако на практике фактические значения резисторов будут отличаться от номинальных таковых, и нам нужно определить, будет ли контроллер по-прежнему отвечать требованиям. Нажмите Select Parameters и составьте новый набор параметров. Это создает ParamSet
в области Наборы параметров приложения Укажите, что R1
, R2
, R3
, и R4
находятся в наборе параметров и нажмите OK.
Щелкните Сгенерировать значения (Generate Values) и сгенерируйте случайные значения. Для повторяемых результатов сбросьте состояние генератора случайных чисел в MATLAB ®.
rng('default')
В диалоговом окне «Генерация случайных параметров» задайте 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].
Нажмите OK, чтобы сгенерировать значения параметров. Сгенерированные значения хранятся в ParamSet
переменная в Набор параметров области приложения. (Обратите внимание, что из-за генератора случайных чисел конкретные значения в таблице ниже могут отличаться от того, что вы получаете при запуске примера.)
Чтобы построить график набора параметров, нажмите ParamSet
в области Наборы параметров браузера приложения. На вкладке Графики выберите График Поля Точек в галерее графиков. Рисунок показывает гистограмму сгенерированных параметров на диагональном и парном параметрах, графиках поля точек от диагонали. Каждый маркер на графике представляет одну строку ParamSet
таблица, при этом каждая строка одновременно отображается на всех графиках поля точек. Можно использовать вкладку Вид (View), чтобы расположить размещение таблицы и построить график так, чтобы они оба были видны.
Оцените требования для каждой строки значений параметров в таблице, чтобы увидеть, удовлетворены ли требования. На вкладке Анализ чувствительности нажмите Выбрать для оценки. По умолчанию все требования выбираются для оценки. Щелкните Оценить модель (Evaluate Model), чтобы вычислить UpperBound
и LowerBound
требования к каждой строке значений параметров в ParamSet
. Обратите внимание, что вы можете ускорить оценку при помощи параллельных вычислений, если у вас есть Parallel Computing Toolbox™, или при помощи быстрого перезапуска. Для получения дополнительной информации смотрите «Использование параллельных вычислений для анализа чувствительности» и «Использование быстрого режима перезапуска во время анализа чувствительности» в документации Simulink Design Optimization™.
Результаты графика поля точек, показывающие каждое требование по сравнению с каждым параметром, обновляются во время оценки модели. В конце оценки показана таблица с результатами оценки. Каждая строка в таблице результатов анализа содержит значения для R1
, R2
, R3
, R4
и результирующие значения требований UpperBound
и LowerBound
. Результаты оценки хранятся в EvalResult
переменная в области Результаты приложения. Вы можете использовать вкладку Вид, чтобы расположить размещение таблицы и построить график, чтобы они оба были видны.
Для сортировки таблицы результатов анализа щелкните по заголовкам столбцов в таблице. The LowerBound
требование по-прежнему выполняется, о чем свидетельствует тот факт, что все результаты оценки для требования, связанного с сигналом, являются отрицательными. Это не так для UpperBound
требование, которое имеет несколько положительных значений. При выборе строк таблицы с этими положительными значениями можно также увидеть соответствующие точки, подсвеченные в график поля точек.
Использование 5% компонентов допуска привело к нарушению UpperBound
требование. Точность компонентов с 1% допуском удовлетворяет требования проекта, но они более дорогие, поэтому желательно использовать только столько, сколько необходимо. Можно использовать статистический анализ для определения компонентов, которые в наибольшей степени влияют на требования проекта.
На вкладке Statistics выберите различные анализы, которые необходимо выполнить, включая методы корреляции и стандартизированной регрессии и линейные и ранжированные типы обработки. Щелкните Вычислить статистику. Результат анализа хранится в StatsResult
в области Результаты приложения и график торнадо показывает результаты анализа. Для каждого требования график торнадо показывает наиболее влиятельные параметры в верхней части, а другие в порядке уменьшения величины их влияния на требование. Для UpperBound
требование, R3
и R4
иметь наибольшее влияние, поэтому мы попробуем заменить их более высокой точностью 1% компонентов.
Исследуйте использование 1% допусков компонента только для резисторов R3
и R4
. На вкладке Анализ чувствительности щелкните Сгенерировать значения и сгенерируйте значения сетки. Для R1
и R2
, укажите, что номинальное значение должно возмущаться на плюс-минус 5%. Для R3
и R4
, задайте, что номинальное значение должно возмущаться на плюс-минус 1%.
Нажмите Перезаписать, чтобы сгенерировать новые значения параметров. Чтобы построить график набора параметров, нажмите ParamSet
в области Наборы параметров браузера приложения. На вкладке Графики выберите График Поля Точек в галерее графиков.
На вкладке Анализ чувствительности (Sensitivity Analysis) щелкните Оценить модель (Evaluate Model). Требования оцениваются для каждой строки в таблице значений параметров, и результаты хранятся в EvalResults_1
показано в области Результаты приложения. График поля точек результатов оценки и таблица результатов оценки показывают, что оба требования удовлетворены для всех комбинаций значений компонентов.
Этот Sensitivity Analyzer использовался для исследования эффекта стандартных точных компонентов на проектные требования ПИ-контроллера. При стандартной точности компонентов некоторые требования были признаны нарушенными. Статистический анализ использовался, чтобы определить, какие параметры больше всего влияют на требования. Анализ привел к замене только двух из четырех компонентов на наиболее дорогостоящие высокоточные компоненты.
Закройте модель.
bdclose('sdoMotorPosition')