Проект оптимизации для удовлетворения требований частотного диапазона (GUI)

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

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

Модель подвески

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

open_system('sdoSimpleSuspension')

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

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

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

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

  • два блока интегратора для вычисления массовой скорости и положения.

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

Симулируйте модель, чтобы просмотреть отклик системы с приложенной нарушением порядка силой.

Задача проекта

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

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

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

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

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

Откройте Response Optimizer

На вкладке Приложения щелкните Response Optimizer в разделе Системы управления.

Задайте конструктивные переменные

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

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

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

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

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

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

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

Задайте входные/выходные точки линейного анализа

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

Чтобы задать входные/выходные точки:

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

  • В модели Simulink щелкните сигнал на выходе Band-Limited Disturbance Force блок. Диалоговое окно Create linearization ввод-вывод set обновляется, и в нем появляется выбранный сигнал.

  • В диалоговом окне Create linearization ввод-вывод выберите сигнал и нажмите Add.

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

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

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

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

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

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

  • Откройте диалоговое окно, чтобы задать ограничения на величину Боде. В списке New выберите Bode Magnitude.

  • Укажите имя требования следующим Bandwidth.

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

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

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

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

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

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

  • Задайте значение ограничения коэффициента затухания 0,7071.

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

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

Добавление требования к надежности

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

Укажите требование надежности в качестве пользовательского требования:

  • Откройте диалоговое окно для определения пользовательских требований. В списке Создать выберите Пользовательское требование.

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

  • В области Specify Function выберите Minimize the function output из списка Type.

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

  • Нажмите OK. Новое требование, 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.

  • В списке «Добавить график» выберите «Итерационный график».

  • Просмотрите конструктивные переменные соответствующим образом в масштабе. Щелкните правой кнопкой мыши по DesignVars постройте график и выберите Показ масштабированных значений.

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

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

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

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

  • В списке «Данные для построения графика» выберите DesignVars.

  • В списке «Добавить график» выберите «График паука».

  • Чтобы добавить оптимизированные переменные проекты к тому же графику, выберите DesignVars1 в браузере Response Optimizer и перетащите его на график Spider. Кроме того, в списке «Данные для графика» выберите DesignVars1. Затем в списке «Добавить график» выберите «График 1» в разделе «Добавить к существующему графику».

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

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

  • В списке «Данные для построения графика» выберите ReqValues.

  • В списке «Добавить график» выберите «График паука».

  • Чтобы добавить оптимизированные значения требований к тому же графику, выберите ReqValues1 в браузере Response Optimizer и перетащите его на график Spider. Кроме того, в списке «Данные для графика» выберите ReqValues1. Затем в списке «Добавить график» выберите «График 2» в разделе «Добавить к существующему графику».

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

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

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

Похожие примеры

Чтобы узнать, как оптимизировать проект подвески, используя sdo.optimize команда, см. «Оптимизация проекта для соответствия требованиям частотного диапазона» (Code).

% Close the model
bdclose('sdoSimpleSuspension')