LC-1 от эксперимента к новой методике регулирования.

В предыдущей статье был описан метод получения каждого отдельного измерения от контроллера LC-1 и дополнительных параметров состояния измерителя. Если с периодом измерения все вроде бы понятно - то что же нам дают эти дополнительные параметры?! 

Контроль состояния измерителя.

Основная проблема ШДК регулирования в системах с внешним контроллером, как на уровне ЭБУ так и на уровне программных комплексов, связана с невозможностью достоверно определить, правильно ли функционирует измеритель или нет, каково состояние зонда - т.е. насколько показания состава смеси доступного системе регулирования соответствуют действительности. Имея единственный канал ввода информации в систему управления в виде (так или иначе) самого состава мы можем определять только грубые неисправности на уровне самого контроллера. Замечено, что иногда ШДК значительно изношенный (склонный к ошибке sensor timing) перед самым возникновением ошибки начинает вести себя аномально, эта аномалия сводится к выдаче более богатых значений состава чем фактически, но все же находящихся в диапазоне нормальных для измерителя значений, а так же зависании на каком то конкретном значении или выдаче "рваного" сигнала с провалом в свободный воздух. Кроме того более менее полное тестирование ШДК происходит только при включении LC-1. Таким образом при работе LC-1 возможно возникновение ситуации когда регулятор будет действовать неадекватно поскольку измеритель не работает как надо. Анализ состояния измерителя позволяет исключить подобную ситуацию, путем контроля не только самого состава но и других параметров измерителя, периода измерения (DC), температуры зонда, и.т.д. Т.е. алгоритм ШДК регулятора может в этом случае блокироваться, не смотря на кажущиеся достоверными значения самой лямбды. Один из критериев такой блокировки можно увидеть на рисунке ниже.

Кроме того в прошивке LC1F эта аномалия может быть парирована автоматически, принудительной выдачей команды рестарта LC1 из комплекса "Матрица". 

Определение значения лямбды фильтрацией выборки.

C получением каждого измерения встал вопрос о методах обработки потока значений c лямбды  - в частности его фильтрации. Как уже было сказано ранее штатно фильтрация измерений производится методом расчета скользящего среднего для выборки ограниченной интервалом 82мс, что является частным случаем "среднего арифметического". Однако данный метод не совсем подходит, поскольку аксиоматика среднего арифметического, включает в себя пункт о "независимости наиболее вероятного значения от порядка в котором были произведены измерения".  В нашем же случае состав смеси - динамически изменяющаяся величина, и ее наиболее вероятное значение - последнее в ряду измерений.

Для решения задачи фильтрации были реализованы несколько статистических алгоритмов оценки значения лямбды на основе выборки. В частности этими алгоритмами стали:

1) Скользящее среднее на интервале запросов KWP (это по сути то, что и было с старым протоколом - но с более точной привязкой значений состава смеси к временным событиям в ЭБУ).

2) Медиана  (выборка сортируется по возрастанию и за результат берется значение среднего элемента) - является робастным фильтром и позволяет в теории работать при проблемах в отдельных цилиндрах вплоть до полной неработоспособности одного из них, а так же при наличии в результатах измерения значительного числа выбросов различной природы.

3) Усеченное среднее (выборка сортируется по возрастанию, далее 25% выборки с начала и конца последовательности отбрасываются, от оставшихся 50% считается среднее арифметическое) - так же один из вариантов робастного фильтра для двигателей с меньшим количеством проблем.

4) Экспоненциально взвешенное среднее (EMA) с программируемым фиксированным коэффициентом фильтра. 

Целью последующих опытов стало определение дают ли робастные методы (медиана, усеченное среднее) какое либо качественное преимущество. Первые же опыты показали, что в потоке измерений полностью отсутствуют грубые ошибки - т.е. применение робастных метров фильтрации в данном случае абсолютно не целесообразно. Измеритель как правило или работает нормально, или не работает вообще, или работает так, что робастность не позволяет получить истинное значение поскольку ложными являются абсолютное большинство значений (как в примере выше), а на уровне интерфейса никаких проблем быть не может, поскольку он цифровой и имеет механизмы квитирования. Таким образом наилучший результат показал самый быстрый метод - экспоненциально взвешенного среднее (EMA). Поэтому на следующем этапе были проанализированы варианты усовершенствования классического метода EMA. Одним из путей такого совершенствования является набор методов получивших название  "Динамические скользящие средние". 

Классическая рекуррентная формула фильтра метода экспоненциально взвешенного среднего выглядит так: EMA(t) = Lambda*K + EMA(t-1)*(1-K), где K- некий заранее выбранный статический коэффициент фильтра, принимающий значения от 0.001 до 0.999. Методы "Динамического скользящего среднего" отличаются тем, что на каждой итерации K рассчитывается индивидуально по некоторым заданным критериям. Наиболее известны методики VIDYA и KAMA применяемые в трейдинге и фильтр Калмана (который в одномерном случае вырождается в то же EMA с изменяемым коэффициентом усиления). Так или иначе в расчете K эти методики опираются на анализ состояния самой фильтруемой величины. Но такая схема не совсем оптимальна для лямбды, где по результатам наблюдения было решено рассчитывать К базируясь на состоянии других доступных параметров, как измерителя, так и ЭБУ, а не собственно измеряемой величины. K вычисляется по формуле. К=Кmax*V где Kmax - заданное значение фильтра. V- степень доверия к показателям контроллера на выбранной итерации выбираемая в диапазоне от 0 до 1. В вычислении V участвует множество различных факторов как напрямую так и в виде производных, например температура сенсора, период измерения. В итоге мы получаем не просто состав но и еще вероятностную оценку  насколько этот состав соответствует реальности. Этот коэффициент может использоваться не только при фильтрации но и в алгоритме настройки - блокируя какие либо действия либо влияя на весовые коэффициенты.

Собственно основные проблемы при регулирования состава и основные факторы ограничивающие быстродействие регулятора и качество регулирования в настоящее время - проблема стационарности, проблема асинхронной топливоподачи, и проблема нелинейности и динамики топливных систем. 

Суть проблемы стационарности в том, что для того, чтоб запустить процесс регулирования, мы должны быть уверены, что состав смеси с ШДК и пакет данных от контроллера соответствуют друг другу (а это выполняется в состоянии стационарности) и кроме того получены в условиях когда имеется только один механизм топливоподачи - основная цикловая топливоподача GTC. Если же мы имеем несколько механизмов топливоподачи - то регулирование должно быть заблокировано поскольку мы не можем понять, чем вызвана ошибка - неверной настройкой базовой или неправильной асинхронной подачи. 

Проблема стационарности была решена достаточно простым способом. Выход алгоритма EMA от каждого измерения кешируется программой на интервале 4х запросов KWP 2000.  В KWP процедуры были встроены индексные маркеры которые позволяют на любой скорости передачи с любыми задержками и для любых оборотов точно определить момент инициирования блоком передачи.  Далее методом интерполяции на интервале тех же 4-х запросов строится набор параметров ЭБУ в системе времени (дискретности) данных высокоскоростной лямбды - таким образом данные с ШДК и данные с ЭБУ оказываются в единой системе координат (по времени) заданной лямбдой с дискретностью = периоду измерения состава  (2-3мс). Пример такого лога можно видеть на рисунке ниже.

Дальнейшая увязка данных лямбды и ЭБУ производится динамической моделью выхлопа для настройки которой было написано специальное ПО ЭБУ которое в стационарном режиме каждый N-й запрос имитировало обогащение состава смеси на -1.0 AFR на 100 миллисекунд и в дальнейшем проводился анализ получаемых логов и строилась динамическая модель для любых режимов по оборотам и нагрузке а так же расходу воздуха. 

Проблему асинхронной топливоподачи можно решить перейдя к регулятору построенному на вероятностных методиках. Для этого на основе априорной информации от ЭБУ рассчитываются вероятности для всех источников ошибок состава, включая ошибки измерителя, и на их основе принимается решение о том, как именно на данной итерации должен действовать регулятор.  

Проблема в топливных системах могут быть решены с помощью полной и соответственно более адекватной нелинейной динамической модели топливоподачи, реализуемой на ПК. ЭБУ обычно используют упрощенную линейную статическую модель топливной системы - чтоб не усложнять расчеты в цикле, однако некоторые производители (BOSCH-GM) обычно добавляют нелинейные элементы, для точного учета подачи форсунок. И реализуют динамические модели для учета пульсаций и запаздывания давления. Для построения такой модели на автомобиле Evo9 был смонтирован датчик давления топлива. Модель позволяет определить нахождение системы на участках где характеристика подачи топлива не линейна, для основных используемых конструкций топливных систем, а так же определить ошибку связанную с разницей динамики роста давления воздуха на впуске и топлива в рейке (запаздывание системы топливный насос-РДТ), и таким образом скорректировать работу регулятора и его весовые коэффициенты не допуская промахов. Так же определяются границы динамического диапазона форсунок и действия регулятора при выходе за эти границы.

Косвенный метод вычисления CH-фактора с помощью контроллера LC1 с прошивкой v1.10F...

Одним из наиболее важных  критериев оптимизации параметров системы управления ДВС является минимизация выбросов несгоревших углеводородов (CH). Режим работы двигателя с минимальными выбросами углеводородов обеспечивает наиболее полное использование энергии топлива и таким образом минимальный его расход. Измерение CH  в настоящее время представляет проблему из за значительного времени отклика измерительных систем газоанализаторов c сенсорами CH. Поэтому оптимизация настройки системы по CH с помощью газоанализатора возможна только в очень узком участке диапазона оборотов и нагрузок (в основном около режима холостого хода и малых нагрузок). Кроме того очень малое количество газоанализаторов имеет RS232 выход и еще меньшее из них поддерживается комплексом (по сути речь идет только о моем Асконе-02 - как оказалось, никому это больше не нужно).

Однако имея такой инструмент как LC1 c прошивкой Fast, CH можно вычислить с помощью очень простой модели. Для этого, для выборки состава, производится вычисление средне квадратичного отклонения,  затем оно отфильтровывается медианным фильтром на интервале 100 запросов. Полученный после фильтрации параметр, имеет сильную корреляционную связь с каналом CH измеряемым газоанализатором Аскон-02, задержанным во времени из за лага газоанализатора. При этом по сути не нужно даже делать лишних вычислений - просто задача минимизации CH по сути сводится к задаче минимизации фильтрованного СКО состава смеси.

 Развернутая во времени картинка с немного другими коэффициентами.

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

Фактор "Фильтрованное средне квадратичное отклонение" изначально задумывался для определения качества работы ДВС методом общей оценки - его связь с CH была обнаружена абсолютно случайно.

Пропуски воспламенения.

Для их определения средне квадратичное отклонение фильтруется ассиметричным фильтром, в работе которого важную роль играет режим ДВС (работа под нагрузкой или без). Суть фильтра отделить нормальный процесс горения, именно в тот момент когда он действительно происходит, от всего остального времени работы двигателя, чтоб вычислить для него опорное значение СКО, которое затем будет использоваться для сравнения в алгоритме определения пропусков. Принцип очень похож на метод определения детонации. Пропуск как и любая другая аномалия горения вызывает значительную флуктуацию измерений с ШДК и значительный (в 2-3 раза) скачок значений СКО от номинальных (0.3-0.5).  В этом случае важно собственно проинформировать пользователя и заблокировать регулятор в программе, чтоб он не реагировал на недостоверные значения состава. Фактор который определяет наличие пропусков воспламенения можно увидеть на графике ниже (красный цвет линии). 

Детектирование пропусков позволяет избегать огромного количества проблем при настройке - в частности полностью исключает промахи регулятора в режимах работы близких к отсечке или при недостаточной энергии системы зажигания (пропусках на свечах). Если раньше эти промахи приходилось корректировать в ручную, чисто интуитивно, либо искусственно ограничивать действие регулятора только интегральной составляющей, чтоб получать статистическими методами более верные значения, основываясь на том что пропуски на самом деле достаточно редки и редко связанны с проблемами самого состава (диапазона воспламеняемости), то теперь комплекс просто не промахивается в принципе, что позволяет наоборот форсировать все действия регулятора в П части и многократно сократить время автоматической настройки системы при этом повысив ее качество. Кроме того возникает еще один не лишний информационный канал для оператора комплекса.

  продолжение

(c) Maxi(РПД) 2015-2016 Копирование материалов ресурса без разрешения автора запрещено.