Этот пример показывает, как к настройкам параметров в интерполяционной таблице в модели, что усиление использования, планирующее настраивать ответ диспетчера на объект, который отличается. Модель, настраивающаяся, использует инструмент Response Optimization.
Откройте модель 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.
В меню анализа модели Simulink выберите Response Optimization.
Задайте требования, которые должны быть удовлетворены. Во-первых, поставка должна следовать за ссылочной траекторией. Поскольку ссылка является по существу ступенчатым изменением от 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 Optimization нажмите Optimize. Угол заголовка поставки не соответствует необходимому конверту переходного процесса, как видно в переходном процессе в ответ инструмент Optimization и в диалоговом окне Прогресса Оптимизации, где значение в последней итерации все еще положительно, который указывает на нарушение требования. Требование для безопасного ускорения также не удовлетворяется, как замечено в диалоговом окне Прогресса Оптимизации, где значение в последней итерации также положительно.
Чтобы попытаться соответствовать конструктивным требованиям, используйте результат оптимизации сверху в качестве стартовой точки и настройте дополнительные переменные. Добавьте устанавливает точки останова bpK
и bpTd
как переменные проекта. Максимальная скорость поставки составляет 15 м/с, и во время превращения его может замедлиться к 60% максимальной скорости или 9 м/с. Установите начальные значения точки останова быть равномерно распределенными между 9 и 15 м/с. Ограничьте минимальные значения точки останова к 9 м/с и ограничьте максимальные значения точки останова к 15 м/с.
Точки останова в блоке интерполяционной таблицы Simulink должны строго монотонно увеличиваться. Добавьте это в конструктивные требования.
В инструменте Response Optimization нажмите Optimize. На этот раз угол заголовка поставки соответствует необходимому конверту переходного процесса, как видно в переходном процессе в ответ инструмент Optimization и в диалоговом окне Прогресса Оптимизации, где значение в последней итерации отрицательно, который указывает, что требование удовлетворено. Требование для безопасного ускорения также удовлетворено, как замечено в диалоговом окне Прогресса Оптимизации, где значение в последней итерации также отрицательно. Точно так же точки останова интерполяционной таблицы удовлетворяют монотонные требования.
В этом примере объект поставки менялся в зависимости от скорости поставки, таким образом, усиления контроллера также должны были отличаться. Планирование усиления было реализовано с помощью интерполяционных таблиц. Путем настройки усилений и значений точки останова в контроллере, поставка смогла следовать за углом заголовка ссылки, также ограничивая общее ускорение гарантировать безопасную и удобную поездку для пассажиров.
Изучить, как оптимизировать интерполяционные таблицы в усилении, запланировало контроллер, использующий команду sdo.optimize
, см., "Что Оптимизация проекта Использует Требования Интерполяционной таблицы для Планирования Усиления (Код)".
% Close the model and restore state of warnings. bdclose('sdoShipSteering') warning(warnState); % restore state of warning