Info

# Working around looping problem

1 view (last 30 days)
Mark Kelly on 20 Jan 2014
Closed: MATLAB Answer Bot on 20 Aug 2021
Hi,
So I am modelling the acceleration and coasting speed of an electric car over time. I have managed to model the max acceleration of the car. What I am trying to do is, once it reaches this max speed (8 m/s) the motor should switch off until it reaches 4 m/s where it will accelerate again before this process repeats. Here's what I currently have:
for n=1:500
%Motor Torque
T(n)=Kt*I(n);
%Motor RPM
%Car velocity during acceleration, taking into account rolling resistance
%and aerodynamic drag. Once these are equal to the max motor speed, car
%will travel at fixed velocity
Efficiency(n)=PowerOut(n)/PowerIn(n);
d(n+1)=d(n) + (50/501)*vel(n); % Compute distance travelled.
end;
Now, if I put an if statement in here telling the motor to switch off once it reaches max speed, it will just decelerate for one iteration before accelerating back to maximum speed again over and over.
Does any one have any idea where to go with this?
Thanks!!

Doug Hull on 20 Jan 2014
Use Simulink for time based simulation. This is simple enough though that you can do this in MATLAB.
Put a flag that gets toggled at the top speed but does not toggle back until the bottom speed.
Doug