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

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

Этот пример требует 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 Optimizer

Во вкладке Apps нажмите Response Optimizer под Системами управления.

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

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

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

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

Нажать ОК. Новая переменная, DesignVars, появляется в браузере Response Optimizer.

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

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

Нажать ОК. Новая переменная, UncVars, появляется в браузере Response Optimizer.

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

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

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

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

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

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

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

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

  • Нажать ОК. Новая переменная, IOs, появляется в браузере Response Optimizer.

Добавьте требования полосы пропускания и коэффициента затухания

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

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

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

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

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

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

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

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

Задавать требование коэффициента затухания:

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

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

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

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

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

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

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

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

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

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

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

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

@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 Optimizer.

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

  • Нажмите Options.

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

Чтобы изучить, как изменение значений переменных проекта во время оптимизации:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

% Close the model
bdclose('sdoSimpleSuspension')