Именно, если на каждой по 2-3 секунды, то суммарно будет 30-40 + "хвост" с выходом на полную мощность в конце.
Если формулами, то программируется довольно просто, буквально в две строчки:
1. Вычисляем установившееся значение (скорости/мощности/наддува), которое будет достигнуто в будущем при неизменных внешних условиях. Зависит от позиции и внешней нагрузки.
2. Вычисляем, насколько за шаг расчета текущее значение приблизится к установившемуся.
Оно приблизится на величину = (расстояние между текущим и установившимся значениями) * (длительность шага расчета) / (постоянную времени).
Например:
Цитата:
dieselSpeedStationary = 1000 + Position * 200; // установившаяся (stationary) скорость = скорость холостого хода + 200 оборотов на позицию
dieselSpeedActual = dieselSpeedActual + (dieselSpeedStationary - dieselSpeedActual) * dt / 7;
// мгновенная (actual) скорость постепенно приближается к установившейся
// dt - сколько секунд прошло с предыдущего пересчета, условно, 1/FPS - надо вытащить из среды симуляции
// 7 секунд - это постоянная времени процесса, можно потом подстроить экспериментально
|