Разработайте оптимизацию, чтобы удовлетворить требования частотного диапазона (графический интерфейс пользователя)

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

Этот пример требует Simulink® Control Design™.

Модель приостановки

Откройте модель Simulink.

open_system('sdoSimpleSuspension')

Модели массового пружинного демпфера представляют простые системы подвески, и для этого примера мы настраиваем систему, чтобы удовлетворить типичные требования приостановки. Модель реализует систему второго порядка, представляющую массовый пружинный демпфер с помощью блоков Simulink, и включает:

  • блок усиления Mass параметризован общей приостановленной массой, m0+mLoad. Общая масса является суммой номинальной массы, |m0 |, и переменной массы загрузки, mLoad.

  • блок усиления Damper параметризован коэффициентом затухания, b.

  • блок усиления Spring параметризован коэффициентом упругости, k.

  • два блока интегратора, чтобы вычислить массовую скорость и положение.

  • блок Band-Limited Disturbance Force, прикладывающий силу воздействия к массе. Сила воздействия принята, чтобы быть ограниченной полосой белый шум.

Моделируйте модель, чтобы просмотреть отклик системы к прикладывавшей силе воздействия.

Проблема проектирования

Начальная система имеет пропускную способность, которая слишком высока. Это видно от остроконечного сигнала положения. Вы настраиваете пружину и значения демпфера, чтобы удовлетворить следующие требования:

  • -3dB системная пропускная способность не должна превышать 10 рад/с.

  • Отношение затухания системы должно быть меньше, чем 1/sqrt (2). Это гарантирует, что никакие частоты в полосе передачи не усилены системой.

  • Минимизируйте ожидаемую интенсивность отказов системы. Ожидаемая интенсивность отказов описана распределением Weibull, зависящим от массы, значений пружины и демпфера.

  • Эти требования должны все быть удовлетворены, когда масса загрузки колеблется от 0 до 20.

Откройте Response Optimization Tool

В меню анализа модели Simulink выберите Response Optimization.

Задайте переменные проекта

В Сетлисте Переменных Проекта выберите New. Добавьте переменные модели b и k в набор переменной проекта.

  • Задайте Minimum и значения Maximum для переменной b как 100 и 10000 соответственно.

  • Задайте Minimum и значения Maximum для переменной k как 10 000 и 100000 соответственно.

Нажать ОК. Новая переменная, DesignVars, появляется в Response Optimization Tool Workspace.

В Неопределенном Сетлисте Переменных выберите New. Добавьте переменную mLoad в неопределенный набор переменных.

  • Задайте значение Uncertain Values для переменной mLoad как [10 15 20]

Нажать ОК. Новая переменная, UncVars, появляется в Response Optimization Tool Workspace.

Задайте Линейные Аналитические Точки ввода/вывода

Укажите, что точки ввода/вывода, задающие линейную систему раньше, вычисляли пропускную способность и ослабляющий отношение.

Задавать точки ввода/вывода:

  • В Новом списке выберите Linearization I/Os.

  • В модели Simulink кликните по сигналу при выводе блока Band-Limited Disturbance Force. Создать диалоговое окно набора ввода-вывода линеаризации обновляется, и выбранный сигнал появляется в нем.

  • В Создать диалоговом окне I/O линеаризации выберите сигнал и нажмите Add.

  • В списке Настроек для выбранного сигнала выберите Input Perturbation, чтобы задать его как входной сигнал.

  • Точно так же добавьте сигнал pos из модели Simulink. Задайте этот сигнал как вывод. В списке Настроек выберите Output Measurement.

  • Нажать ОК. Новая переменная, IOs, появляется в Response Optimization Tool Workspace.

Добавьте требования пропускной способности и отношения затухания

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

Задавать требование пропускной способности:

  • Откройте диалоговое окно, чтобы задать границы на Предвещать значении. В Новом списке выберите Bode Magnitude.

  • Задайте имя требования как Bandwidth.

  • Укажите, что ребро запускает частоту и значение как 10 рад/с и-3db, соответственно.

  • Задайте частоту конца ребра и значение как 100 рад/с и-3db, соответственно.

  • Задайте набор ввода/вывода, к которому требование применяется путем нажатия на Select Systems to Bound. Установите флажок IOs.

  • Нажать ОК. Новое требование, Bandwidth, появляется в Response Optimization Tool Workspace, и графическое представление требования пропускной способности автоматически создается.

Задавать требование отношения затухания:

  • Откройте диалоговое окно, чтобы задать границы на отношении затухания. В Новом списке выберите Damping Ratio.

  • Укажите, что отношение затухания связало значение как 0,7071.

  • Задайте набор ввода/вывода, к которому требование применяется путем нажатия на Select Systems to Bound. Установите флажок IOs.

  • Нажать ОК. Новое требование, DampingRatio, появляется в Response Optimization Tool Workspace, и графическое представление требования отношения затухания автоматически создается.

Добавьте требование надежности

Настройте пружину и значения демпфера, чтобы минимизировать ожидаемую интенсивность отказов за время жизни 100e3 мили. Интенсивность отказов вычисляется с помощью распределения Weibull на отношении затухания системы. Когда отношение затухания увеличивается, интенсивность отказов, как ожидают, увеличится.

Задайте требование надежности как пользовательское требование:

  • Откройте диалоговое окно, чтобы задать пользовательские требования. В Новом списке выберите Custom Requirement.

  • Задайте пользовательское имя требования как MinFailureRate.

  • В области Specify Function выберите Minimize функциональный вывод из Списка типов.

  • Задайте функцию как @sdoSuspension_FailureRate.

  • Нажать ОК. Новое требование, MinFailureRate, появляется в Response Optimization Tool Workspace, и графическое представление пользовательского требования автоматически создается.

@sdoSuspension_FailureRate функция возвращает ожидаемую интенсивность отказов в течение времени жизни 100e3 мили.

type sdoSuspension_FailureRate
function pFailure = sdoSuspension_FailureRate(data)
%SDOSUSPENDION_FAILURERATE
%
% The sdoSuspension_FailureRate function is used to define a custom
% requirement that can be used in the graphical SDTOOL environment.
%
% The |data| input argument is a structure with fields containing the
% design variable values chosen by the optimizer.
%
% The |pFailure| return argument is the failure rate to be minimized by the
% SDOTOOL optimization solver. The failure rate is given by a Weibull
% distribution that is a function of the mass, spring and damper values.
% The design minimizes the failure rate for a 100e3 mile lifetime.
%

% Copyright 2012 The MathWorks, Inc.

%Get the spring and damper design values
allVarNames = {data.DesignVars.Name}; 
idx         = strcmp(allVarNames,'k');
k           = data.DesignVars(idx).Value;
idx         = strcmp(allVarNames,'b');
b           = data.DesignVars(idx).Value;

%Get the nominal mass from the model workspace
wksp = get_param('sdoSimpleSuspension','ModelWorkspace');
m    = evalin(wksp,'m0');

%The expected failure rate is defined by the Weibull cumulative
%distribution function, 1-exp(-(x/l)^k), where k=3, l is a function of the
%mass, spring and damper values, and x the lifetime.
d        = b/2/sqrt(m*k);
pFailure = 1-exp(-(100e3*d/250e3)^3);
end

Оптимизируйте проект

Прежде, чем запустить оптимизацию убедиться завершить более ранние шаги. Также можно загрузить sdoSimpleSuspension_sdosession от рабочего пространства модели в инструмент Response Optimization.

Чтобы сохранить начальные значения переменных проекта и позже сравнить их с оптимизированными значениями конфигурируют оптимизацию.

  • Нажмите Options.

  • Выберите опцию Save optimized variable values as new design variable set.

Учиться как изменение значений переменных проекта во время оптимизации:

  • В Данных, чтобы Построить список, выберите DesignVars.

  • В Добавить списке Графиков, и выбирают Iteration Plot.

  • Просмотрите переменные проекта соответственно масштабированным способом. Щелкните правой кнопкой по DesignVars, строят и выбирают масштабируемые значения Show.

Чтобы оценить требования в начальной точке проекта, нажмите Evaluate Requirements. Графики требования обновляются, и переменная ReqValues добавляется к Response Optimization Tool Workspace.

Чтобы оптимизировать проект, нажмите Optimize. Графики обновляются во время оптимизации. В конце оптимизации оптимальные расчетные значения записаны в переменную DesignVars1. Значения требования для оптимизированного проекта записаны в переменную ReqValues1.

Анализируйте проект

Сравнить переменные проекта до и после оптимизации:

  • В Данных, чтобы Построить список, выберите DesignVars.

  • В Добавить списке Графиков выберите Spider Plot.

  • Чтобы добавить оптимизированные переменные проекта в тот же график, выберите DesignVars1 в Response Optimization Tool Workspace и перетащите его на график Паука. Также в Данных, чтобы Построить список, выберите DesignVars1. Затем в Добавить списке Графиков выберите график Spider 1 из раздела Add to Existing Plot.

График показывает, что оптимизатор уменьшал и k и значения b для оптимального проекта.

Сравнить требования до и после оптимизации:

  • В Данных, чтобы Построить список, выберите ReqValues.

  • В Добавить списке Графиков выберите Spider Plot.

  • Чтобы добавить оптимизированные значения требования в тот же график, выберите ReqValues1 в Response Optimization Tool Workspace и перетащите его на график Паука. Также в Данных, чтобы Построить список, выберите ReqValues1. Затем в Добавить списке Графиков выберите график Spider 2 из раздела Add to Existing Plot.

График показывает, что оптимальный проект имеет более низкую интенсивность отказов (ось MinFailureRate) и лучше удовлетворяет требование пропускной способности. Значение, построенное на оси пропускной способности, является различием между связанной пропускной способностью и значением пропускной способности. Оптимизация удовлетворяет связанное путем хранения этого значения отрицательным; более отрицательная величина указывает на лучшую удовлетворенность связанного.

Улучшенная надежность и пропускная способность достигаются путем продвижения отношения затухания ближе к связанному отношению затухания. График имеет две оси для требования отношения затухания, один для каждого системного полюса, и нанесенные на график значения являются различием между связанным отношением затухания и значением отношения затухания. Оптимизация удовлетворяет связанное путем хранения этого значения отрицательным.

Наконец моделируемое массовое положение более сглаженно, чем ответ исходного положения (индикация относительно более низкой пропускной способности как требуется) за счет большего отклонения положения.

Связанные примеры

Чтобы изучить, как оптимизировать проект приостановки с помощью команды sdo.optimize, см. "Оптимизацию проекта, чтобы Удовлетворить Требования Частотного диапазона (Код)".

% Close the model
bdclose('sdoSimpleSuspension')