Страница 1 из 1

Нелинейная калибровка скорости/одометра

Добавлено: 01 авг 2016, 12:22
bobicom78
Доброе время суток.

Ситуация:
Имеем в файле user.ecuxml конструкцию вида
<base-raw> Core2106 </base-raw>
<value-2> 1.253 </value-2>
Все хорошо, вопросов нет.
НО!
это хорошо работает в городе на небольших скоростях.
а на трассе ситуация меняется.
На скорости порядка 80 разбежка со скоростью по GPS уже заметна... а на 100 км/ч уже порядочная. хобдрайв показывает повышенную скорость. В итоге имеем неправильный пробег на дистанции уже в 70-100 км. Разность по километражу может достигать 1,5 км на 70 км пути.
Теперь собственно вопрос:
А нельзя ли использовать условные выражения в для изменения этого множителя скорости?
Например:
ЕСЛИ скорость < 60 ТОГДА <value-2> х1 </value-2> ИНАЧЕ <value-2> х2 </value-2>.

Просто очень неудобно постоянно его менять при выезде на трассу и при возвращении в город.

Я понимаю что вопрос не ширпотребовский но он возник. Думаю скорее всего такая ситуация возникла из-за того что в приборке стоит тросовый привод спидометра с герконовым контактом датчика скорости ЭБУ. И с увеличением скорости все больше проявляется инертность этой механической системы. (геркон новый дребезга нет, проверял по логам. скорость не скачет а меняется как надо, плавно и без резких взлетов и падений)

Re: Вопросы по калибровке расхода и параметров

Добавлено: 01 авг 2016, 14:21
cail
Да, можно задать алгоритмическую формулу. Выражения как описаны здесь:
https://hobdrive.userecho.com/topics/21 ... -nastroek/

Должно получиться чтото навроде:

Код: Выделить всё

<base-raw> Core2106 </base-raw>
<eval>If(get(2) > 60; get(2)*1.253; get(2)*1.4)</eval>
Я не тестировал, проверьте log файл если прямо так не заработает.

Re: Вопросы по калибровке расхода и параметров

Добавлено: 01 авг 2016, 14:25
bobicom78
Спасибо. Будем делать посмотреть

Re: Вопросы по калибровке расхода и параметров

Добавлено: 11 авг 2016, 10:12
bobicom78
cail
А можно дать небольшое пояснение по строке?
<eval>If(get(2) > 60; get(2)*1.253; get(2)*1.4)</eval>

я так понял что:
60 это скорость для условия;
get(2)*1.253; значение если условие выполнено
get(2)*1.4 значение если условие не выполнено

но не очень понял что это: get(2) &gt
да и вообще get(2) что это? это значит взять второй байт из ответа core2106?

а разве не надо всю эту строку вставить внутрь <value-2> ... </value-2>?

вчера я вставил в файл строки так как вы написали. получилось следующее
при заведенном двигателе (установленном соединении с ЭБУ) и стоящей машине, скорость раз в секунду менялась в цикле 0, 319, 0, 319... и т.д. (319 не точно, но смысл понятен я думаю).

Re: Вопросы по калибровке расхода и параметров

Добавлено: 11 авг 2016, 12:16
cail
get(2) > 60;
> это символ > записанный в xml.
т.е. если байт 2 из core2106 больше 60 - считать так, иначе считать по другому.

В log.txt никакой ошибки не выплевывается?

Re: Вопросы по калибровке расхода и параметров

Добавлено: 11 авг 2016, 13:33
bobicom78
прикладываю в архивах файлы user.ecuxml и их логи
поездка с изменениями в ecuxml (1.zip)
и
поездка с первоначальным ecuxml (2.zip)

при изменениях:
стоя на месте скорость пляшет 0-320-1-320-0..... типа того
а в движении скорость всегда 0.

GPS был включен, если будет видно в логах то можно увидеть когда стою когда еду.

Re: Вопросы по калибровке расхода и параметров

Добавлено: 11 авг 2016, 14:41
cail
мм, посмотрел, похоже смещение в вашем случае по другому считается.
Попробуйте get(0) везде поставить.
Для отладки можно множители видимые какие-нибудь временно выставить, например 1 и 100 - чтобы сразу видно было что граница срабатывает.

Re: Вопросы по калибровке расхода и параметров

Добавлено: 11 авг 2016, 15:07
bobicom78
была така мысль что не от туда берет байты.
попробую. ближайшие пару дней не получится а потом точно попробую. спасибо

Re: Вопросы по калибровке расхода и параметров

Добавлено: 15 авг 2016, 14:06
bobicom78
Все заработало. Действительно в get надо было указать ноль. т.е. не учитывыть первые два байта ответа 21 06. Спасибо. Будем дальше дорабатывать под свои нужды. (пытливый мозг не дает покоя :))