wiki.js/ru/dev/Code_overview.md

34 lines
4.1 KiB
Markdown
Raw Normal View History

2021-01-01 20:56:11 -08:00
---
2021-01-12 04:52:51 -08:00
title: Обзор кода Code_overview
2021-01-01 20:56:11 -08:00
description:
published: true
2021-01-12 05:08:15 -08:00
date: 2021-01-12T13:08:09.568Z
2021-01-01 20:56:11 -08:00
tags:
editor: markdown
dateCreated: 2021-01-02T04:56:02.482Z
---
2021-01-12 05:08:15 -08:00
# Обзор
Низкоуровневое описание каждого файла кода и его назначение можно найти на страницах Doxygen: https://speeduino.github.io/speeduino-doxygen/files.html
2021-01-01 20:56:11 -08:00
2021-01-12 05:08:15 -08:00
## Высокоуровневое описание контура управления Speeduino
2021-01-01 20:56:11 -08:00
2021-01-12 05:08:15 -08:00
Основной цикл в `speeduino.ino` файле работает постоянно и имеет 2 основных функций, определяя требования к двигателю и устанавливая параметры зажигания/впрыска в соответствии с этими требованиями.
2021-01-01 20:56:11 -08:00
2021-01-12 05:08:15 -08:00
Ниже приведено высокоуровневое описание функций, выполняемых в основном цикле:
2021-01-01 20:56:11 -08:00
2021-01-12 05:08:15 -08:00
- Проверка наличия запроса в последовательном буфере для обработки
- Проверяется, вращается ли двигатель, контролируя когда в последний раз был замечен зуб реперного диска коленвала
- Считывание значений со всех аналоговых датчиков (TPS, IAT, CLT, MAP, O2, Battery voltage). Не все датчики считываются по каждому циклу, так как данные с датчиков не меняются достаточно часто
- Следующие функции выполняются только в том случае, если обработчик имеет 'sync':
- Проверьте, не превышает ли частота вращения порог прокрутки (При прокрутке при запуске двигателя значения топлива и зажигания регулируются)
- Выполните все функции корректировки (см. раздел corrections.ino ниже). Результатом этого является %, на который будет регулироваться ширина пульса (100% = без регулировки, 110% = 10% больше топлива, 90% = 10% меньше топлива).
- Поиск VE (объемной эффективности) из основной топливной таблицы
- Преобразование VE в значение ширины пульса в милисекундах
- Поиск требуемого опережения из таблицы зажигания
- Рассчитать текущий угол коленвала
- Рассчитать угол поворота кривошипа, при котором каждый инжектор должен открываться, исходя из текущей частоты вращения двигателя
- Рассчитать угол выдержки на основе требуемого времени выдержки и текущей частоты вращения двигателя
- Вычислить угол начала зажигания для каждого цилиндра путем вычитания угла опережения и угла задержки из угла TDC (ВМТ)
- Установите "график" для каждого инжектора, преобразовав вышеуказанные вычисленные начальные углы в число uS в будущем (например, если инжектор должен начать открываться при 45\* ATDC, а угол поворота кривошипа в настоящее время составляет 10\* BTDC, сколько времени потребуется для перемещения этих 55\*)
- Выполните одну и ту же настройку графика для каждого выхода зажигания