Hello, Michael! You wrote to Dmitry Orlov on Wed, 09 Jun 2010 21:02:36 +0400:
DO>> Hу так про механику в таких делах уже забыли давно все.
MB> Понятно дело. Я рассуждал об истоках той кусочной линейности в MB> зависимости MB> УОЗ от оборотов, которую можно наблюдать в характеристиках MB> трамблёров.
DO>>>> то полиномом всегда описать можно,
MB>>> Можно, но он будет не менее чем второй степени, скорее всего, MB>>> ещё большей.
DO>> Вполне возможно, но вопрос тут чисто в реализации тех или иных DO>> алгоритмов.
MB> Да что там реализовывать-то, какие "те или иные" алгоритмы? Тупо MB> определить y в выражении y = A*x^3 + B*x^2 + C*x + D при известных x MB> и коэффициентах? Да не проблема ни разу. Даже если зависимость не MB> двух-, а трёхмерная. Hу чуть побольше умножений будет.
Я некую экспериментально полученную зависимость интерполировал полиномом, потом его превращал в таблицу для кусочно-линейной аппроксимации в целых числах на контроллере. Еще был случай, когда зависимость была получена аналитически, но в виде прямой функции, а мне была нужна обратная, так я ее обращал численно и потом делал тоже самое. Или еще был случай, когда зависимость не сильно отличалась от y=x, так я ее "лесенкой" заменял вида y=x+T[x>>3]. Это все в целых и в основном восьмиразрядных числах, на более мощных контроллерах я пользуюсь более длинными целыми, работая с ними как с числами с фиксированной точкой, а там, где и с памятью и со скоростью нет проблем тупо в лоб пользуюсь плавучкой.
MB>>> Считать значение придётся в каждом такте зажигания. В принципе,
DO>> Кстати, совсем не обязательно, механические системы этого не делают DO>> в каждом такте, а работают по весьма усредненным параметрам. Hе DO>> обязательно в каждом такте и в электронной системе это делать,
MB> Пожалуй, верно. Маховик всё равно не позволяет быстро измениться MB> скорости коленвала, а реакция на другие параметры не столь уж и MB> важна, можно подождать.
Именно, быстро надо только сам угол отработать, и то если это таймерами аппаратно не сделано. А считать все можно по контроллерным меркам совсем медленно, но библиотека для плавающей арифметики занимает много памяти, поэтому просто вычисление полинома может быть менее эффективно, чем полная таблица или кусочно-линейная аппроксимация по таблице. Хотя сейчас, когда в MCU 32хразрядные контроллеры ставят (на сколько я в курсе), можно особо оптимизацией алгоритмов не заморачиваться.
MB> У моего москвича-2140 вакуумный регулятор вообще был отключен, и MB> ничего, ездил. Центробежный работал, конечно.
Причем тоже, что очевидно, весьма усредненно.
MB> ... Hо сейчас всё решает чёрная метка.
dima
formatting link