Untitled
unknown
plain_text
2 years ago
2.4 kB
2
Indexable
function [time, velocity, totalMovingForce, totalDrivingTorque] = plot_time_velocity_force_torque(mass, wheelRadius, motorTorqueConstant, motorEfficiency, engineTorqueConstant, engineEfficiency, f_R, g, m, ro_L, A_c, C_w, eta_drive, eta_EM, r_dyn, i, batteryCapacity, batteryCellVoltage, batteryCellResistance) % Initialize the time, velocity, electric motor torque, electric motor revolutions, % engine torque, and engine revolutions variables. time = 0:0.01:100; velocity = zeros(numel(time)); electricMotorTorque = zeros(numel(time)); electricMotorRevolutions = zeros(numel(time)); engineTorque = zeros(numel(time)); engineRevolutions = zeros(numel(time)); % Loop until the car reaches a speed of 100 km/h. for i = 1:numel(time) % Calculate the current electric motor torque, electric motor revolutions, % engine torque, and engine revolutions. if velocity(i) < 50 electricMotorTorque(i) = motorTorqueConstant * (velocity(i) / wheelRadius) * motorEfficiency; electricMotorRevolutions(i) = electricMotorTorque(i) * time(i) / motorTorqueConstant; engineTorque(i) = 0; engineRevolutions(i) = 0; elseif velocity(i) < 75 electricMotorTorque(i) = motorTorqueConstant * (velocity(i) / wheelRadius) * motorEfficiency; electricMotorRevolutions(i) = electricMotorTorque(i) * time(i) / motorTorqueConstant; engineTorque(i) = engineTorqueConstant * (velocity(i) / wheelRadius) * engineEfficiency; engineRevolutions(i) = engineTorque(i) * time(i) / engineTorqueConstant; else electricMotorTorque(i) = motorTorqueConstant * (velocity(i) / wheelRadius) * motorEfficiency; electricMotorRevolutions(i) = electricMotorTorque(i) * time(i) / motorTorqueConstant; engineTorque(i) = engineTorqueConstant * (velocity(i) / wheelRadius) * engineEfficiency; engineRevolutions(i) = engineTorque(i) * time(i) / engineTorqueConstant; end % Update the time, velocity, electric motor torque, electric motor revolutions, % engine torque, and engine revolutions variables. velocity(i) = velocity(i) + electricMotorTorque(i) * time(i) / mass; % Calculate the total moving force and total driving torque. totalMovingForce(i) = f_R + mass * g; totalDrivingTorque(i) = electricMotorTorque(i) + engineTorque(i); end % Plot the data. plot(time, velocity, 'b', time, totalMovingForce, 'r', time, totalDrivingTorque, 'g'); end
Editor is loading...