Dmitrich2
Посмотрел твои исходники. Интересный вариант реализации. Я о таком думал. Надо подумать о том как сделать проще. Возможно делать привязку не к оборотам, а к межзубному периоду полученному непосредственно перед началом вычислений или использовать значение таймера полученное в предыдущем цикле зажигания. Когда у меня будет больше времени, то я еще подумаю.
Управление накопл. энергии катушек зажигания (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: Управление накоплением энергии катушек зажигания
Провел испытания на машине при температуре -11, запуск двигателя стал легче, хотя просадка аккумулятора на БК показывала 7,8 в. думаю на катушке было еще меньше. При подходе оборотов 3500 - 3900 двигатель начинал работать с перебоями и глох. Хорошо бы было найти эту точку привязки. При стендовой настройке вышел со строя коммутирующий транзистор пришлось сделать дополнительно токовый компаратор. Также сделал эксперемент с коммутатором и обычной прошивкой, запитав его от отдельного аккумулятора PG12-7,2 результат отличный, заводится тоже легко. Тоесть причина тяжелого запуска в недостаточном открытии коммутирующего транзистора.
- 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: Управление накоплением энергии катушек зажигания
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: Управление накоплением энергии катушек зажигания
STC
Нарисовал времянку работы шкива по свободе посмотри может что не так.
Нарисовал времянку работы шкива по свободе посмотри может что не так.
- Attachments
-
- шкив.zip
- (14.15 KiB) Downloaded 466 times
- STC
- LQFP144 - On Top Of The Game
- Posts: 2420
- Joined: Fri Oct 22, 2010 10:47 pm
- Location: Ukraine, Kiev
- Contact:
Re: Управление накоплением энергии катушек зажигания
Поразмышлял над разными алгоритмами стараясь выбрать самый простой. Пока остановился на следующем алгоритме.
------------------------------------------
В основном цикле программы по полученному напряжению бортовой сети из таблицы получаем задержку (можно дополнительно использовать линейную интерполяцию). Полученную ЗАДЕРЖКУ (тики таймера) отдаем модулю ckps.
После выдачи искры в текущем цикле зажигания (в обработчике прерывания канала А) расчитываем на основе УОЗ значение таймера при котором произойдет выдача искры в следующем цикле зажигания. Вычитаем из полученного значения таймера значение задержки и загружаем в модуль сравнения B. В прерывании от канала А идет выдача искры (выключение тока через КЗ), в прерывании от канала В идет запуск накопления.(включение тока через КЗ)
Так в каждом цикле.
Что нужно дополнительно учесть:
- после выдачи искры разрешать накопление энергии для следующего цикла не сразу, а с задержкой (пока горит дуга в свече). Не знаю нужно ли это...
- Сделать аварийную отсечку. Так как мы отсчитываем момент выдачи искры по зубьям, а шкив может остановиться прежде чем
мы досчитаем, то транзистор останется открытым. Для предотвращения этого, после начала накопления программируем канал В на аварийную отсечку через, скажем 5 мс.
-----------------------------------
В приведенном выше алгоритме есть только одно длительное вычисление (длительное из-за использования деления). То есть мы лишний раз не переводим из задержки в градусы.
------------------------------------------
В основном цикле программы по полученному напряжению бортовой сети из таблицы получаем задержку (можно дополнительно использовать линейную интерполяцию). Полученную ЗАДЕРЖКУ (тики таймера) отдаем модулю ckps.
После выдачи искры в текущем цикле зажигания (в обработчике прерывания канала А) расчитываем на основе УОЗ значение таймера при котором произойдет выдача искры в следующем цикле зажигания. Вычитаем из полученного значения таймера значение задержки и загружаем в модуль сравнения B. В прерывании от канала А идет выдача искры (выключение тока через КЗ), в прерывании от канала В идет запуск накопления.(включение тока через КЗ)
Так в каждом цикле.
Что нужно дополнительно учесть:
- после выдачи искры разрешать накопление энергии для следующего цикла не сразу, а с задержкой (пока горит дуга в свече). Не знаю нужно ли это...
- Сделать аварийную отсечку. Так как мы отсчитываем момент выдачи искры по зубьям, а шкив может остановиться прежде чем
мы досчитаем, то транзистор останется открытым. Для предотвращения этого, после начала накопления программируем канал В на аварийную отсечку через, скажем 5 мс.
-----------------------------------
В приведенном выше алгоритме есть только одно длительное вычисление (длительное из-за использования деления). То есть мы лишний раз не переводим из задержки в градусы.
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
- STC
- LQFP144 - On Top Of The Game
- Posts: 2420
- Joined: Fri Oct 22, 2010 10:47 pm
- Location: Ukraine, Kiev
- Contact:
Re: Управление накоплением энергии катушек зажигания
Момент выдачи искры в следующем цикле зажигания расчитать легко.
- Мы знаем что между двумя соседними моментами выдачи искры всегда будет приблизительно 180(4ц.), 120(6ц.) или 90 град.(8ц.) Назовем это Периодом Загигания В Градусах
- Знаем межзубный период на момент расчетов
- Знаем кол-во градусов на зуб.
Момент нач.накопления = Тек.знач.таймера + (Межзубн.период * Период.зажиг.в град.) / град.на зуб
- Мы знаем что между двумя соседними моментами выдачи искры всегда будет приблизительно 180(4ц.), 120(6ц.) или 90 град.(8ц.) Назовем это Периодом Загигания В Градусах
- Знаем межзубный период на момент расчетов
- Знаем кол-во градусов на зуб.
Момент нач.накопления = Тек.знач.таймера + (Межзубн.период * Период.зажиг.в град.) / град.на зуб
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: Управление накоплением энергии катушек зажигания
Тек.знач.таймера, если правильно понял это регистр захвата GetICR()
Дело в том что пробовал брать для начала расчета 180 град. и получается по выходу 2-го канала все проходит,а вот по 1-у каналу идет сбой или пропадание за счет того что регистр захвата большей длительности (пропущенные зубья-синхрометка),пройдя пропущенные зубья длительность импульса и работа восстанавливается. При уменьшении напряжения ниже 14.3 в. идет смещение порога то есть пропадание появляется при более низких оборотах. Желательно как то ограничить длительность накопления за счет оборотов.
Дело в том что пробовал брать для начала расчета 180 град. и получается по выходу 2-го канала все проходит,а вот по 1-у каналу идет сбой или пропадание за счет того что регистр захвата большей длительности (пропущенные зубья-синхрометка),пройдя пропущенные зубья длительность импульса и работа восстанавливается. При уменьшении напряжения ниже 14.3 в. идет смещение порога то есть пропадание появляется при более низких оборотах. Желательно как то ограничить длительность накопления за счет оборотов.
- STC
- LQFP144 - On Top Of The Game
- Posts: 2420
- Joined: Fri Oct 22, 2010 10:47 pm
- Location: Ukraine, Kiev
- Contact:
Re: Управление накоплением энергии катушек зажигания
Да, о том что есть синхрометка я не подумал. Тогда нужно завести еще одну переменную (в дополнение к period_curr) и в нее записывать только нормальные периоды, а случаи с синхрометкой пропускать. То есть обновлять переменную во всех случаях кроме 59 и 60 зубьев (точно не помню +/- 1).
Ну а по поводу самого алгоритма что скажешь?
Ну а по поводу самого алгоритма что скажешь?
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