I finished taking my control theory course, and I want to build an RC car that has cruise control. So I started off with the force analysis, and I got external forces that are constant. For example if the road is sloped, then the gravitational force is holding the car back. Another force is rolling resistance. I believe these are the only two considerable forces that will resist the car's movement; however, this does not provide a stable system.

Doing a little research online, I found that most models, if not all, say that the external forces are proportional to the velocity of the car. I understand how that can be related to the spring-damper model, but I don't see why the external forces are proportional to velocity when all the forces are constant. For instance, rolling resistance only depends on the weight/normal force of the car--not velocity. So how can I say they are variably dependent on velocity?

Also, let's assume that the forces are proportional to velocity, then how would I figure out that proportionally constant?

I am trying to create a model in simulink with some sort of controller, probably PID, then later transfer it into reality. And I am already stuck with the main system. Thanks for any help!

  • $\begingroup$ not an expert in this area. But apparently the rolling resistance slightly depends on velocity too: [ref] $\endgroup$
    – Arash
    Jul 29, 2018 at 2:42
  • $\begingroup$ @Alex: See my answer to electronics.stackexchange.com/questions/346730/… which may help. Bart is correct that you only need the speed setpoint and actual. Your real car knows nothing about slope, wind, tires, surface - only setpoint and speed. $\endgroup$
    – Transistor
    Jul 29, 2018 at 22:36
  • $\begingroup$ Regarding the force analysis, for a toy car at less than 20 kph the aerodynamic resistance will not play a significant effect. Just for reference, the aerodynamic resistance has a form of $F = \frac{1}{2}C_D \rho A v^2$. However as stated by Bart and Transistor, don't worry too much about the physical model, its best if you use error between the setpoint and speed, and play around with the parameters. $\endgroup$
    – NMech
    Aug 17, 2020 at 17:57

1 Answer 1


SimuLink is a great environment for learning about and developing a cruise control system, since it provides real life/time testing while observing every element in the system.

The resistances of the vehicle are certainly not proportional with the vehicle's speed, but it may come close at low speeds, ie. less than 10km/h. Both air and rolling fricion are not linear. In your case, rolling friction probably prevails because of the low speed I presume an RC car will maintain.

You have to design a model of your vehicle in SL to be able to quickly and accurately design a cruise control for it. There are SL models available on the web for free that allow you to simply fill in the vehicle's specs: mass, air drag coefficient, rolling resistance curve etc. I'd highly recommend to make use of this.

When you have created a model for your vehicle that you think quite accurately fits the real vehicle, start setting up a PID for the cruise control. The only input is the vehicle speed, the only output is the power demanded from the motor. Try to make the PID output and engine power proportional to get a quick and stable system. Same goes for the speed and input signal. In the beginning, make use of the saturation blocks to keep things stable, it allows for easier troubleshooting. Begin playing with the P, then I and then maybe D. There are methods for manually tuning the PID, like the Ziegler-Nichols method. They can be a good start.

When you have created a good and stable PID, you can make the PID values dependant on other variables like eg. speed, gearing ratio or battery charge.

Best of luck.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.