Телеметрия и Traction control для моно приводного автомобиля участвующего в соревнованиях по Drag Racing. Часть 2.

                    Лажовые методики реагируют на прошлое. Успешные - предсказывают будущее! (Бежать в обменник надо до скачка курса а не после...)

И так устройство предложенное в первой части не работает. Однако отрицательный опыт не пропал зря, он позволил понять вещи до которых в тот момент уровень мышления не дотягивал. Поэтому в 2008м было сделано то, что уже наконец то нормально работало, и реализовано это было на уровне только лишь ЭБУ Январь-5.1 без каких либо дополнительных устройств вообще. Существует две реализации алгоритма - в ПО J5LSDV46 и в ПО J5SPORT2.

4-ре лишних датчика и лишняя коробка с проводами.

Казалось бы чем больше датчиков тем лучше.  Но вот только в реальности кроме удорожания и усложнения конструкции и лишних проблем с юстировкой (установкой зазоров) и сложности изготовления эта система ничего не несет. Вот скажем давайте рассмотрим некую абстрактную ситуацию - у вас относительно свободный дифференциал и на ведущей оси одно колесо буксует а другое нет. Это значит, что машина буксует или нет?! Нет конечно можно реализовать любой алгоритм реакции с любым ответом на вопрос. Его можно реализовать хотя бы в терминах нечеткой логики: "немножко буксует" или "почти не буксует"  - но какой из ответов будет верным? Опыт показывает, что - никакой... Единственно верный ответ просто исключает собственно и саму постановку вопроса - датчики на ведущей оси вообще не нужны. (свободный дифференциал конечно тоже не нужен - но это тема для другой статьи). 

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

При этом все собственно управление пробуксовкой сводится банально к управлению оборотами двигателя (на атмо автомобилях) или моментом и оборотами (на турбо).

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

Определение скорости и момента старта..

Казалось бы в чем проблемы - вот сигнал датчика скорости. Скорость = число импульсов/время. Посчитали и получили результат. Есть скорость = есть старт. Однако при ближайшем рассмотрении такой результат пригоден лишь для поездок в булочную или толкотни в пробках. Поскольку: Штатно в Январе время выбранное для подсчета числа импульсов = 0.6с, таким образом мы имеем не мгновенную скорость, а среднюю скорость на интервале 0.6с. (Когда мне рассказывают о прошивках - где "ланч по этой самой скорости"  после приступа смеха я как правило задаю вопрос - сколько кузовов они сливают сопернику за 0.6с на этих самых прошивках? и зачем нужен такой "ланч"?).

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

Отсюда выводы:

1) Алгоритмы определения скорости реализованные в штатных прошивках никуда не годятся поскольку не отражают мгновенную скорость.

2) Датчик скорости не годится как конструктивно, так и по месту установки (на ведущей оси).

3) Момент старта автомобиля не может быть определен по датчику скорости даже если он установлен на независимом колесе! Нужен другой независимый сигнал.  

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

Для решения 2й проблемы  датчик скорости сам заменяется уже на датчик фаз от двигателя 2111 и устанавливается на одном из задних (ведомых) колес опыты с предыдущей системой на 2108 показали, что при прямолинейном движении разница скоростей задних колес обусловлена только разницей давлений в них - в отличие от передних где сильно проявляет себя дифференциал и развесовка. Напротив датчика устанавливается стальной репер с значительным (30-60) числом отверстий.

3я проблема решается установкой либо датчика на педали сцепления или тормоза (в зависимости от метода контроля начала движения) или отдельной кнопки которую пилот удерживает и отпускает перед стартом. В любом случае это дает системе точную отметку времени начала старта.

Проблемы определения передачи.

Как вы уже поняли нельзя вот так взять и поделить скорость на обороты, чтоб определить передачу - потому, что с такой информацией о передаче в ЭБУ только рассаду на дачу возят. Поэтому для определения передачи на КПП (а она конечно секвентальная - где вы в драге видели другие?) был смонтирован штатный датчик положения барабана. (потенциометр с углом поворота 340 градусов). Заведенный на свободный АЦП канал. Не смотря на высокую скорость опроса (в цикле 20мс) в алгоритм определения передач было введено прогнозирование. Суть его заключается в смене передачи в канале управления трекшена уже в момент поступления сигнала переключения. Таким образом к моменту времени когда переключение еще даже не будет завершено - вся цепь расчетов системы трекшена уже примет значение "выхода" характерное для более высокой передачи.

Скорость из скорости...

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

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

"Автоматическая стартовая программа"

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

Поскольку мы не можем опираться на скорость при управлении на этом участке - так же мы не можем на нее опираться и при настройке этого алгоритма. Для его настройки на автомобиле смонтирован акселерометр а в логе имеется параметр "продольное ускорение". Настройка сводится к подбору значений оборотов обеспечивающих интегральный максимум продольного ускорения на данном участке на конкретных покрытиях трасс.

Собственно трекшен - управление оборотами и моментом.

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

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

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

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

Собственно суть самого воздействия не меняется - мы так же управляем оборотами. Но управляем мы ими не по ошибке скорости а по фактической модели движения. 

Упрощения для J5Sport2.

В J5Sport2 все те же алгоритмы были реализованы чуть позднее на более примитивном уровне. Поскольку у системы нет канала записи логов GPS - настройка динамического изменения нагрузки на осях не возможна и поэтому скорость задается только через коэффициенты с статическими радиусами колес на осях. Однако поправка скорости все же реализована. Кроме того управление оборотами в J5Sport2 идет с дискретом 40rpm (1rpm в J5LSDV46), поэтому точные модели трансмиссии и пробуксовки там не нужны. Первоначально просто применялись 5 таблиц "обороты от скорости" - но после был реализован полный алгоритм.

 

(с) 2008-2015 Maxi(RPD)