Использование массивов в "Контролер АКПП"
- Войдите на сайт для отправки комментариев
Доброе время суток, хотел бы попросить совета и навести на правильный путь)
Развел и спаял плату управления акпп для ардуинки. Сейчас пишу код управления и появились некоторые сложности. Как правильно реализовать переключение передач. Касательно чтений датчиков, уже все готово и работает почти идеально. Начал создавать массив(карту) по которой должны происходить переключения, отбросив дополнительные параметры, нужно уточнить конкретно по таблице(как реализовать массив).
typedef struct { byte skorost; byte gear; } Select; Select dz0[26] = {{0, 1},{5, 1},{10, 2},{15, 2},{20, 2},{25, 2}, {30, 2},{35, 3},{40, 3},{45, 4},{50, 4},{55, 5}, {60, 5},{65, 6},{70, 6},{75, 6},{80, 6},{85, 6}, {90, 6},{95, 6},{100, 7},{110, 7},{120, 7},{130, 7}, {150, 7},{180, 7}};
И кусочек кода.
gear - передача в акпп.
skorost - скорость на которой активируется передача.
dz0-dz10 - положение дроельной заслонки.
В коробке конешно их не 7, но это своебразная иметация, вобщем так заложены переключения в родном блоке, а с корость это уже из "неба" взята примерно.
Чет у нас здесь активно пошла автомобильная тема. По вашему ТЗ не понял ничего. Мож конечно это я такой бестолковый.
Ваша таблица учитывает энергичность работы тапком для ускорения переключений вверх-вниз? У меня хоть и не автомат, а вариатор, но там эта "автоматная" фишка тоже присуствует.
В идеале должна быть зависмость скорости и положения педали(грубо говоря). Т.е. при одном положении педали и по мере роста скорости контролер переключает передачи, при другом положении педали, передачи будут переключатся позже или раньше в зависимости от уровня положения, в моем случае от 0 до 100%. Учитывая что все это быстро читается в ардуинке будет своебразная динамика, чем сильнее нажата педаль тем позже переключится на следующую передачу. Но проблема в том что запутался в этих массивах.
Может так будет более правильно, если вообще правильно?)
Вообще, по различным свидетельствам, автоматы у разных автомобилей работают по разному. Иногда в отзывах о какой-нибудь машине можно встретить сетования, что автомат, например, тупит. Я никак это не могу прокомментировать по той причине, что на каких автоматах я ни ездил, жаловаться мне на них вообще ни разу не пришло в голову. Как он там обычно перебирает скорости, вообще никогда не обращал внимания. Знаю только, что если надо разогнаться быстро, газ должен быть утоплен практически одним ударом. Тогда автомат дольше крутит на одной передаче и переходит на повышенную позже и на большей скорости, чем при спокойной езде. Т.е. если составлять таблицы, то получается, что их надо минимум две, одну для спокойной езды, одну для агрессивной. Но что-то мне подсказывает, что просто таблицами здесь не обойтись, т.к. есть и другие специфические зависимости.
Если не отходить от темы, то мне нужно знать правльно ли я массив организовал, на первое время по крайней мере, а дальше по мере поступления заморочек, а замарочки будут еще в том, что как мне потом сверятся по нему.
У меня коробка режимная, стандартная можно сказать, для старой тайоты. всего будет 3 массива на сколько я понимаю, на каждый режим, сейчас мне с основой нужно разобраться. Дальше уже будет не сложно. :)
dryupin, поясните, что Вы подразумеваете под словами "организовал массив". Вас интересует синтаксис с точки зрения С или величина конкретных цифр?
Если второе - то каждая цифра стоит не одну сотню тысяч $, т.к. добывается в многочисленных продолжительных эксперименетах на различных режимах работы с использованием, опять же, дорогостоящей аппартатуры для измерения мощности, расхода, химического анализа продуктов сгорания и пр.
Вроде придельно четко дал понять что вопрос в коде, а не в исходных данных. Какая может идти речь о испытаниях) Мы вроде в России живем ну или в ближнем зарубежье. Да и вроде форум тут для любителей...
Вобщем-то уже не важно, ответ я уже получил на свой вопрос.
п.с. форумы постепено забывают.
Такое ошущение что все вымерли. На менее профильно ресурсе в подтеме ардуино и то больше нашлось желающих помоч и поделится опытом.
так должно быть:
Есть еще функция как опредлить текущую передачу по скорости и положению заслонки что бы присваивать gear = normal[i][j], но это уже другая история.
Плохой вариант, с точки зрения размера занимаемой памяти. А так как Вам для управления АКПП нужно учитывать далеко не только скорость, то экономия памяти очень актуальна. Так же, с точки зрения АКПП, нет никакого смысла в скоростях свыше 150 км/ч. Я просто не встречал серийных автомобилей, которые на такой скорости могут ехать иначе, как на высшей из имеющихся передач.
А вообще, скорость как раз не нужно контролировать. Ее вы из оборотов двигателя и текущей передачи всегда посчитаете. Вам нужно контролировать:
1. Обороты двигателя или вала главной передачи
2. Датчик положения рычага селектора
3. Датчик положения педали газа
4. Датчик педали тормоза (для переключения на пониженную при торможении двигателем)
5. Датчик массового расхода воздуха
6. Лямбда зонды (эти оба для оценки оптимальности передачи при текущей нагрузке на двигатель)
7. Датчики АБС (для определения движения по кривой, когда скорости колес на одной оси различны)
Это навскидку. Может чего и пропустил.