wiki.js/ru/dev/Code_overview.md

34 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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