Моделирование движения электромобиля по циклу WLTC¶
В данном примере будет продемонстрировано моделирование движения электромобиля по ездовому циклу WLTC. Параметры автомобиля, электрической и механической систем повторяют характеристики электромобиля подобного Nissan Leaf.
Описание параметров и структуры модели¶
Движение электромобиля и его инерционность описываются блоком Электромобиль. На левый порт этого блока приходит результирующее усилие от двух пар колёс, соединённых с редукторами и электродвигателями, преобразующими и создающими крутящий момент. В блоке также рассчитывается сила сопротивления воздуха.
Основные параметры модели:
Название блока | Основной параметр |
---|---|
Электромобиль | Масса 1000 кг |
Батарея | Напряжение 390 В |
Электродвигатели | Постоянная крутящего момента 4 Нм/А |
Колёса | Радиус 0,32 м |
Дифференциалы | Передаточное отношение 0,5 |
Коэффициент сопротивления воздуха | 0.28 |
Схема модели:
Блок Электромобиль¶
Схема подсистемы Электромобиль:
Сила сопротивления воздуха в данной подсистеме определяется по формуле:
$$F_d = \frac{1}{2} C_x \rho S v^2,$$
где: $Cx$ - коэффициент лобового сопротивления, $\rho$ - плотность воздуха, $кг/м^3$, $S$ - площадь миделя (наибольшая площадь поперечного сечения объекта, перпендикулярная направлению движения), $м^2$, $v$ - скорость электромобиля.
Основные параметры, определяемые в подсистеме Электромобиль:
Схема подсистемы Водитель:¶
Подсистема Водитель представляет собой систему управления, которая генерирует управляющие сигналы для исполнительных устройств, которыми являются тормоза и электродвигатели электромобиля. Электродвигатели представлены блоками Электродвигатель передней оси и Электродвигатель задней оси, а тормоза блоком Тормозная система. В блоке Add вычисляется сигнал рассогласования между заданной и измеренной скоростями, который затем поступает на PID-регуляторы, генерирующие управляющие сигналы.
Схема подсистемы Тормозная система:¶
Подсистема состоит из 4-х тормозных дисков. Входной сигнал, поступающий на порт P, определяет давление в тормозной системе, порт S передаёт тормозной момент на каждое из колёс.
Блок WLTC¶
Блок WLTC представляет собой блок From Workspace в который, из обратных вызовов модели, поступают данные о ездовом цикле WLTC, преобразованные из формата XLSX.
Определение функции для загрузки и запуска модели:¶
function start_model_engee()
try
engee.close("electric_vehicle_performance", force=true) # закрытие модели
catch err # в случае, если нет модели, которую нужно закрыть и engee.close() не выполняется, то будет выполнена её загрузка после catch
m = engee.load("$(@__DIR__)/electric_vehicle_performance.engee") # загрузка модели
end;
try
engee.run(m) # запуск модели
catch err # в случае, если модель не загружена и engee.run() не выполняется, то будут выполнены две нижние строки после catch
m = engee.load("$(@__DIR__)/electric_vehicle_performance.engee") # загрузка модели
engee.run(m) # запуск модели
end
end
Запуск симуляции¶
start_model_engee() # запуск симуляции с помощью специальной функции, реализованной выше
Запись из simout в переменные сигналов, полученных в ходе симуляции (данных много, процесс может занимать около 4-х минут):
t = simout["electric_vehicle_performance/Электромобиль/Скорость в км/ч"].time[:]; # время
T = simout["electric_vehicle_performance/Расчёт мощности/Крутящий момент электродвигателя"].value[:]; # крутящий момент электродвигателя
speed = simout["electric_vehicle_performance/Электромобиль/Скорость в км/ч"].value[:]; # скорость автомобиля
forces_left = simout["electric_vehicle_performance/Электромобиль/Сила со стороны трансмиссии"].value[:]; # силы, действующие на автомобиль со стороны трансмиссии
forces_right = simout["electric_vehicle_performance/Электромобиль/Сила сопротивления воздуха"].value[:]; # силы, действующие на автомобиль со стороны окружающей среды
w = simout["electric_vehicle_performance/Расчёт мощности/Частота вращения электродвигателя"].value[:]; # частота вращения электродвигателя
q = simout["electric_vehicle_performance/Заряд батареи"].value[:]; # заряд батареи
P = simout["electric_vehicle_performance/Расчёт мощности/Мощность электродвигателя, кВт"].value[:]; # мощность электродвигателя
WLTC1 = simout["electric_vehicle_performance/WLTC.1"].value[:]; # цикл WLTC
pos = simout["electric_vehicle_performance/Электромобиль/Перемещение в км"].value[:]; # перемещение электромобиля
;
Визуализация результатов моделирования¶
Запуск библиотеки для построения графиков:
using Plots
gr()
Построение графиков сил, действующих на электромобиль и его скорости:
p1 = plot(t, forces_left, label="Усилие от трансмиссии, Н", linewidth=2)
p2 = plot(t, forces_right, label="Сопротивление воздуха, Н", linewidth=2, linecolor=2)
p3 = plot(t, speed, label="Скорость, км/ч", linewidth=2, linecolor=3)
plot(p1, p2, p3, layout=(3,1))