American English British English Български Čeština Français Deutsch (Du) Magyar Italiano 日本語 Lietuvių Polski Српски Slovenčina Español (Tú) Türkçe Українська
Select language:

Вопросы по реализации алгоритма ДПКВ

<<

sergeyk

User avatar

Posts: 10

Joined: 12 Aug 2017, 19:35

Your CAR: ВАЗ2110 бензиновый

SECU version: official SECU-3L


Has thanked: 0 time
Been thanked: 2 times

Post 14 Aug 2017, 22:49

Вопросы по реализации алгоритма ДПКВ

Разбираюсь с исходником ckps.c
Условия: ДПКВ60-2, DWELL_CONTROL
Есть вопросы:
1. Насколько точно алгоритм способен поддерживать установленный УОЗ? Понятно, что в установившемся режиме на постоянных оборотах можно ожидать высокой точности. А как это выглядит в динамике? Например, разгон или остановка авто.

Было бы замечательно, если кто-то смог выложить запись сигналов ДПКВ+каналы зажигания от старта до остановки ДВС хотя бы на холостом ходу в формате анализатора Saleae Logic.
2. Я так понимаю, что сигналы включения катушек формируются с минимальным неперекрытием каналов зажигания в 2 зуба? Это означает, что в любой момент времени может работать на накопление только 1 канал?
3. Точность окончания накопления без DWELL_CONTROL будет выше?
4. С какой целью восстанавливаются пропущенные зубья? Т.е. программно формируются 59-й и 60-й зуб? Если да, то почему нельзя рассмотреть выбитые зубы просто как один длинный?
<<

STC

User avatar

Posts: 6539

Joined: 30 Apr 2013, 23:41

Location: Ukraine

Your CAR: AZLK 2140

SECU version: DIY SECU-3


Has thanked: 801 times
Been thanked: 1317 times

Post 15 Aug 2017, 10:51

Re: Вопросы по реализации алгоритма ДПКВ

Для обеспечения максимальной точности в динамике, алгоритм опирается на зубья, а для этого как раз и восстанавливаются пропущенные.
p.s. Код для ДПКВ, который сейчас лежит в репозитории уже устарел и я его весной-летом почти полностью переписал.
Author of the SECU-3™ project http://SECU-3.org. An open source engine control unit / Ignition control system, (C) 2007.
Клуб проекта в Facebook https://www.facebook.com/groups/secu3club
Клуб проекта ВКонтакте https://vk.com/secu3club (вступаем!)
<<

sergeyk

User avatar

Posts: 10

Joined: 12 Aug 2017, 19:35

Your CAR: ВАЗ2110 бензиновый

SECU version: official SECU-3L


Has thanked: 0 time
Been thanked: 2 times

Post 15 Aug 2017, 19:16

Re: Вопросы по реализации алгоритма ДПКВ

В момент пропущенных зубов если изменяется скорость(ускорение), то восстанавливай-не восстанавливай, об ошибке узнаем только на первом реальном зубе. Или я что-то недопонимаю?

Мне важно понять не только как устроено, но и почему так.
<<

sergeyk

User avatar

Posts: 10

Joined: 12 Aug 2017, 19:35

Your CAR: ВАЗ2110 бензиновый

SECU version: official SECU-3L


Has thanked: 0 time
Been thanked: 2 times

Post 16 Aug 2017, 16:05

Re: Вопросы по реализации алгоритма ДПКВ

Удалось записать сигнал с ДПКВ. Увидел много нового и интересного.
Attachments
ДПКВ запись.zip
Saleae logic 1.2.10
(48.95 KiB) Downloaded 49 times
<<

sergeyk

User avatar

Posts: 10

Joined: 12 Aug 2017, 19:35

Your CAR: ВАЗ2110 бензиновый

SECU version: official SECU-3L


Has thanked: 0 time
Been thanked: 2 times

Post 07 Sep 2017, 09:35

Re: Вопросы по реализации алгоритма ДПКВ

Отвечу на свои вопросы.
На примере Января ошибку синхронизации можно получить около 0.2-0.3 угловых градуса. Предполагаю, что это без учёта аномалий.
Алгоритм с восстановлением выбитых зубов получается компактный(следовательно быстрый) и имеет меньше веток с условиями.
При восстановлении углового счётчика по межзубным интервалам вычислительные затраты меньше чем если считать в иных единицах измерения. Фактически для принятия решения требуется только операция сравнения (>=).
<<

sergeyk

User avatar

Posts: 10

Joined: 12 Aug 2017, 19:35

Your CAR: ВАЗ2110 бензиновый

SECU version: official SECU-3L


Has thanked: 0 time
Been thanked: 2 times

Post 17 Sep 2017, 17:07

Re: Вопросы по реализации алгоритма ДПКВ

Имитатор ДПКВ 60-2 реального двигателя.

Сигнал с датчика автомобиля записан логическим анализатором, данные импортированы в программу микроконтроллера. По ним синтезируется логический сигнал.
Имитируются следующие события: запуск двигателя, срыв синхронизации ДПКВ(примерно через 2,8 сек от начала), остановка двигателя.
Можно использовать для отладки алгоритмов на столе.

Контроллер Atmega328
Кварц 20МГц
Выходной сигнал снимается с вывода D2.
Attachments
dpkv_simu.zip
(161.76 KiB) Downloaded 24 times
<<

sergeyk

User avatar

Posts: 10

Joined: 12 Aug 2017, 19:35

Your CAR: ВАЗ2110 бензиновый

SECU version: official SECU-3L


Has thanked: 0 time
Been thanked: 2 times

Post 20 Sep 2017, 16:18

Re: Вопросы по реализации алгоритма ДПКВ

В исходнике ckps.c перезагрузка актуальных значений в буфер происходит за 66 градусов перед ВМТ. Чем объясняется выбор именно такого угла, а скажем не 60 или 90 градусов?
<<

STC

User avatar

Posts: 6539

Joined: 30 Apr 2013, 23:41

Location: Ukraine

Your CAR: AZLK 2140

SECU version: DIY SECU-3


Has thanked: 801 times
Been thanked: 1317 times

Post 20 Sep 2017, 16:22

Re: Вопросы по реализации алгоритма ДПКВ

sergeyk wrote:В исходнике ckps.c перезагрузка актуальных значений в буфер происходит за 66 градусов перед ВМТ. Чем объясняется выбор именно такого угла, а скажем не 60 или 90 градусов?

Объясняется максимально возможным требуемым УОЗ 60°.
Author of the SECU-3™ project http://SECU-3.org. An open source engine control unit / Ignition control system, (C) 2007.
Клуб проекта в Facebook https://www.facebook.com/groups/secu3club
Клуб проекта ВКонтакте https://vk.com/secu3club (вступаем!)
<<

sergeyk

User avatar

Posts: 10

Joined: 12 Aug 2017, 19:35

Your CAR: ВАЗ2110 бензиновый

SECU version: official SECU-3L


Has thanked: 0 time
Been thanked: 2 times

Post 10 Oct 2017, 13:10

Re: Вопросы по реализации алгоритма ДПКВ

Сколько времени уходит на обработчик прерывания по захвату(вычисления и прочее)?
<<

sergeyk

User avatar

Posts: 10

Joined: 12 Aug 2017, 19:35

Your CAR: ВАЗ2110 бензиновый

SECU version: official SECU-3L


Has thanked: 0 time
Been thanked: 2 times

Post 12 Oct 2017, 20:33

Re: Вопросы по реализации алгоритма ДПКВ

Ковырялся в исходнике интересного проекта Megasquirt, нашёл непонятные режимы зажигания:
--------------------------------------------------------
// User inputs - 1 set in flash, 1 in ram
typedef struct {
unsigned char no_cyl,no_skip_pulses, // skip >= n pulses at startup
ICIgnOption, // Bit 0: Input capture: 0 = falling edge, 1 rising
// Bit 1: 1= trigger return mode in cranking; for this
// mode, set bit 0 to normal edge, then opp.edge used in cranking.
// trigger return not applicable to EDIS
// Bits 2-3: spare
// Bits 4-7: 0 = standard - charge coil, spark
// 1 = Ford EDIS option
// 2 = EDIS with multispark

spkout_hi_lo, // Ign Output compare: 0 = spark low (gnd)
max_coil_dur,max_spk_dur,DurAcc; // ms x 10
--------------------------------------------------------
Кто-нибудь может пояснить чем эти режимы между собой различаются?
Next

Return to Прошивки

Who is online

Users browsing this forum: No registered users and 1 guest

Powered by phpBB® Forum Software © phpBB Group.