В этом примере показано, как к настройкам параметров в интерполяционной таблице в модели, которая использует табличное управление, чтобы настроить ответ диспетчера на объект, который варьируется. Модель, настраивающаяся, использует приложение Response Optimizer.
Откройте модель Simulink.
open_system('sdoShipSteering')
Эта модель реализует модель Nomoto, которая обычно используется для регулирования поставки. Динамические характеристики поставки значительно варьируются с факторами, такими как скорость поставки. Поэтому контроллер руководящего принципа должен также меняться в зависимости от скорости, для того, чтобы удовлетворить требования для регулирования поставки.
Чтобы сохранить поставку на курсе, цикл управления сравнивает угол рыскания поставки со ссылочным углом рыскания, и контроллер PD отправляет сигналы команды в руководящий принцип. Блок Ship Plant реализует модель Nomoto, система второго порядка, параметры которой меняются в зависимости от скорости поставки. Поставка первоначально перемещается на своей максимальной скорости 15 м/с, но она замедлится, когда ссылочная траектория задаст поворот в воде. Это превращение, наряду с силой механизма, используется блоком Force Dynamics, чтобы вычислять скорость поставки в зависимости от времени. Блок Kinematics вычисляет траекторию поставки.
Откройте блок Controller путем двойного щелчка по нему.
Когда скорость изменяется, объект поставки также изменяется. Поэтому контроллер PD, который усиления должны изменить, и скорость, используется в качестве переменной планирования. Контроллер находится в форме K(1 + sTd)
где K
полное усиление и Td
постоянная времени, сопоставленная с производным термином. Табличное управление реализовано через интерполяционные таблицы, и табличные данные заданы K
и Td
. Это векторы, которые задают различные значения для различных скоростей. Различные скорости заданы в векторах точки останова интерполяционной таблицы bpK
и bpTd
.
Ссылка задает в 200 секунд, поставка должна повернуть 180 градусов и изменить курс. Одно требование - то, что угол рыскания поставки должен совпадать со ссылочным углом рыскания в конверте. Для безопасности и комфорта пассажиров, второе требование - то, что общее ускорение поставки должно остаться в связанном из 0,25 г, где 1 г является ускорением силы тяжести в поверхности Земли, 9.8 m/s/s.
Векторы параметра контроллера K
и Td
будет переменные проекта и будут настроены, чтобы попытаться удовлетворить требования. Если не возможно удовлетворить оба требования, то интерполяционная таблица устанавливает точки останова bpK
и bpTd
будет также использоваться в качестве переменных проекта. В этом случае мы должны будем задать дополнительное требование что bpK
и bpTd
должен монотонно строго увеличиваться, потому что это требуется для векторов точки останова в интерполяционных таблицах Simulink.
Во вкладке Apps нажмите Response Optimizer под Системами управления.
Задайте требования, которым нужно удовлетворить. Во-первых, поставка должна следовать за ссылочной траекторией. Поскольку ссылка является по существу ступенчатым изменением от 0 до 180 градусов, вы задаете конверт переходного процесса для угла рыскания поставки. В панели инструментов нажмите New and select Step Response Envelope. Установите начальное значение к 0 и окончательное значение к радианам пи. Установите время шага на 200 секунд. Установите время нарастания как 75 секунд и процент повышения к 85%. Установите время урегулирования на 200 секунд и обосновывающийся процент к 1%. Установите перерегулирование процента на 5%. Чтобы указать, что это требование применяется к заголовку поставки, щелкните +.
В Simulink модель кликает по сигналу заголовка поставки, который является выходом блока Ship Plant. Выберите этот сигнал в Создать диалоговом окне Набора Сигнала и кликните по кнопке стрелки, чтобы сделать его обозначенным сигналом и нажать ОК.
Второе требование - то, что для безопасности и комфорта пассажиров, общее ускорение не должно превышать 0,25 г никогда. Общее ускорение состоит из двух компонентов, тангенциального компонента вдоль направления движения поставки и нормального (горизонтального) компонента. Требование, чтобы общее ускорение не превысило 0,25 г, соответствует требованию, чтобы в плоскости фазы тангенциального и нормального ускорения, траектория этой поставки осталась в кругу радиуса 0.25*9.8.
В панели инструментов нажмите New and select Ellipse Region Constraint. Задайте имя как SafeAccel и длину полуоси для обоих сигналов как 0.25*9.8 = 2.45. Чтобы указать, что требование применяется к тангенциальному ускорению поставки, нажмите кнопку Select. В Simulink модель кликает по тангенциальному ускоряющему сигналу, который выводится от блока Kinematics. Выберите этот сигнал в Создать диалоговом окне Набора Сигнала и кликните по кнопке стрелки, чтобы сделать его обозначенным сигналом и нажать ОК. Точно так же, чтобы указать, что требование применяется к нормальному ускорению поставки в Ограничительном диалоговом окне области Эллипса, нажимают другую кнопку Select и используют Создать диалоговое окно Набора Сигнала, чтобы задать нормальный ускоряющий сигнал.
Задайте переменные проекта, которые будут настроены оптимизацией для того, чтобы удовлетворить требованиям. В панели инструментов кликните по рамке выделения рядом с Набором Переменных Проекта и затем нажмите New. Выберите усиления контроллера PD, K
и Td
, и кликните по кнопке стрелки, чтобы определять их как переменные проекта. Используйте-0.1 для всех записей в значении K
вектор и использование 50 для всех записей в значении Td
вектор, и нажимает ОК. Если требованиям нельзя все удовлетворить, то позже векторы точки останова bpK
и bpTd
может также быть попробован как переменные проекта.
Во время оптимизации решатель Simulink может сгенерировать предупреждение, если размер временного шага становится слишком небольшим. Временно подавите это предупреждение.
warnState = warning('query', 'Simulink:Engine:SolverMinStepSizeWarn'); warning('off', 'Simulink:Engine:SolverMinStepSizeWarn');
В Response Optimizer нажмите Optimize. Угол рыскания поставки не соответствует необходимому конверту переходного процесса, как видно в переходном процессе в приложении Response Optimizer и в диалоговом окне Прогресса Оптимизации, где значение в последней итерации все еще положительно, который указывает на нарушение требования. Требование для безопасного ускорения также не удовлетворяется, как замечено в диалоговом окне Прогресса Оптимизации, где значение в последней итерации также положительно.
Чтобы попытаться соответствовать конструктивным требованиям, используйте результат оптимизации сверху в качестве стартовой точки и настройте дополнительные переменные. Добавьте устанавливает точки останова bpK
и bpTd
как проектируют переменные. Максимальная скорость поставки составляет 15 м/с, и во время превращения его может замедлиться к 60% максимальной скорости или 9 м/с. Установите начальные значения точки останова быть равномерно распределенными между 9 и 15 м/с. Ограничьте минимальные значения точки останова к 9 м/с и ограничьте максимальные значения точки останова к 15 м/с.
Точки останова в блоке интерполяционной таблицы Simulink должны строго монотонно увеличиваться. Добавьте это в конструктивные требования.
В Response Optimizer нажмите Optimize. На этот раз угол рыскания поставки соответствует необходимому конверту переходного процесса, как видно в переходном процессе в ответ приложение Оптимизатора и в диалоговом окне Прогресса Оптимизации, где значение в последней итерации отрицательно, который указывает, что требованию удовлетворяют. Требованию для безопасного ускорения также удовлетворяют, как замечено в диалоговом окне Прогресса Оптимизации, где значение в последней итерации также отрицательно. Точно так же точки останова интерполяционной таблицы удовлетворяют монотонным требованиям.
В этом примере объект поставки менялся в зависимости от скорости поставки, таким образом, усиления контроллера также должны были варьироваться. Табличное управление было реализовано с помощью интерполяционных таблиц. Путем настройки усилений и значений точки останова в контроллере, поставка смогла следовать за ссылочным углом рыскания, также ограничивая общее ускорение гарантировать безопасную и удобную поездку для пассажиров.
Изучить, как оптимизировать интерполяционные таблицы в усилении, запланировало контроллер, использующий sdo.optimize
команда, смотрите, что Оптимизация Проекта Использует Требования Интерполяционной таблицы для Табличного управления (Код).
% Close the model and restore state of warnings. bdclose('sdoShipSteering') warning(warnState); % restore state of warning