если tdz > ((ckps.period_curr) * CKPS_COGS) - K
то tdz = ((ckps.period_curr) * CKPS_COGS) - K
Где K- константа, которая добавляет определенное кол-во тактов которое прошло с момента входа в прерывание (с запасом)
K = 5...10
Управление накопл. энергии катушек зажигания (Dwell control)
Moderator: STC
- STC
- LQFP144 - On Top Of The Game
- Posts: 2420
- Joined: Fri Oct 22, 2010 10:47 pm
- Location: Ukraine, Kiev
- Contact:
Re: Управление накоплением энергии катушек зажигания
Author of the SECU-3 project. SECU-3 Engine control unit / Ignition control system
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
Re: Управление накоплением энергии катушек зажигания
Где то так
void td (struct ecudata_t* d)
{
int16_t i;
int16_t rtd = d->sens.voltage;
for(i = 31; i >=0; i--)
{
if(rtd>=set_zad)break;
}
tdz = fwdata.coil_on_time;
if (tdz > ((ckps.period_curr) * CKPS_COGS))
tdz = ((ckps.period_curr) * CKPS_COGS) - K;
}
void td (struct ecudata_t* d)
{
int16_t i;
int16_t rtd = d->sens.voltage;
for(i = 31; i >=0; i--)
{
if(rtd>=set_zad)break;
}
tdz = fwdata.coil_on_time;
if (tdz > ((ckps.period_curr) * CKPS_COGS))
tdz = ((ckps.period_curr) * CKPS_COGS) - K;
}
- STC
- LQFP144 - On Top Of The Game
- Posts: 2420
- Joined: Fri Oct 22, 2010 10:47 pm
- Location: Ukraine, Kiev
- Contact:
Re: Управление накоплением энергии катушек зажигания
Да, можно и так. Но как я понял ф. td() вызывается из основного цикла и к моменту возникновения прерывания проверенное значение может устареть. Думаю лучше перенести проверку в прерывание (непосредственно перед занесением в COMPB)
Author of the SECU-3 project. SECU-3 Engine control unit / Ignition control system
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
Re: Управление накоплением энергии катушек зажигания
Поправил и скомпилировал импульсы пошли.
- STC
- LQFP144 - On Top Of The Game
- Posts: 2420
- Joined: Fri Oct 22, 2010 10:47 pm
- Location: Ukraine, Kiev
- Contact:
Re: Управление накоплением энергии катушек зажигания
Было бы хорошо если бы данная реализация алгоритма оказалась живучей. Посмотрим.
Author of the SECU-3 project. SECU-3 Engine control unit / Ignition control system
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
Re: Управление накоплением энергии катушек зажигания
Завтра попробую протестировать, если сильно не загрузят работой.
- STC
- LQFP144 - On Top Of The Game
- Posts: 2420
- Joined: Fri Oct 22, 2010 10:47 pm
- Location: Ukraine, Kiev
- Contact:
Re: Управление накоплением энергии катушек зажигания
Только нужно помнить о том, что если двигатель остановится в момент накопления энергии, то транзистор останется открытым. Для этого должна быть реализована отсечка о которой мы уже говорили.
Author of the SECU-3 project. SECU-3 Engine control unit / Ignition control system
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
Re: Управление накоплением энергии катушек зажигания
Да это помню, давай определимся какой порт выберим для выхода отсечки. Как и предполагалось длительность импульсов при старте(заводке машины,это будет особо заметно в зимнее время когда стартер еле крутит) не регулируется от напряжения, длительность накопления очень большая надо ее ограничить, как ты уже писал хотя бы до 5 мс.
- STC
- LQFP144 - On Top Of The Game
- Posts: 2420
- Joined: Fri Oct 22, 2010 10:47 pm
- Location: Ukraine, Kiev
- Contact:
Re: Управление накоплением энергии катушек зажигания
А зачем для отсечки выход? У нас есть CLIM, его можно использовать либо для полного выключения транзистора при превышении тока, либо для ограничения тока (импульсы высокой частоты).
А почему на старте длительность импульсов не регулируется от напряжения?
А почему на старте длительность импульсов не регулируется от напряжения?
Author of the SECU-3 project. SECU-3 Engine control unit / Ignition control system
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
Re: Управление накоплением энергии катушек зажигания
Как то не подумал о импульсах высокой частоты, что бы поддерживать ограничение тока. Даже не представляю как это можно реализовать, но с твоей помощью думаю можно все.
По поводу длительности импульсов, частота вращения находится за зоной 200 оборотов, но при этом брак СЕ еще не срабатывает, быстрей всего текущий период очень большой и OCR1B выходит за зону таймера.
По поводу длительности импульсов, частота вращения находится за зоной 200 оборотов, но при этом брак СЕ еще не срабатывает, быстрей всего текущий период очень большой и OCR1B выходит за зону таймера.