. : A C D  -  E X A M P L E : .

ACD Example - Cruise Control

We have identified a transfer function system for our car model in IDCON Classic Toolbox  Example.  Lets now design a cruise controller for that vehicle by using the ACD, Automatic Controller Design Toolbox.  The desired output of the cruise controller, is to keep the vehicle at a constant speed, which has been determined by the driver.  So in this example we are wanting to keep the change in vehicle speed, from the "set" speed, to zero, even when the "Gas Pedal" is depressed,  or when road conditions change.  (Here we will look at varying the "Gas Pedal" only).

1. Start ACD

The Automatic Controller Design Toolbox, (ACD), can be used in a number of ways.  Like all MATLAB Toolboxes, the ACD functions can be called directly via m-files.  But the ACD functions can also be accessed through a very easy to use GUI called, ACDMENU.  Also the tight integration with the IDCON Classic Toolbox, allows either product to be launch from the respective GUIs, as shown in the IDCON Classic Toolbox example.
The ACD Main Menu is shown below:



Straight away you notice the similarity of the GUI design with that of IDCMENU.  In this menu, the left hand side describes the open loop parameters and the right hand the closed loop response.   The top half gives text-based information on the system, and the bottom, graphical. The far right shows a series of pushbuttons for defining and designing the controller as well as pushbuttons for GUI functionality, with the bottom pushbutton, allowing you to go directly to IDCMENU.

2. Define Controller Parameters

Once the ACDMENU is running, we need to define the type of controller we would like to design, and parameters required for the design process.  The parameter menu is shown below:

 

We have decided a PIDT1 Type 1 controller will be used in the cruise controller.  The PIDT1 Type 1 controller has the following form:



The ACD will determine the coefficients VC, TI, TL, and T1.  The other parameters on this menu include the definition of desired pole locations.  A region in the complex s-plane is defined by specifying pole limits on the left hand side of the real axis, and by specifying a damping ratio limit, ACD will define a controller that meets these limits.  A time horizon can also be specified to indicate a settling / steady state time limit.  Pushing the "OK" pushbutton will return you to the Main Menu.

The next item you need to define is the goal of the controller as well as the tolerance you will allow on the controller's response.  This is easily done graphically, through the use of the "Goal & Tolerance Definition Window", which is opened when the "Goal + Tolerance" pushbutton is pressed on the Main Menu.



Both the Goal and tolerances can be defined graphically by selecting markers with the mouse, entered directly by the series of "New..." or "Edit..." pushbuttons, loaded from file, ("Load Curves Pushbutton), or selected from a range of predefined shapes, ("Predefined" pushbutton).  For this example, the change in velocity is wanted to be kept to zero, with tolerances that allow up to 3 MPH over / under shoot at zero seconds, that drops off exponentially to 0.1 MPH after 8 seconds.  By pressing the "OK" pushbutton, we close this window and return to the main menu, the controller will now be designed based on this Goal and tolerance curve.

To start the controller optimization process, we press the "INIT Optimization" pushbutton.  The Optimizing Menu appears in the Main Menu, and allows the controller to be designed in an iterative process.  The controller takes a number of revisions to fit within the tolerance we have specified.  By pressing the "Improve Result" pushbutton the controller parameters would be optimized to get closer to the desired result.  As you can see in the bottom right-hand figure, the current and previous four controller's responses are shown.  The top right-hand figure shows the pole locations of the controller, along with suggestions for the left and right pole limits.  At any stage of the controller optimization, we can go back and modify the parameters used in defining the controller by pressing the "Change Limits" pushbutton.



After five iterations. I am happy with this response of the controller, so I stop the optimizing process and return to the Main Menu.  I can now look at controller coefficients by pressing the "ACD Results" pushbutton.  The following window appears:



We can also look at the closed-loop Step response, Bode Plot and Pole locations if we desire. The final part of this example is to then apply the new controller design in the Simulink car model with noise model we developed initially for the IDCON Classic Toolbox Example.





As you can see from the output, even with all the noisy data, the controller is stable and keeps the car velocity at a constant speed with in tolerance.

Back to ACD Toolbox page.