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

Этот пример показывает, как к настройкам параметров в интерполяционной таблице в модели, что усиление использования, планирующее настраивать ответ диспетчера на объект, который отличается. Модель, настраивающаяся, использует инструмент 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.

Откройте Response Optimization Tool

В меню анализа модели 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