В этом примере показано, как использовать комбинацию Simulink® Control Design™ и блоков верификации Simulink, чтобы утверждать, что характеристики линейной системы удовлетворяют одной из следующих границ:
Запас по фазе, больше, чем 60 градусов
Запас по фазе меньше чем 60 градусов и скорость, меньше чем или равная 90% скорости круиза.
Откройте модель Simulink самолета.
scdmultiplechecks
Модель самолета основана на пассажирском самолете долгого пути, летящем на крейсерской высоте и скорости. Самолет запускается с полной топливной загрузки и следует за предварительно заданным 8-часовым скоростным профилем. Модель является упрощенной версией скоростного цикла управления, который настраивает топливную скорость потока, чтобы управлять скоростью самолета.
Модель включает блоки в модель:
Расход топлива и получившиеся изменения в массе самолета
Нелинейные черновые эффекты, ограничивающие скорость самолета
Константы, используемые в модели, такие как коэффициент сопротивления, заданы в рабочем пространстве модели и инициализированы из скрипта.
v <= 0.9*vCruise
и Assert that: PM >= 60 or if PM < 60 then v <= 0.9*vCruise
блоками является Check Static Upper Bound и блоки Assertion, соответственно, от библиотеки Simulink Model Verification. В этом примере вы используете эти блоки с блоком Check Gain and Phase Margins, чтобы спроектировать сложную логику для утверждения.
Просмотрите вход линеаризации, выведите и настройки во вкладке Linearizations диалогового окна параметров блоков Check Gain and Phase Margins.
Модель была уже сконфигурирована с:
Ввод и вывод линеаризации для вычислительных запасов по амплитуде и фазе
Настройки, чтобы вычислить линейную систему
Программное обеспечение линеаризует цикл, замеченный блоком Velocity Controller каждые 30 минут симулированного времени, и вычисляет запасы по амплитуде и фазе.
Задайте границы запаса по фазе во вкладке Bounds блока Check Gain and Phase Margins.
В этом примере ввод и вывод линеаризации включает блок суммирования с отрицательной обратной связью. Измените Feedback sign, использовался для расчета поля, к positive feedback
.
Чтобы просмотреть запасы по фазе, которые будут вычислены позже в процессе моделирования, задайте Tabular
в Plot type, и нажимают Show Plot.
Спроектируйте логику утверждения, которая заставляет блоки верификации утверждать, когда запас по фазе больше 60 градусов или если запас по фазе меньше 60 градусов, скорость меньше чем или равна 90% скорость круиза.
В диалоговом окне Check Gain and Phase Margins Block Parameters, во вкладке Assertion, выбирают Output assertion signal и нажимают Apply.
Это действие добавляет выходной порт z-1
с блоком.
Дважды кликните v <= 0.9*vCruise
блокируйтесь и задайте параметры блоков как показано в следующем рисунке. После установки параметров нажмите Apply.
Эти параметры конфигурируют блок к:
Проверяйте, превышает ли скорость самолета скорость круиза к 0,9 разам
Добавьте выходной порт в блок
Соедините Check Gain and Phase Margins, v <= 0.9*vCruise
и Assert that: PM >= 60 or if PM < 60 then v <= 0.9*vCruise
блоки, как показано в следующем рисунке.
Эта связь вызывает Assert that: PM >= 60 or if PM < 60 then v <= 0.9*vCruise
блокируйтесь, чтобы утверждать и остановить симуляцию, если запас по фазе меньше 60 градусов, и скорость больше 90% скорости круиза.
В качестве альтернативы можно ввести scdmultiplechecks_final
в MATLAB® запрашивают, чтобы открыть модель Simulink, уже сконфигурированную с этими настройками.
Симулируйте модель.
В процессе моделирования:
v <= 0.9*vCruise
блок утверждает многократно.
Блок Check Gain and Phase Margins утверждает два раза. Можно просмотреть запасы по фазе, которые нарушают связанное в окне графика.
Assert that: PM >= 60 or if PM < 60 then v <= 0.9*vCruise
не сталкивается с условием утверждения. Поэтому симуляция не останавливается.
Щелкните по ссылке в нижней части модели Simulink, чтобы открыть окно Diagnostic Viewer.
Когда блок утверждает, предупреждения появляются в этом окне. Можно посмотреть детали утверждений путем щелчка по ссылке в этом окне.