Моделирование отказоустойчивой топливной системы управления

Этот пример показывает, как объединить Stateflow® с Simulink®, чтобы эффективно смоделировать гибридные системы. Этот тип моделирования особенно полезен для систем, которые имеют многочисленные возможные операционные режимы на основе дискретных событий. Традиционный поток сигналов обработан в Simulink, в то время как изменения в настройке управления реализованы в Stateflow. Модель, описанная ниже, представляет топливную систему управления для бензинового двигателя. Система очень устойчива в том отдельном датчике, отказы обнаруживаются, и система управления динамически реконфигурирована для непрерывной операции.

Анализ и физика

Физические и эмпирические отношения формируют основание для дросселя и впускают разнообразную динамику этой модели. Состав топливно-воздушной смеси вычисляется путем деления скорости потока жидкости массы воздуха (накачанный из коллектора потребления) топливной скоростью потока жидкости массы (введенный в клапанах). Идеал (i. e. стехиометрический), отношение смеси обеспечивает хороший компромисс между степенью, экономией топлива и эмиссией. Целевой состав топливно-воздушной смеси для этой системы 14.6. Как правило, датчик определяет количество остаточного кислорода, существующего в выхлопном газе (EGO). Это дает хорошую индикацию относительно отношения смеси и обеспечивает измерение обратной связи для управления с обратной связью. Если датчик указывает на высокий кислородный уровень, закон об управлении увеличивает топливный уровень. Когда датчик обнаруживает богатую топливом смесь, соответствуя очень низкому уровню остаточного кислорода, контроллер уменьшает топливный уровень.

Моделирование

Рисунок 1 показывает верхний уровень модели Simulink. Чтобы открыть модель, введите sldemo_fuelsys в Командном окне MATLAB®. Нажмите кнопку воспроизведения на образцовой панели инструментов окна, чтобы запустить моделирование. Модель загружает необходимые данные в рабочее пространство модели от sldemo_fuelsys_data.m m. Модель регистрирует соответствующие данные к MATLAB workspace в структуре данных под названием sldemo_fuelsys_output и передает данные потоком к Моделированию Data Inspector. Регистрируемые сигналы отмечены синим индикатором, в то время как потоковая передача сигналов отмечена голубым значком (см. рисунок 1).

Обратите внимание на то, что загрузка начальных условий в рабочее пространство модели сохраняет данные моделирования изолированными от данных в других открытых моделях, которые вы можете иметь открытый. Это также помогает избежать создания помех MATLAB workspace. Чтобы просмотреть содержимое рабочего пространства модели выбирают View> Model Explorer> Model Explorer и нажимают на Model Workspace из списка Иерархий модели.

Заметьте, что модули видимы на модели и значках подсистемы и сигнальных линиях. Модули заданы на портах и на объекте шины. Чтобы узнать больше о модулях в Simulink, см. Модули Simulink.

Рисунок 1: схема верхнего уровня для топливной модели системы управления

Подсистема Инструментальной панели (показанный в рисунке 2) позволяет пользователю взаимодействовать с моделью во время моделирования. Переключатели Внесения неисправности могут быть перемещены от Нормального, чтобы Привести положение к сбою, чтобы моделировать отказы датчика, в то время как селекторный переключатель Скорости вращения двигателя может быть переключен, чтобы изменить скорость вращения двигателя. Топливо и сигналы отношения воздуха/топлива визуализируются с помощью приборов инструментальной панели и осциллографов, чтобы обеспечить визуальную обратную связь во время запущенного моделирования.

Рисунок 2: подсистема Инструментальной панели для топливной модели системы управления

fuel_rate_control использует сигналы от датчиков системы, чтобы определить топливный уровень, который дает стехиометрическую смесь. Топливный уровень объединяется с фактическим воздушным потоком в модели динамики газа механизма, чтобы определить получившееся отношение смеси, как обнаружено в выхлопе.

Пользователь может выборочно отключить каждый из этих четырех датчиков (угол дросселя, скорость, EGO и разнообразное абсолютное давление [MAP]) при помощи переключателей ползунка в подсистеме инструментальной панели, чтобы моделировать отказы. Симулинк выполняет это обязательными переключателями ползунка к параметру, передаваемому по значению постоянного блока. Дважды кликните на подсистеме инструментальной панели, чтобы открыть инструментальную панель управления, чтобы сменить положение переключателя. Точно так же пользователь может вызвать условие отказа высокой скорости вращения двигателя путем переключения скорости вращения двигателя, включают подсистему инструментальной панели. Блок Repeating Table обеспечивает угловой входной параметр дросселя и периодически повторяет последовательность данных, заданных в маске.

Блок fuel_rate_control, показанный в рисунке 3, использует входной параметр датчика и сигналы обратной связи настроить топливный уровень, чтобы дать стехиометрическое отношение. Модель использует три подсистемы, чтобы реализовать эту стратегию: управляющая логика, вычисление потока воздуха и топливное вычисление. При нормальном функционировании модель оценивает уровень потока воздуха и умножает оценку обратной величины желаемого отношения, чтобы дать топливный уровень. Обратная связь от кислородного датчика обеспечивает корректировку с обратной связью оценки уровня порядок поддержать идеальное отношение смеси.

Рисунок 3: Топливная подсистема контроллера скорости

Управляющая логика

Единственная диаграмма Stateflow, состоя из набора шести параллельных состояний, реализует управляющую логику в целом. Четыре параллельных состояния, показанные наверху рисунка 4, соответствуют четырем отдельным датчикам. Остающиеся два параллельных состояния в нижней части рассматривают состояние этих четырех датчиков одновременно и определяют полный системный рабочий режим. Модель синхронно вызывает целую схему Stateflow в регулярном интервале частоты дискретизации 0,01 секунд. Это разрешает условиям для переходов к правильному режиму быть протестированными на своевременной основе.

Чтобы открыть control_logic диаграмму Stateflow, дважды щелкают по нему в fuel_rate_control подсистеме.

Рисунок 4: график управляющей логики

Когда выполнение начинается, все состояния запускаются в их режиме normal за исключением кислородного датчика (EGO). Состояние O2_warmup вводится первоначально, пока период прогрева не завершен. Система обнаруживает дроссель и отказы датчика давления, когда их измеренные значения выходят за пределы их номинальных областей значений. Разнообразный вакуум в отсутствие сигнала скорости указывает на отказ датчика скорости. Кислородный датчик также имеет номинальную область значений для условий отказа, но, потому что нуль является и минимальным уровнем сигнала и нижней частью области значений, отказ может быть обнаружен только, когда это превышает верхний предел.

Независимо от которого перестал работать датчик, модель всегда генерирует направленную широковещательную передачу события Fail.INC. Таким образом инициирование универсальной логики отказа датчика независимо от датчика. Модель также использует соответствующее событие восстановления датчика, Fail.DEC. Состояние Fail отслеживает количество не пройдено датчиков. Счетчик постепенно увеличивается на каждом событии Fail.INC и декрементах на каждом Сбое. Событие DEC. Модель использует сверхдержаву, Multi, чтобы сгруппировать все случаи, где больше чем один датчик перестал работать.

Нижнее состояние параллели представляет режим заправки механизма. Если единственный датчик перестал работать, операция продолжается, но смесь воздуха/топлива более богата, чтобы позволить более сглаженное выполнение за счет более высокой эмиссии. Если больше чем один датчик перестал работать, механизм закрывается как меры по обеспечению безопасности, поскольку отношением воздуха/топлива нельзя управлять надежно.

Во время прогрева кислородного датчика модель поддерживает смесь на нормальных уровнях. Если это неудовлетворительно, пользователь может изменить дизайн путем перемещения состояния прогрева в в сверхдержаве Rich_Mixture. Если отказ датчика происходит в период прогрева, состояние Single_Failure вводится после того, как время прогрева протекает. В противном случае состояние Normal активируется в это время.

Защитная опция превышения скорости была добавлена к модели путем создания нового состояния в сверхдержаве Fuel_Disabled. С помощью соединений истории мы гарантировали, что график возвращается к соответствующему состоянию, когда модель выходит из состояния превышения скорости. Когда требования техники безопасности для механизма становятся лучше заданными, мы можем добавить, что дополнительное завершение работы утверждает к сверхдержаве Fuel_Disabled.

Исправление датчика

Когда датчик перестал работать, оценка датчика вычисляется. Например, откройте вычисление датчика давления. При нормальной операции датчика используется значение датчика давления. В противном случае значение оценивается.

ans =

  logical

   0

Оценка разнообразного давления вычисляется как функция положения дросселя и скорости вращения двигателя. Значение вычисляется удобно с помощью функции Simulink в Stateflow.

Вычисление потока воздуха

Блок Airflow Calculation (показанный в рисунке 6) является местоположением для центральных законов об управлении. Этот блок найден в fuel_rate_control подсистеме (откройте этот блок). Блок оценивает, что воздушный поток потребления определяет топливный уровень, который дает соответствующее отношение воздуха/топлива. Управление с обратной связью настраивает оценку согласно остаточной кислородной обратной связи в порядке поддержать отношение смеси точно. Даже когда отказ датчика передает под мандат операцию разомкнутого цикла, новая корректировка с обратной связью сохраняется, чтобы лучше всего достигнуть целей управления.

Рисунок 6: оценка Потока воздуха и исправление

Уравнение 1

Воздушный поток потребления механизма может быть сформулирован как продукт скорости вращения двигателя, разнообразного давления и изменяющегося во времени масштабного коэффициента.

Cpump вычисляется интерполяционной таблицей и умножается на скорость и давление, чтобы составить начальное мнение потока. Во время переходных процессов уровень дросселя, с производной, аппроксимированной фильтром высоких частот, исправляет воздушный поток для заполнения динамики. Алгоритм управления обеспечивает дополнительное исправление согласно Уравнению 2.

Уравнение 2

Рисунок 7: подсистема Динамики Газа Engine

Рисунок 8: блок Mixing & Combustion в подсистеме Динамики Газа Engine

Нелинейный кислородный датчик (блок EGO Sensor) найден в блоке Mixing & Combustion (см. рисунок 8) в подсистеме Динамики Газа Engine (см. рисунок 7). Датчик EGO моделируется как гиперболическая функция тангенса, и он обеспечивает значимый сигнал когда около 0,5 вольт. Необработанная ошибка в обратной связи таким образом обнаруживается с переключающимся порогом, как обозначено в Уравнении 2. Если состав топливно-воздушной смеси является низким (смесь является наклоном), исходная воздушная оценка является слишком небольшой и должна быть увеличена. С другой стороны, когда кислородный датчик, вывод высок, воздушная оценка, является слишком большим и должен быть уменьшен. Интегральное управление используется так, чтобы срок исправления достиг уровня, который вызывает нулевую установившуюся ошибку в отношении смеси.

Нормальный режим работы с обратной связью, LOW, настраивает интегратор динамически, чтобы минимизировать ошибку. Интегрирование выполняется в дискретное время с обновлениями каждые 10 миллисекунд. При работе разомкнутым циклом, однако, в RICH или типах отказа O2, проигнорирована ошибка обратной связи, и интегратор сохранен. Это дает лучшее исправление на основе новой допустимой обратной связи.

Топливное вычисление

fuel_calc подсистема (в fuel_rate_control подсистеме, смотрите, рисунок 9) устанавливает сигнал инжектора совпадать с данным вычислением потока воздуха и состоянием отказа. Первый входной параметр является вычисленной оценкой потока воздуха. Это умножается с целевым отношением топлива/воздуха, чтобы получить топливный уровень, которым управляют. Обычно цель является стехиометрической, i. e. равняется оптимальному воздуху, чтобы питать отношение 14,6. Когда отказ датчика происходит, управляющая логика Stateflow устанавливает входной параметр режима на значение 2 или 3 (RICH или ОТКЛЮЧЕННЫЙ) так, чтобы смесь была или немного богата из стехиометрических или была закрыта полностью.

Рисунок 9: подсистема fuel_calc

fuel_calc подсистема (рисунок 9) использует корректируемую компенсацию (рисунок 10) в порядке достигнуть различных целей в различных режимах. В нормальном функционировании ведущая компенсация фазы сигнала исправления обратной связи добавляет к полю устойчивости с обратной связью. В режиме RICH и во время отказа датчика EGO (разомкнутый цикл), однако, составной топливный сигнал является низкой передачей, отфильтрованной, чтобы ослабить шум, представленный в процессе оценки. Конечный результат является сигналом, представляющим топливную скорость потока, которая, в фактической системе, была бы переведена во времена импульса инжектора.

Рисунок 10: Переключаемая подсистема компенсации

Результаты и заключения

Результаты симуляции показывают в рисунке 11 и рисунке 12. Моделирование запущено с входным параметром дросселя, который сползает от 10 до 20 градусов в течение двух секунд, затем возвращается к 10 градусам за следующие две секунды. Этот цикл повторяется постоянно, в то время как механизм сохранен на постоянной скорости так, чтобы пользователь мог экспериментировать с различными условиями отказа и типами отказа. Нажмите на переключатель отказа датчика в подсистеме инструментальной панели, чтобы моделировать отказ связанного датчика. Повторите эту операцию, чтобы двигать переключатель назад для нормального функционирования.

Рисунок 11: Сравнение топливной скорости потока для различных отказов датчика

Рисунок 11 сравнивает топливную скорость потока при безотказных условиях (базовая линия) с уровнем, примененным в присутствии единственного отказа в каждом датчике индивидуально. В каждых документах по делу нелинейное отношение между топливом текут и треугольная команда дросселя (показанный в рисунке 13). В базовом случае топливный уровень отрегулирован плотно, показав маленькую пульсацию из-за переключающейся природы входной схемы датчика EGO. В других четырех случаях система управляет разомкнутым циклом. Стратегия управления доказана эффективной при поддержании правильного топливного профиля в единственном типе отказа. В каждом из условий отказа топливный уровень - по существу 125% базового потока, выполняя цель дизайна 80%-х богатых.

Рисунок 12: Сравнение состава топливно-воздушной смеси для различных отказов датчика

Рисунок 12 строит график соответствующего отношения воздуха/топлива для каждого случая. Базовый график показывает эффекты операции с обратной связью. Отношение смеси отрегулировано очень плотно к стехиометрической цели 14,6. Богатое отношение смеси показывают в нижней части четыре графика рисунка 12. Несмотря на то, что они не жестко регулируются, как в случае с обратной связью, они аппроксимируют цель воздуха/топлива (0.8*14.6=11.7).

Рисунок 13: Отрегулируйте команду

Переходное поведение системы показывают в рисунке 14. С постоянными 12 углами дросселя градуса и системой в установившемся, отказ дросселя представлен в t = 2 и исправлен в t = 5. В начале отказа, топливных повышений ставки сразу. Эффекты замечены в выхлопе, когда богатое отношение распространяет через систему. Установившееся условие затем быстро восстанавливается, когда операция с обратной связью восстанавливается.

Рисунок 14: Переходный ответ на обнаружение отказа

Комментарии

С анимацией, включенной в отладчике Stateflow, изменения состояния подсвечены в схеме Stateflow (см. рисунок 4), когда различные состояния активируются. Последовательность активации обозначается путем изменения цветов. Эти тесно двойные совместные действия между Stateflow и Simulink способствуют моделированию и разработке систем полного контроля. Концепции инженера могут разработать естественным и структурированным способом с мгновенной визуальной обратной связью, укрепляющей каждый шаг.

Связанные примеры

Обратитесь к другим примерам, связанным с sldemo_fuelsys:

Была ли эта тема полезной?