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

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

Во вкладке 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 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