Trying to create a controller to maintain a certain speed

Hi guys, I've created a model to emulate a BMW R1200gs motorbike and my end goal is to run a simulation where the motorbike drives at full power to untl it reaches a speed of 60mph and then stays at 60mph over a period of 60 seconds. The acceleration is all working perfectly but I can't figure out how to make a controller that will keep the motorbike at 60mph once it reaches this target. I don't want to use a saturation limiter that just caps the speed I want to make it something that is controlled. I've inserted some images of the model so far bellow. Any suggestions would be much appreciated. :)
Overall model
MPH vs Time

 Accepted Answer

Use a PI-controller which receives 60MPH as setpoint and receives the actual speed, which controls the engine torque.

3 Comments

Hi, I've had no experinece with PI controllers, what values would you assign to the propertional and integral sections when programming. How would you let it receive 60MPH when programming the controller? Thanks for you help.
How do I navigate arround this to acheive what you're suggesting?
The 60MPH setpoint is coming from a Constant block.
When tuning the PI controller, start with gain of the integator of zero, and find a suitable value for the proportional gain. When the proportional controller can regulate the speed despite a steady-state offset, start adding integrator gain.
Please search online for basics on PI controllers.

Sign in to comment.

More Answers (0)

Categories

Find more on MATLAB in Help Center and File Exchange

Products

Release

R2020a

Asked:

on 1 Apr 2021

Commented:

on 1 Apr 2021

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!