Акселерометр в системе ПИД-регулирования круиз-контроля автомобиля

?v=1

Я эксплуатирую в общем-то довольно современный, напичканный электроникой американский автомобиль. Из того, что управляет движением, в нем есть электронная система стабилизации, ПБС с эмуляцией блокировки дифференциала, естественно АБС, и конечно же, круиз-контроль. Последний еще не адаптивный (то есть без функции поддержания дистанции до впереди идущего авто). В машине — электронная педаль газа (это принципиальный момент для данной статьи — позже объясню, почему).

Всем, кто хочет знать, чем не угодил круиз-контроль, и что предлагается улучшить — welcome под кат.
Вообще, современные электронные системы автомобиля, отвечающие за непосредственно движение, довольно сложны. В частности, ECU вместе с PCU (powertrain control unit, контроллер АКПП, может быть отдельным устройством, или интегрирован с ECU), знают не только характеристики (то есть имеют и используют физическую модель) двигателя и трансмиссии, но и физическую модель самого автомобиля.

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

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

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

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

Давайте сделаем оценку важности этих факторов в плане их влияния на качество регулирования скорости и возможности их автоматического учета и компенсации в течение времени работы круиз-контроля:

  • фактор а) доступен для моделирования (зависит от температуры трансмисии, включенной передачи, параметров вязкости ATF — все эти данные контроллеру доступны), но малозначим в установившемся режиме движения в диапазоне авторегулирования (прогретая трансмиссия, скорость включения круиза > 30 км/ч) — им в ПИД-модели можно просто пренебречь
  • фактор б) достаточно значимый, по крайней мере, в диапазоне разрешенных ПДД скоростей, и состоит из статического (тип шин, масса автомобиля), динамического (скорость автомобиля) и стохастического (тип покрытия под колесами) компонентов.


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

Далее, фактор в) — зависит в основном от текущей скорости, проекции скорости ветра на ось движения, и наличия нештатных элементов, меняющих мидель и Cx автомобиля. Базовые параметры (мидель, Сх, плотность воздуха при стандарнтых условиях) можно закодировать в модели автомобиля, конструктивные отклонения определить долговременным анализом динамики на больших скоростях (когда сила сопротивления воздуха превалирует над остальными), краткосрочные (от проекции скорости ветра на ось движения) считать случайным возмущающим моментом (ограничив его величину сверху разумным пределом [скажем, 20 м/c — при большей скорости ветра не то что на круизе — в ручном режиме на скорости удержать автомобиль сложно]), текущую скорость относительно дороги контроллер знает практически точно — итого, фактор в) с определенной стохастической составляющей можно посчитать.

Наконец, фактор г) — достаточно значимый; имеет 100% стохастическую составляющую при отсутствии акселерометра, и практически нулевую при его наличии.

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

Замечу, что акселерометр сам по себе (без API) — не гироскоп и не «чудо-прибор» в наших гаджетах, который якобы «знает» истинное положение нормали к поверхности земли (на самом деле рекалибруется с запоминанием разложения по осям в те моменты, когда модуль вектора ускорения, выдаваемого датчиком ускорения, равен строго 1g), но поскольку инициатором тяги на колесах может быть только сам контроллер (привет системам с электронной педалью), то величина продольного ускорения относительно оси автомобиля может быть легко вычислена и скомпенсирована — и мы после усреднения получим хорошее приближение величины продольного профиля дороги, который сможем ввести в модель управления скоростью.

Вот и вся идея. Понятно, что реализовать ее в прошивке контроллера на уровне DIY (вне автозавода) — дело практически нереальное. Однако, мы можем построить свой вычислитель рядом с основным контроллером автомобиля, анализировать текущие параметры движения через CAN, и туда же отдавать управляющие воздействия. Я не уверен, что текущий момент на колесах можно взять с CAN’а, но включенную передачу, расход воздуха и обороты — точно можно (это позволяет косвенно рассчитать момент). Дальше, командовать дросселем напрямую скорее всего, через CAN нельзя (это было бы очень опасно) —, но мы можем, скорее всего, давать упреждающие команды на увеличение или уменьшение установленной круизной скорости, или (если CAN это не поддерживает) подключиться к соответствующим кнопкам на руле автомобиля. Все остальное, похоже, можно реализовать в этом внешнем контроллере.

© Habrahabr.ru