Control Tutorials for MATLAB and Simulink (2024)

Run Live Script Version in MATLAB Online

Contents

  • Lead or phase-lead compensator using root locus
  • Lead or phase-lead compensator using frequency response
  • Lag or phase-lag compensator using root locus
  • Lag or phase-lag compensator using frequency response
  • Lead-lag compensator using either root locus or frequency response

Lead and lag compensators are used quite extensively in control. A lead compensator can increase the stability or speed of reponse of a system; a lag compensator can reduce (but not eliminate) the steady-state error. Depending on the effect desired, one or more lead and lag compensators may be used in various combinations.

Lead, lag, and lead/lag compensators are usually designed for a system in transfer function form. The conversions page explains how to convert a state-space model into transfer function form.

Lead or phase-lead compensator using root locus

A first-order lead compensator C(s) can be designed using the root locus. A lead compensator in root locus form is given by

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

where the magnitude of z0 is less than the magnitude of p0. A phase-lead compensator tends to shift the root locus toward to the left in the complex s-plane. This results in an improvement in the system's stability and an increase in its response speed.

How is this accomplished? If you recall finding the asymptotes of the root locus that lead to the zeros at infinity, the equation to determine the intersection of the asymptotes along the real axis is the following.

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

When a lead compensator is added to a system, the value of this intersection will be a larger negative number than it was before. The net number of zeros and poles will be same (one zero and one pole are added), but the added pole is a larger negative number than the added zero. Thus, the result of a lead compensator is that the asymptotes' intersection is moved further to the left in the complex plane, and the entire root locus is shifted to the left as well. This tends to increase the region of stability and the system's response speed.

In MATLAB a phase-lead compensator in root locus form is implemented using the following commands (where Kc, z, and p are defined).

 s = tf('s'); C_lead = Kc*(s-z)/(s-p); 

We can interconnect this compensator C(s) with a plant P(s) using the following code.

 sys_ol = C_lead*P; 

Lead or phase-lead compensator using frequency response

A first-order phase-lead compensator can also be designed using a frequency reponse approach. A lead compensator in frequency response form is given by the following.

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

Note that this is equivalent to the root locus form repeated below

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

with p =1 / T, z = 1 / aT, and Kc = a. In frequency response design, the phase-lead compensator adds positive phase to the system over the frequency range 1 / aT to 1 / T. A Bode plot of a phase-lead compensator C(s) has the following form.

Control Tutorials for MATLAB and Simulink (5)

The two corner frequencies are at 1 / aT and 1 / T; note the positive phase that is added to the system between these two frequencies. Depending on the value of a, the maximum added phase can be up to 90 degrees; if you need more than 90 degrees of phase, two lead compensators in series can be employed. The maximum amount of phase is added at the center frequency, which is calculated according to the following equation.

(5)Control Tutorials for MATLAB and Simulink (6)

The equation which determines the maximum phase is given below.

(6)Control Tutorials for MATLAB and Simulink (7)

Additional positive phase increases the phase margin and thus increases the stability of the system. This type of compensator is designed by determining a from the amount of phase needed to satisfy the phase margin requirements, and determing T to place the added phase at the new gain-crossover frequency.

Another effect of the lead compensator can be seen in the magnitude plot. The lead compensator increases the gain of the system at high frequencies (the amount of this gain is equal to a). This can increase the crossover frequency, which will help to decrease the rise time and settling time of the system (but may amplify high frequency noise).

In MATLAB, a phase-lead compensator C(s) in frequency response form is implemented using the following code (where a and T are defined).

 s = tf('s'); C_lead = (1+a*T*s)/(1+T*s); 

We can then interconnect it with a plant P(s) using the following code.

 sys_ol = C_lead*P; 

Lag or phase-lag compensator using root locus

A first-order lag compensator C(s) can be designed using the root locus. A lag compensator in root locus form is given by the following.

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

This has a similar form to a lead compensator, except now the magnitude of z0 is greater than the magnitude of p0 (and the additional gain Kc is omitted). A phase-lag compensator tends to shift the root locus to the right in the complex s-plane, which is undesirable. For this reason, the pole and zero of a lag compensator are often placed close together (usually near the origin) so that they do not appreciably change the transient response or stability characteristics of the system.

How does the lag controller shift the root locus to the right? Below is repeated the equation for finding where the asymptotes of the root locus intersect along the real axis.

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

When a lag compensator is added to a system, the value of this intersection will be a smaller negative number than it was before. The net number of zeros and poles will be the same (one zero and one pole are added), but the added pole is a smaller negative number than the added zero. Thus, the result of a lag compensator is that the asymptotes' intersection is moved to the right in the complex plane, and the entire root locus is shifted to the right as well.

It was previously stated that a lag compensator is often designed to minimally change the transient response of system because it generally has a negative effect. If the phase-lag compensator is not supposed to change the transient response noticeably, what is it good for then? The answer is that a phase-lag compensator can improve the system's steady-state response. It works in the following manner. At high frequencies, the lag compensator will have unity gain. At low frequencies, the gain will be z0 / p0 which is greater than 1. This z0 / p0 factor will multiply the position, velocity, or acceleration constant (Kp, Kv, or Ka), and the steady-state error will thus decrease by the same factor.

In MATLAB, a phase-lag compensator C(s) in root locus form is implemented by employing the following code where it is again assumed that z and p are previously defined.

 s = tf('s'); C_lag = (s-z)/(s-p); 

We can also interconnect the compensator with a plant P(s) as follows.

 sys_ol = C_lag*P; 

Lag or phase-lag compensator using frequency response

A first-order phase-lag compensator also can be designed using a frequency response approach. A lag compensator in frequency response form is given by the following.

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

The phase-lag compensator looks similar to phase-lead compensator, except that a is now less than 1. The main difference is that the lag compensator adds negative phase to the system over the specified frequency range, while a lead compensator adds positive phase over the specified frequency. A Bode plot of a phase-lag compensator has the following form.

Control Tutorials for MATLAB and Simulink (11)

The two corner frequencies are at 1 / T and 1 / aT. The main effect of the lag compensator is shown in the magnitude plot. The lag compensator adds gain at low frequencies; the magnitude of this gain is equal to a. The effect of this gain is to cause the steady-state error of the closed-loop system to be decreased by a factor of a. Because the gain of the lag compensator is unity at middle and high frequencies, the transient response and stability are generally not impacted much.

The side effect of the lag compensator is the negative phase that is added to the system between the two corner frequencies. Depending on the value a, up to -90 degrees of phase can be added. Care must be taken that the phase margin of the system with lag compensation is still satisfactory. This is generally achieved by placing the frequency of maximum phase lag, wm as calculated below, well below the new gain crossover frequency.

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

In MATLAB, a phase-lag compensator C(s) in frequency response form is implemented using the following code, again assuming that a and T are defined.

 s = tf('s'); C_lag = (a*T*s+1)/(a*(T*s+1)); 

We can again interconnect the compensator with a plant P(s) as follows.

 sys_ol = C_lag*P; 

Lead-lag compensator using either root locus or frequency response

A lead-lag compensator combines the effects of a lead compensator with those of a lag compensator. The result is a system with improved transient response, stability, and steady-state error. To implement a lead-lag compensator, first design the lead compensator to achieve the desired transient response and stability, and then design a lag compensator to improve the steady-state response of the lead-compensated system.


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.

Which engineers use MATLAB the most? ›

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

How much time does it take to learn MATLAB? ›

If you're a novice programmer, you can expect it to take like 4 weeks 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.

Does anyone still use MATLAB? ›

As of May 2022, LinkedIn searches return about 7.6 million Python users and 4.1 million MATLAB users. People who do not work in engineering or science are often surprised to learn how widespread MATLAB is adopted, including: Millions of users in colleges and universities. Thousands of startups.

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
Engineering - Software & QA Matlab Simulink Developer Salary 1 - 4 years exp.₹4.3 Lakhs ₹2.9 L/yr - ₹8.1 L/yr
Project & Program Management Matlab Simulink Developer Salary 3 years exp.₹6.8 Lakhs ₹6.1 L/yr - ₹7.8 L/yr
3 more rows
Jun 28, 2024

Does NASA use MATLAB? ›

Scientists use a MATLAB and Simulink based simulator maintained by NASA's Ames Research Center to verify algorithms before testing them aboard the space station. They visualize the results of SPHERES experiments using Simulink 3D Animation™.

Is MATLAB or Python better for mechanical engineering? ›

While MATLAB has Simulink for graphical programming and simulation, Python offers libraries such as SimPy for event-based simulation and Modelica (via PyModelica) for modeling and simulation of complex systems. The functionality might not be as integrated as Simulink, but Python provides powerful alternatives.

Why do engineers use MATLAB instead of Python? ›

MATLAB is platform independent and its roots lie in numerical computing. Like Python it is intuitive and easy to use, and its Simulink toolbox provides a rich visual platform to manipulate data graphically and model and visualize block diagrams easily.

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.

Is MATLAB in high demand? ›

It is an essential tool for engineers, data analysts, scientists, and researchers who work with large amounts of data. In today's job market, the demand for professionals with MATLAB skills is on the rise, and many employers prefer candidates who have experience working with MATLAB.

Can I learn MATLAB on my own? ›

MATLAB's official website provides comprehensive resources, including documentation, tutorials, and examples. The MATLAB documentation covers all aspects of the language and its various toolboxes. It's an excellent starting point for learning MATLAB from scratch.

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.

Can Python fully replace MATLAB? ›

For all of these reasons, and many more, Python is an excellent choice to replace MATLAB as your programming language of choice. Now that you're convinced to try out Python, read on to find out how to get it on your computer and how to switch from MATLAB! Note: GNU Octave is a free and open-source clone of MATLAB.

Is MATLAB useful in 2024? ›

Mathematical Power

MATLAB excels in matrices and array manipulation and handles complex data structures easily. It also allows you to create 2D & 3D models with good graphics. Plus, it helps you seamlessly sail through linear algebra, from algebraic equations to statistics.

Is Simulink better than MATLAB? ›

Simulink blocks provide a visual representation of your system, which can help you to verify its logic and behavior. On the other hand, MATLAB code requires you to write and edit text commands, which can be more complex and error-prone.

Is MATLAB easy for beginners? ›

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.

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 coding hard? ›

if someones struggling the only response is to get good at it then lol, instead of facing the fact that matlab is the hardest language I've ever learned and incredibly different from most other languages that picking it up from zero expirience to alot of expirience can be hard especially when its not formally taught in ...

Top Articles
Starfield Update Patch Notes Revealed
On Eve Of Settlement, CA Corrections’ Appeal Threatens R.J. Donovan Prison Reforms, Critics Say
Phun Org Celebrity Extra
Hours For Autozone Near Me
Rest Area Cerca De Mí
Dtlr Duke St
Qvc Uk Marla Wynne
Clinton County Correctional Facility Housing Report
Harnett County Detention Center NC Recent Arrests and Bookings
Michael W Smith Declaration Of Independence
Devotion Showtimes Near Gtc Gateway Cinemas
Devotion Showtimes Near Amc Hoffman Center 22
Post Game Contents and 100 Percent Guide | Zelda: Skyward Sword HD (Switch)|Game8
888-747-2264
Haul auf deutsch: Was ist das? Übersetzung, Bedeutung, Erklärung - Bedeutung Online
Syracuse Pets Craigslist
Fbisd Homepage
Word Trip Level 92
Cochranton Market Place
Csusm Verify My Fafsa
Epaper Pudari
Beauty Supply Store Clinton Nc
Translations Of Linear Functions Worksheet Answer Key
Renfield Showtimes Near Marquee Cinemas - Wakefield 12
Munis Self Service Cumberland County
Craigslist Pets Seattle Tacoma Washington
Eulogy Zero Ror2
Loopnet Properties For Sale
How to Sell Cars on Craigslist: A Guide for Car Dealers | ACV Auctions
Pokemon Emerald Crest Legendary Locations
Vermont Free Stuff Craigslist
Results, presentations and reports
2Lookmovie
Hilton Honors Enrollment Rejected
Dollar Storw Near Me
Citibank Branches In Georgia
Busty Hot Stepmom
Enduring Word John 15
Juicy Deal D-Art
Ringcentral Background
Stellaris Leader Cap
Beacon Schneider Gibson County
268000 Yen To Usd
Nikolitsa Gloria Stephanopoulos
Washington Craigslist Housing
Orionstars Web Version
Northwell Ipa
Smithfield Stamp Okta Login
The Second Amendment Bible
1977 Elo Hit Wsj Crossword
Labor Gigs On Craigslist
Latest Posts
Article information

Author: Gregorio Kreiger

Last Updated:

Views: 5299

Rating: 4.7 / 5 (77 voted)

Reviews: 84% of readers found this page helpful

Author information

Name: Gregorio Kreiger

Birthday: 1994-12-18

Address: 89212 Tracey Ramp, Sunside, MT 08453-0951

Phone: +9014805370218

Job: Customer Designer

Hobby: Mountain biking, Orienteering, Hiking, Sewing, Backpacking, Mushroom hunting, Backpacking

Introduction: My name is Gregorio Kreiger, I am a tender, brainy, enthusiastic, combative, agreeable, gentle, gentle person who loves writing and wants to share my knowledge and understanding with you.