Control Tutorials for MATLAB and Simulink (2024)

Key MATLAB commands used in this tutorial are: tf , rlocus , sgrid , feedback , step

Related Tutorial Links

  • Intro to Root Locus
  • Lead/Lag Control
  • Root Locus Activity
  • Example Animation

Related External Links

Contents

  • Open-loop root locus
  • Lead controller
  • Selecting the gain
  • Plotting the closed-loop response

The open-loop transfer function of the plant for the ball and beam experiment is given below:

(1)Control Tutorials for MATLAB and Simulink (1)

The design criteria for this problem are:

  • Settling time less than 3 seconds
  • Overshoot less than 5%

To see the derivation of the equations for this problem refer to the page.

Control Tutorials for MATLAB and Simulink (2)

Open-loop root locus

The main idea of the root locus design is to estimate the closed-loop response from the open-loop root locus plot. By adding zeroes and/or poles to the original system (adding a compensator), the root locus and thus the closed-loop response will be modified. Let us first view the root locus for the plant in open loop. Create a new m-file with the following MATLAB code in order to model the plant and plot the root locus. Now, run the m-file and you should see the following root locus plot:

m = 0.111;R = 0.015;g = -9.8;L = 1.0;d = 0.03;J = 9.99e-6;s = tf('s');P_ball = -m*g*d/L/(J/R^2+m)/s^2;rlocus(P_ball)

Control Tutorials for MATLAB and Simulink (3)

As you can see the system has two poles at the origin which go off to infinity along the imaginary axes.

The design criteria can also be plotted onto the root locus using the sgrid command. This command generates a grid of constant damping ratio and natural frequency. The damping ratio (Control Tutorials for MATLAB and Simulink (4)) and natural frequency (Control Tutorials for MATLAB and Simulink (5)) were found using the following equations which relate them to our maximum percent overshoot (Control Tutorials for MATLAB and Simulink (6)) and settling time (Control Tutorials for MATLAB and Simulink (7)) requirements:

(2)Control Tutorials for MATLAB and Simulink (8)

(3)Control Tutorials for MATLAB and Simulink (9)

Note, that the equation with Control Tutorials for MATLAB and Simulink (10) is found by assuming the system has settled when the response remains within 2% of its final value. From these equations, the damping ratio and natural frequency were found to be 0.7 and 1.9 respectively.

sgrid(0.70, 1.9)axis([-5 5 -2 2])

Control Tutorials for MATLAB and Simulink (11)

The area between the two dotted diagonal lines represents locations where the percent overshoot is less than 5%. The area outside the curved line represents locations where the settling time is less than 3 seconds. Note that no region of the plot falls within the design criteria shown by these lines. To remedy this and bring the root locus into the left-hand plane for stability we will try adding a lead-compensator to the system.

Lead controller

A first order lead compensator tends to shift the root locus into the left-hand plane. For a more detailed description of lead compensators refer to the page. A lead compensator has the form given below:

(4)Control Tutorials for MATLAB and Simulink (12)

where, the magnitude of Control Tutorials for MATLAB and Simulink (13) is less than the magnitude of Control Tutorials for MATLAB and Simulink (14).

Now, let us add the controller to the plant and view the root locus. We will position the zero near the origin to cancel out one of the poles. The pole of our compensator will be placed to the left of the origin to pull the root locus further into the left-hand plane. Add the following lines of MATLAB code to your m-file. Run your m-file in the MATLAB command window and you should see the following:

zo = 0.01;po = 5;C=tf([1 zo],[1 po]);rlocus(C*P_ball)sgrid(0.70, 1.9)

Control Tutorials for MATLAB and Simulink (15)

Now, the branches of the root locus are within our design criteria.

Selecting the gain

Now that we have moved the root locus into the left-hand plane, we may select a gain that will satisfy our design requirements. We can use the rlocfind command to help us do this. Add the code [k,poles]=rlocfind(C*P_ball) onto the end of your m-file.

Then go to the plot and select a point near those indicated by the cross marks on the plot below.

Control Tutorials for MATLAB and Simulink (16)

After doing this, you should see the following output in the MATLAB command window.

Select a point in the graphics window selected_point = -2.4917 + 1.0109i k = 34.7474 poles = -2.4950 + 1.0109i -2.4950 - 1.0109i -0.0101 

Note that the values returned in your MATLAB command window may not be exactly the same, but should at least have the same order of magnitude. Now, we can plot the response with this gain.

Plotting the closed-loop response

This value of k can be put into the system and the closed-loop response to a step input of 0.25 m can be obtained. Add the following lines to your m-file to perform this analysis. Run your m-file and select a point on the root locus similar to the selected point above. The step response should look like the following.

 sys_cl=feedback(k*C*P_ball,1); t=0:0.01:5; figure step(0.25*sys_cl,t) 

Control Tutorials for MATLAB and Simulink (17)

From this plot we see that when a 0.25-m step input is given to the system both the settling time and percent overshoot design criteria are met.

Note: A design problem does not necessarily have a unique answer. Using this method (or any other) may result in many different compensators. Try running your m-file several more times selecting a different point each time and study the effect this has on the step response. For practice you may also want to go back to the original open-loop root locus and try to find other ways to add zeros and poles to get a better response.


Published with MATLAB® 9.2

Control Tutorials for MATLAB and Simulink (2024)

FAQs

Is MATLAB Simulink hard to learn? ›

Although Matlab is not considered to be a programming language, it really is easy to learn. When you write code on Matlab you actually don't care about declaring data types, allocating memories e.t.c like you do in other programming languages.

How much time does it take to learn Simulink? ›

Learn MATLAB and SIMULINK in one week

Ideal for beginners from any field, it covers vectors, matrices, loops, and functions.

Is MATLAB good for control systems? ›

As a control systems engineer, you can use MATLAB® and Simulink® at all stages of development, including plant modeling, controller design, deployment with automatic code generation, and system verification.

How to learn MATLAB Simulink? ›

Start learning MATLAB and Simulink with free tutorials. Expand your knowledge through interactive courses, explore documentation and code examples, or watch how-to videos on product capabilities. Note: You must be on a desktop computer to take courses.

Is MATLAB harder than Python? ›

Learning curve: Python is significantly simpler than Matlab and doesn't require as much background knowledge. Matlab is structured in a very logical and comprehensible way but is aimed at users with a deep knowledge of math.

What is the salary of MATLAB Simulink engineer? ›

Average Annual Salary by Experience

Matlab Simulink Developer salary in India with less than 1 year of experience to 5 years ranges from ₹ 2.9 Lakhs to ₹ 15.0 Lakhs with an average annual salary of ₹ 5.0 Lakhs based on 47 latest salaries.

Does NASA use Simulink? ›

NASA Marshall Engineers have developed an ADCS Simulink simulation to be used as a component for the flight software of a satellite. This generated code can be used for carrying out Hardware in the loop testing of components for a satellite in a convenient manner with easily tunable parameters.

What is the disadvantage of Simulink? ›

One of the main disadvantages of using Simulink blocks is that they are limited by the predefined functionality and options of the block libraries. You may not find a block that suits your specific needs, or you may need to adjust its behavior or appearance.

Is MATLAB harder than Java? ›

Ease of Use and Learning Curve: Java has a steeper learning curve compared to MATLAB. It requires a good understanding of object-oriented programming concepts, data structures, and algorithms. MATLAB, on the other hand, has a more straightforward syntax and is more accessible for beginners.

Is MATLAB enough for a job? ›

Conclusion. The industry has some familiar buzz that learning MATLAB will not be a good opportunity for a better career. But this is not fully true. Yes, it is an acceptable reason that salary or company structure will never be able to touch available popular jobs on other programming technologies.

Which engineers use MATLAB the most? ›

Mechanical engineers of Design and manufacturing field use MATLAB and Simulink heavily.

Is there anything better than MATLAB? ›

GNU Octave

If you are looking for anything closer to Matlab in terms of compatibility and computational ability, then Octave is the best Matlab alternative. Most of the projects developed for Matlab run on Octave too. It runs on any Operating system without any modifications.

How to run Simulink step by step? ›

In the Simulink Toolstrip, on the Simulation tab, click Step Forward to start a simulation of the model vdp . The simulation starts and pauses just after calculating the output values for the first simulation time and before stepping to the next simulation time.

How fast can I learn MATLAB? ›

If you're a novice programmer, you can expect it to take a little longer than if you were a more seasoned programmer. Someone who can afford to devote all their time to MATLAB can finish learning the language in two weeks. If you have a lot of other responsibilities, however, it will take you longer to complete.

How do I start Simulink? ›

You start Simulink by clicking the Simulink button in the MATLAB toolstrip. This opens the Start Page, where you can create new models, find examples, and even find basic training. We're starting our model from scratch, so we'll choose Blank Model. Simulink models are built up from blocks and signals.

Is Simulink better than MATLAB? ›

You can also use Simulink Coder to generate C or C++ code from your Simulink model, which can be deployed to embedded systems or hardware platforms. On the other hand, MATLAB code can be faster and more efficient for other tasks, such as data processing, analysis, and visualization.

How many hours does IT take to learn MATLAB? ›

10 Best MATLAB Courses for 2024: Algorithms and Applications
Course HighlightWorkload
Best for Medicine or Biology Students (Harvard)30–50 hours
Best for General MATLAB Programming (MathWorks)16–28 hours
Best for Engineers (HKUST)42 hours
Best Concise Introductory MATLAB Course (MathWorks)2 hours
6 more rows
Mar 6, 2024

Is MATLAB Simulink useful? ›

Simulink is particularly helpful in two stages of our development process. Early on, it helps us try new ideas and visualize how they will work. After generating code and conducting in-vehicle tests, we can run multiple simulations, refine the design, and regenerate code for the next iteration.”

Is MATLAB easy to learn for beginners? ›

MATLAB® creates an environment where issues and resolutions are expressed in familiar mathematical notation. MATLAB® is not hard to learn if you go for any professional course. It is ideal for engineering graduates and IT professionals willing to develop MATLAB® skills in their related fields.

Top Articles
Latest Posts
Article information

Author: Msgr. Benton Quitzon

Last Updated:

Views: 5951

Rating: 4.2 / 5 (43 voted)

Reviews: 90% of readers found this page helpful

Author information

Name: Msgr. Benton Quitzon

Birthday: 2001-08-13

Address: 96487 Kris Cliff, Teresiafurt, WI 95201

Phone: +9418513585781

Job: Senior Designer

Hobby: Calligraphy, Rowing, Vacation, Geocaching, Web surfing, Electronics, Electronics

Introduction: My name is Msgr. Benton Quitzon, I am a comfortable, charming, thankful, happy, adventurous, handsome, precious person who loves writing and wants to share my knowledge and understanding with you.