Этот пример показывает, как настроить параметры модели для удовлетворения требований частотного диапазона с помощью 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 в разделе Системы управления.
В списке Проекта Переменных 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')