Модуль дроссельной заслонки и холостого хода

Про байтики и логику ЭБУ
Post Reply
User avatar
acab
provoker
provoker
Posts: 263
Joined: Wed Dec 18, 2013 7:27 pm
Location: Minsk, BY

Модуль дроссельной заслонки и холостого хода

Post by acab »

Как мне кажется, тут должно быть два режима управления(работы) дросселем и холостым ходом.

1. Электрический дроссель с двумя потенциометрами и автоматическим управлением холостым ходом + управление всё педалью с одним(двумя) потенциометрами.
  • * electronic_throttle.c <- управление дросселем на основе показаний о положении дроссельной заслонки tps.c.
Необходимо считывать два потенциометра педали акселератора, два потенциометра положения дроссельной заслонки. В мозгах Bosch с каждой пары показаний делают одну "виртуальную", для расчётов дальнейших. Управление положением через PID.

2. Механический дроссель с одним(двумя) потенциометрами и клапаном холостого хода.
  • * idle_thread.c <- подпрограмма работы холостого хода
    * idle_controller.c <- алгоритм работы клапана холостого хода
    * tps.c <- обработка событий по поводу потенциометров на дросселе
Тут как бы проблем особо не составит. Получаем минимум и максимум показания положения дросселя, а то и двух потенциометров (для выявления ошибки). Рулим холостым ходом при закрытом дросселе и вырубаем руление когда дроссель открыт больше к примеру 1%.

Предлогайте свои идеи.
User avatar
AndreyB
Site Admin
Posts: 14325
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

Re: Модуль дроссельной заслонки и холостого хода

Post by AndreyB »

Идея номер один: не валить разные темы в одну ветку.

я тут вижу
1) управление приводом дросселя
2) двойной датчик положения ДРОССЕЛЯ
3) что-то еще и о холостом ходе
4) двойной датчки положения ПЕДАЛИ

Это очень нехорошо, что у нас тут ЧЕТЫРЕ темы свалены в одну кучу. Предлагаю начать с ОДНОЙ темы - двойной датчик положения ДРОССЕЛЯ на базе потенциомметров. Чтоб понять, что проблемы нужно УПРОЩАТЬ, а не УСЛОЖНЯТЬ - намекну нежно, что на галанте датчик положения дросселя - НЕ потенциометр. См. тему про железо.

Итак, идём и удаляем из первого сообщения три лишние темы и оставляем одну. И эту одну тему нужно качественно раскрыть - а именно: как именно мы из ДВУХ значений сделаем ОДНО значение? Понятно, что мы их усредним - это если оба датчика РАБОТАЮТ. Но остался нюанс - всё это замутили ради надёжности детекции ошибки. Т.е. самое важное - это алгорим, КАК мы поймём - какой из датчиков врёт? Очень обидно, что этот самый важный вопрос нихрена не раскрыт.
Предлагаю например как вариант слетить, что один датчик меняет показания - а второй постоянно показывает одно и то же. Тот, который стоит на месте - врёт. Автору предлагаю уточнить некоторые крайние случаи этого алгоритма, например - старт машины без нажатия на педаль, что делать? :)
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions

Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
User avatar
acab
provoker
provoker
Posts: 263
Joined: Wed Dec 18, 2013 7:27 pm
Location: Minsk, BY

Re: Модуль дроссельной заслонки и холостого хода

Post by acab »

Можно интерполировать 2 датчика 0-100% с точностью к примеру до 0.1%, если показания относительно равны до 1% погрешности к примеру - то использовать любой из датчиков относительно положения звёзд :)

Грех может быть при условии что датчики окажутся не линейные...
User avatar
AndreyB
Site Admin
Posts: 14325
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

Re: Модуль дроссельной заслонки и холостого хода

Post by AndreyB »

acab wrote:Грех может быть при условии что датчики окажутся не линейные...
Ну это можно будет достаточно просто проверить - дроссели у меня есть на столе. Чтоб было более линейно - нужно будет работать не с напряжением, а именно с сопротивлением в делителе. Сопротивление я надеюсь линейно. Если сопротивление линейно - напряжение кажется НЕ линейно? Или я гоню?
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions

Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
frig
contributor
contributor
Posts: 569
Joined: Wed Oct 23, 2013 8:05 pm

Re: Модуль дроссельной заслонки и холостого хода

Post by frig »

Один датчик положения отлично сейчас калибруется в tuner studio родной приблудой. Легко и просто. Как собираетесь калибровать второй датчик?
Зачем мы сейчас обсуждаем электродроссель в то время, как он даже близко еще не нужен, будет нужен не скоро и будет нужен ДАЛЕКО не всем?
skype: frig_frig
Mister Kotleta
Posts: 41
Joined: Tue Dec 10, 2013 5:51 pm

Re: Модуль дроссельной заслонки и холостого хода

Post by Mister Kotleta »

Сопротивление может линейно зависеть от угла. А вот пропускная способность дросселя будет с косинусной зависимостью при этом.
User avatar
AndreyB
Site Admin
Posts: 14325
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

Re: Модуль дроссельной заслонки и холостого хода

Post by AndreyB »

frig wrote:Зачем мы сейчас обсуждаем электродроссель в то время, как он даже близко еще не нужен, будет нужен не скоро и будет нужен ДАЛЕКО не всем?
Есть такая проблема :( Молодые бойцы очень хотят сделать что-то КРУТОЕ! Не хватает мудрости понять, что намного круче сделать что-то ПОЛЕЗНОЕ :(
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions

Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
User avatar
AndreyB
Site Admin
Posts: 14325
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

Re: Модуль дроссельной заслонки и холостого хода

Post by AndreyB »

Так, а кстати - по поводу дросселя, даже одиночного. Мы сейчас вычисляем положение линейной интерполяцией по НАПРЯЖЕНИЮ. А ведь если там потенциометр - то напряжение кажется нифига не линейно? Получается нам нужно добавить в логику еще и параметры сопротивления.

Просто если нам нужна линейная логика для двойного, значит нужно её ставить и в одинарный для консистентности?
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions

Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
User avatar
acab
provoker
provoker
Posts: 263
Joined: Wed Dec 18, 2013 7:27 pm
Location: Minsk, BY

Re: Модуль дроссельной заслонки и холостого хода

Post by acab »

Чёрт его знает.
У меня есть пару дросселей, всё на них достаточно линейно :)
User avatar
AndreyB
Site Admin
Posts: 14325
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

Re: Модуль дроссельной заслонки и холостого хода

Post by AndreyB »

acab wrote:Чёрт его знает.
У меня есть пару дросселей, всё на них достаточно линейно :)
Очень может быть, что я банально гоню.

У тебя есть двойной TPS для экспериментов на столе?
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions

Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
User avatar
acab
provoker
provoker
Posts: 263
Joined: Wed Dec 18, 2013 7:27 pm
Location: Minsk, BY

Re: Модуль дроссельной заслонки и холостого хода

Post by acab »

russian wrote: Очень может быть, что я банально гоню.

У тебя есть двойной TPS для экспериментов на столе?
Мой электрический есть. Но надо в гараж.

Я когда его ковырял - он был вроде линейный. Только первый потенциометр был грубо говоря от 300 до 900 ADC, а второй от 700 до 150, чтото такое, в общем они обратны)))
User avatar
AndreyB
Site Admin
Posts: 14325
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

Re: Модуль дроссельной заслонки и холостого хода

Post by AndreyB »

Твой электронный на машине? Просто как-то хочется не только компилящийся, но и реально протестированный на настоящем железе код. Написать код - 20% работы, а вот проверить и найти нюансы - это 80%

Я написал todo в tps.c - но как-то хотелось бы именно проверенный на реальном дросселе код.
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions

Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
User avatar
acab
provoker
provoker
Posts: 263
Joined: Wed Dec 18, 2013 7:27 pm
Location: Minsk, BY

Re: Модуль дроссельной заслонки и холостого хода

Post by acab »

russian wrote:Твой электронный на машине? Просто как-то хочется не только компилящийся, но и реально протестированный на настоящем железе код. Написать код - 20% работы, а вот проверить и найти нюансы - это 80%

Я написал todo в tps.c - но как-то хотелось бы именно проверенный на реальном дросселе код.
Не, он просто лежит :)
А что именно проерять?

Снять показания?
Attachments
alfa_throttle_body.png
alfa_throttle_body.png (28.4 KiB) Viewed 24257 times
User avatar
AndreyB
Site Admin
Posts: 14325
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

Re: Модуль дроссельной заслонки и холостого хода

Post by AndreyB »

Если просто лежит - неси его домой и пиши код, который будет проверять синхронность двух датчиков :)
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions

Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
User avatar
acab
provoker
provoker
Posts: 263
Joined: Wed Dec 18, 2013 7:27 pm
Location: Minsk, BY

Re: Модуль дроссельной заслонки и холостого хода

Post by acab »

russian wrote:Если просто лежит - неси его домой и пиши код, который будет проверять синхронность двух датчиков :)
Ты бы лучше всётаки задумался, о распиновке мозга и оглашения списка куда что пихать)!
User avatar
Sergey89
contributor
contributor
Posts: 839
Joined: Wed Sep 25, 2013 5:30 pm
Location: Russia, Velikiy Novgorod

Re: Модуль дроссельной заслонки и холостого хода

Post by Sergey89 »

russian wrote:Так, а кстати - по поводу дросселя, даже одиночного. Мы сейчас вычисляем положение линейной интерполяцией по НАПРЯЖЕНИЮ. А ведь если там потенциометр - то напряжение кажется нифига не линейно? Получается нам нужно добавить в логику еще и параметры сопротивления.

Просто если нам нужна линейная логика для двойного, значит нужно её ставить и в одинарный для консистентности?
В случае потенциометра показания линейны. Нужно знать две точки: напряжение полного закрытия и напряжение полного открытия. Дальше линейной интерполяцией переводишь в проценты. В случае сдвоенного датчика у тебя будет два набора точек. Когда ты переведёшь показания датчиков в проценты они должны будут совпадать при движении заслонки.
User avatar
acab
provoker
provoker
Posts: 263
Joined: Wed Dec 18, 2013 7:27 pm
Location: Minsk, BY

Re: Модуль дроссельной заслонки и холостого хода

Post by acab »

вот так вот
Attachments
Bosch 0280122001 TPS.jpg
Bosch 0280122001 TPS.jpg (46.73 KiB) Viewed 24241 times
User avatar
AndreyB
Site Admin
Posts: 14325
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

Re: Модуль дроссельной заслонки и холостого хода

Post by AndreyB »

acab wrote:вот так вот
40.
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions

Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
Ecucrack
Posts: 4
Joined: Tue May 06, 2014 8:33 pm
Location: Vitebsk

Re: Модуль дроссельной заслонки и холостого хода

Post by Ecucrack »

Sergey89 wrote: В случае потенциометра показания линейны. Нужно знать две точки: напряжение полного закрытия и напряжение полного открытия.
А что мешает сделать так - при первом включении запоминаем текущие показания датчиков. А затем, управляя ШИМом(эсли электрозаслонка) просто "дёргаем" её в обе стороны до упора. Данные с TPS1 и TPS2 пишем куда больше нравится (RAM, EPROM). На выходе получим крайние точки, и зависимость показаний обоих TPS при линейном изменении выхода ШИМ.

PS это в теории. Но на заводских блоках такое наблюдал частенько.
User avatar
AndreyB
Site Admin
Posts: 14325
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

Re: Модуль дроссельной заслонки и холостого хода

Post by AndreyB »

То, что ты описываешь - это уже такая попытка само-настройки. Однажды это будет полезно, это будут прикольные мелкие удобства - но сейчас бы просто выжить :) Прямо сейчас всё еще нет кода управления электронным дросселем.
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions

Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
Ecucrack
Posts: 4
Joined: Tue May 06, 2014 8:33 pm
Location: Vitebsk

Re: Модуль дроссельной заслонки и холостого хода

Post by Ecucrack »

russian wrote:То, что ты описываешь - это уже такая попытка само-настройки. Однажды это будет полезно, это будут прикольные мелкие удобства - но сейчас бы просто выжить :) Прямо сейчас всё еще нет кода управления электронным дросселем.
Эх. свой дискавери я купил 2 года назад.. и C++ тоже понемногу читал.. Но вся беда в том - что я ремонтник. Хардварник. И 7лет опыта заточены под авторемонт.
Есть предложение: от меня дроссель и TLEшка..+ дискавери(но не такой как у Вас) + макетка сразу с драйвером питания (выдеру из блока марелли.. он всёравно на запчасти.. там драйвер форсунок сгорел). А от Вас посильные пинки в нужном направлении по части кода.
Мышление моё больше заточено под алгоритмический принцип построения программ с использованием подпрограмм - обработчиков (ну на бейсике я писал в молодости..), так что если согласны - помогу по мере времени и сил. Но получается что это будет проект с совсем другой элементарной базой. И техусловия для него тоже будут другими.
User avatar
AndreyB
Site Admin
Posts: 14325
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

Re: Модуль дроссельной заслонки и холостого хода

Post by AndreyB »

Ecucrack wrote:дискавери (но не такой как у Вас)
не такой - а какой? в этом может быть проблема - код придётся писать отдельно, потом напильником код интегрировать в rusEfi код - неудобно :(
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions

Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
pathfinder
Posts: 8
Joined: Mon Dec 22, 2014 12:26 pm

Re: Описание текущей архитектуры

Post by pathfinder »

Кстати а как реализовано в прошивке то что при резком сбросе педали газа надо на ХХ двигатель выхватывать чтоб он не заглох. Обычно на современных авто реализована программа ПИД регулятора на ХХ, которая стабилизирует в зависимости от нагрузки обороты двигателя. Т.е. такое ощущение будет что прёт на низах, а на самом деле это работает ПИД регулятор :). Так вот если этого не сделать, а использовать одни таблицы сколько и где прыскать. То со временем все настройки уйдут (проверенно) и авто будет глохнуть на ХХ и обороты будут плавать. Обычно это происходить от того что форсунки со временем срабатываются и те милисекунды открытия которые прописаны в таблицах уже не то. Да и топливо разное, и условия разные. Поэтому на хх пид регулятор это необходимость).
User avatar
AndreyB
Site Admin
Posts: 14325
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

Re: Описание текущей архитектуры

Post by AndreyB »

pathfinder wrote:Кстати а как реализовано в прошивке то что при резком сбросе педали газа надо на ХХ двигатель выхватывать чтоб он не заглох.
Примерно ПИД и реализован :)
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions

Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
User avatar
Aquinax
Posts: 22
Joined: Sun Dec 06, 2015 3:17 am
Location: Russia Perm Berezniki

Re: Модуль дроссельной заслонки и холостого хода

Post by Aquinax »

А как быть мне с двумя электронными дросселями? BMW M70
e28 ever
Image
User avatar
AndreyB
Site Admin
Posts: 14325
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

Re: Модуль дроссельной заслонки и холостого хода

Post by AndreyB »

Aquinax wrote:А как быть мне с двумя электронными дросселями? BMW M70
Для начала можно ими управлять одинаково :)
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions

Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
User avatar
AndreyB
Site Admin
Posts: 14325
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

Re: Модуль дроссельной заслонки и холостого хода

Post by AndreyB »

В английской теме кстати есть какие-то результаты: http://rusefi.com/forum/viewtopic.php?f=5&t=592

[video][/video]

[video][/video]
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions

Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
User avatar
AndreyB
Site Admin
Posts: 14325
Joined: Wed Aug 28, 2013 1:28 am
Location: Jersey City
Github Username: rusefillc
Slack: Andrey B

Re: Модуль дроссельной заслонки и холостого хода

Post by AndreyB »

Железо ДПДЗ отпочковалось в http://rusefi.com/forum/viewtopic.php?f=8&t=997
Very limited telepathic abilities - please post logs & tunes where appropriate - http://rusefi.com/s/questions

Always looking for C/C++/Java/PHP developers! Please help us see https://rusefi.com/s/howtocontribute
ukr823f
Posts: 18
Joined: Tue Aug 25, 2015 7:53 pm

Re: Модуль дроссельной заслонки и холостого хода

Post by ukr823f »

Два датчика только для надёжности. Есть Main и Sub датчики. Вот при работе если - на 15-20% грубо говоря есть различие в показаниях между этими датчиками - мозг уходит в аварийный режим. Дроссель открывается на 15% чтобы были повышенные обороты, и вы могли добраться до места замены датчиков\ремонта. А так либо усредняйте между двумя датчиками показания, либо используйте один датчик как MAIN,а по второму просто контролируйте его (на предмет умирания дросселя\педали). Алгоритм что для педали что для дросселя одинков.

В мозге рисуете таблицу - положение педали газа\нагрузка на мотор. Значения таблицы - положение дросселя в процентах. Проценты открытия дросселя на основе вольтажа (с дпдз) вычисляются элементарно. На основе ПИД-регулятора устанавливаем дроссель в нужные положения.

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

Все настройки храняться постоянно в памяти ЭБУ до момента сброса клеемы аккума (так как на ЭБУ идёт постоянние питание как раз для хранения калибровочных таблиц и коррекций). То что после сброса клеемы заслонка самокалибруется при первом включении это 100%

Такой алгоритм работы на ЭБУ субару.

По педали всё просто 0.5В - это минимальное положение педали которое равно 0% нажатия, 3.3В - максимальное напряжение которое равно 100% открытия. То есть если напряжение даже выше 3.3В (например 3.6В -это по АЦП если считать - так как питание ДПДЗ - 5В как и всех остальных датчиков) То ничего страшного, просто знаем что дроссель надо открытым на 100% держать. Ход педали по крайней мере на субаре ограничен механически. То есть без упора педаль выдаёт от 0.5 до 4.7 вольт помойму, а механически она ограничена стопором под педалью, и напряжение на выходе ДПДЗ педалей не поднимается выше 3.4 Вольт.
Post Reply