Моделирование подвески автомобиля¶
В данном примере будет продемонстрировано моделирование упрощенной подвески автомобиля, которая состоит из независимых передней и задней вертикальных подвесок. Модель включает в себя расчёт наклона кузова.
Схема подвески модели автомобиля:
Общий вид модели подвески автомобиля:
На рисунке показаны смоделированные характеристики полукара. Передняя и задняя подвески смоделированы как пружинно-амортизаторные системы. Более подробная модель включала бы модель шины и нелинейности демпфера, такие как зависящее от скорости демпфирование (при этом демпфирование при отскоке больше, чем при сжатии). Кузов транспортного средства имеет степени свободы наклона и отскока. Они представлены в модели четырьмя состояниями: вертикальное смещение, вертикальная скорость, угловое смещение по тангажу и угловая скорость по тангажу. Полная модель с шестью степенями свободы может быть реализована с использованием блоков векторной алгебры для выполнения преобразований осей и расчетов силы/перемещения/скорости. Блок уравнений 1 описывает влияние передней подвески на отскок (т.е. вертикальную степень свободы).:
$$F_{f} = 2K_f (L_f \theta - (z + h)) + 2C_f(L_f \dot{\theta} -\dot{z})$$
где:
$F_{f}, F_{r} = \mbox{ усилие, направленное вверх на кузов от передней/задней подвески}$
$K_f, K_r = \mbox{постоянная пружин передней и задней подвески}$
$C_f, C_r = \mbox{ коэффициент демпфирования передней и задней подвески}$
$L_f, L_r = \mbox{ расстояние по горизонтали от центра тяжести до передней/задней подвески}$
$\theta, \dot{\theta} = \mbox{угол тангажа (поворота) и скорость его изменения}$
$z, \dot{z} = \mbox{ расстояние отскока (по вертикали) и скорость его изменения}$
$h = \mbox { высота дороги }$
Блок уравнений 2 описывают моменты качки, обусловленные подвеской.
$$M_{f} = -L_{f}F_{f}$$
$$F_{r} = -2K_r (L_r\theta + (z + h)) -2C_r ( L_r \dot {\theta} + \dot{z})$$
$$M_{r} = L_r F_{r}$$
где:
- $M_{f}, M_{r} = \mbox{ Момент качки из-за передней/задней подвески}$
Блок уравнений 3 разрешают силы и моменты, возникающие при движении тела, согласно Второму закону Ньютона:
$$m_b\ddot{z} = F_{f} + F_{r} - m_b g$$
$$I_{yy} \ddot{\theta} = M_{f} + M_{r} + M_y $$
где:
$m_b = \mbox{ масса тела}$
$M_y = \mbox{ момент тангажа, вызванный ускорением транспортного средства}$
$I_{yy} = \mbox{момент инерции тела относительно центра тяжести}$
Загрузка и запуск симуляции¶
Подключение бэкенда - метода этображения графики:
using Plots
gr();
Загрузка и запуск модели:
try
engee.close("suspension", force=true) # закрытие модели
catch err # в случае, если нет модели, которую нужно закрыть и engee.close() не выполняется, то будет выполнена её загрузка после catch
m = engee.load("/user/start/examples/controls/suspension/suspension.engee") # загрузка модели
end;
try
engee.run(m, verbose=true) # запуск модели
catch err # в случае, если модель не загружена и engee.run() не выполняется, то будут выполнены две нижние строки после catch
m = engee.load("/user/start/examples/controls/suspension/suspension.engee") # загрузка модели
engee.run(m, verbose=true) # запуск модели
end
Обработка результатов¶
Выделение из переменной simout данных, описывающих тормозной путь и скольжение:
sleep(5)
data = collect(simout)
Определение данных из модели в соответствующие переменные:
stop_signal = collect(data[1])
barrier_signal = collect(data[2])
front_force = collect(data[3])
angle_speed = collect(data[4])
rear_force = collect(data[5])
angle = collect(data[6]);
Визуализация результатов моделирования:
p1 = plot(stop_signal[:,1], stop_signal[:,2], title="Сигнал торможения")
p2 = plot(barrier_signal[:,1], barrier_signal[:,2], title="Сигнал препятствия")
p3 = plot(front_force[:,1], front_force[:,2], title="Усилие на передней оси")
p4 = plot(angle_speed[:,1], angle_speed[:,2], title="Скорость изменения \n угла наклона")
p5 = plot(rear_force[:,1], rear_force[:,2], title="Усилие на задней оси")
p6 = plot(angle[:,1], angle[:,2], title="Угол наклона")
plot(p1, p2, p3, p4, p5, p6, layout=(3, 2), legend=false)
Вывод:¶
В данном примере было продемонстрировано моделирование упрощенной подвески автомобиля. Эта модель позволяет исследовать эффекты, возникающие при работе элементов демпфирования и жесткости подвески.