Feedback Control Systems

advertisement
Feedback Control Systems
Laboratory Experiments Handbook
College of Electrical and Mechanical Engineering
National University of Sciences and Technology
Supervisor
DR.KHALID MUNAWAR
Course developed by:
MUHAMMAD OVAIS ZUBERI DE25 MECHATRONICS
AAMNA FAYYAZ DE25 MECHATRONICS
2
Contents
LAB1: Introduction to MATLAB and SIMULINK …………………. 5
1.
2.
3.
Overview of basic MATLAB environment and features.
a. Vectors
b. Functions
c. Plotting
d. Polynomials
e. Matrices
f. Printing
g. Using Mfiles in MATLAB
h. Getting help in MATLAB
The Control Systems Toolbox in MATLAB
Basic SIMULINK concepts
a. Starting Simulink
b. Model Files
c. Basic Elements
d. Running Simulations
e. Building Systems
LAB2: Introduction to Laboratory Trainer hardware………………… 37
1.
2.
General overview
a. System Nomenclature
b. System Schematics
c. Component Description
d. System Parameters
e. Hardware Configuration
Setting up the trainer for experiments.
LAB3: Introduction to Laboratory Trainer Software…………………. 49
1.
2.
3.
4.
Introduction
Getting Started
Plots
The Signal Generator
LAB4: System Modeling …………………………………………….. 63
1.
2.
3.
4.
Introduction
Nomenclature
Practice first principles modeling
a. Reading Motor datasheets
b. Developing motor transfer functions in MATLAB using the CS toolbox
c. Determining System Parameters
d. Pre-lab results summary table
Modeling module graphical user interface
a. Module Startup
b. Static Relations
c. Dynamic Models
d. In-lab results summary table
3
LAB5: Speed Control………………………………………………… 81
1.
2.
3.
4.
5.
Introduction to the PI controller
a. PI control law (set-point, Kp,Ki)
b. Magic of Integral action
Nomenclature
Pre-lab assignment
a. PI controller design to given specifications using MATLAB CS toolbox.
b. Tracking triangular signals (power of time input)
c. Response to load disturbances
d. Pre-lab results summary table
e. Speed control module graphical user interface
f. Module Description/Startup
Qualitative properties of proportional and integral control
Manual Tuning using Ziegler-Nichols
a. Design to given specifications
b. Tracking triangular signals (power of time input)
c. Response to load disturbances
d. In-lab results summary table
LAB6: Position Control……………………………………………… 97
1.
2.
3.
4.
Introduction to the PID controller
a. PI control law (set-point, Kp, Ki)
b. Magic of Integral action
c. Controller with two degrees of freedom
Nomenclature
Pre-lab assignment
a. Comparison between PD position and PI speed control
b. Fundamental limitations and achievable performance
c. PD controller design to given specifications using MATLAB CS toolbox.
d. Tracking triangular signals (power of time input)
e. Response to load disturbances
f. Pre-lab results summary table
Position control module graphical user interface
a. Module Description/Startup
b. Qualitative properties of proportional and derivative control
c. Design to given specifications
d. Tracking triangular signals (power of time input)
e. Response to load disturbances
f. In-lab results summary table
LAB7: Robust Control……………………………………………...... 118
1.
2.
3.
4.
Introduction
Nomenclature
Pre-lab assignment
a. MATLAB script
b. Robustness and Sensitivity
c. Stability Margins
d. Pre-lab results summary table
Robustness module graphical user interface
a. Module Description/Startup
b. stability margin evaluation
c. In-lab results summary table
4
LAB 1
Introduction to MATLAB and SIMULINK
Contents:
Overview of basic MATLAB environment and features.
Vectors
Functions
Plotting
Polynomials
Matrices
Printing
Using Mfiles in MATLAB
Getting help in MATLAB
The Control Systems Toolbox in MATLAB
Basic SIMULINK concepts
Starting Simulink
Model Files
Basic Elements
Running Simulations
Building Systems
5
MATLAB is an interactive program for numerical computation and data visualization; it is used
extensively by control engineers for analysis and design. There are many different toolboxes available
which extend the basic functions of MATLAB into different application areas; in these tutorials, we will
make extensive use of the Control Systems Toolbox. MATLAB is supported on Unix, Macintosh, and
Windows environments; a student version of MATLAB is available for personal computers. For more
information on MATLAB, contact the MathWorks.
The idea behind these tutorials is that you can view them in one window while running
MATLAB in another window. You should be able to redo all of the plots and calculations in
the tutorials.
Vectors
Let's start off by creating something simple, like a vector. Enter each element of the vector (separated by
a space) between brackets, and set it equal to a variable. For example, to create the vector a, enter into
the MATLAB command window
a = [1 2 3 4 5 6 9 8 7]
MATLAB should return:
a =
1
2
3
4
5
6
9
8
7
Let's say you want to create a vector with elements between 0 and 20 evenly spaced in increments of 2
(this method is frequently used to create a time vector):
t = 0:2:20
t =
0
2
4
6
8
10
12
14
16
18
20
Manipulating vectors is almost as easy as creating them. First, suppose you would like to add 2 to each
of the elements in vector 'a'. The equation for that looks like:
b = a + 2
b =
3
4
5
6
7
8
11
10
9
Now suppose, you would like to add two vectors together. If the two vectors are the same length, it is
easy. Simply add the two as shown below:
c = a + b
c =
4
6
8
10
12
14
20
18
16
Subtraction of vectors of the same length works exactly the same way.
Functions
To make life easier, MATLAB includes many standard functions. Each function is a block of code that
accomplishes a specific task. MATLAB contains all of the standard functions such as sin, cos, log, exp,
sqrt, as well as many others. Commonly used constants such as pi, and i or j for the square root of -1, are
also incorporated into MATLAB.
6
sin(pi/4)
ans =
0.7071
To determine the usage of any function, type help [function name] at the MATLAB command
window.
MATLAB even allows you to write your own functions with the function command. More Information
about functions is given at the end of the handbook.
Plotting
It is also easy to create plots in MATLAB. Suppose you wanted to plot a sine wave as a function of time.
First make a time vector (the semicolon after each statement tells M ATLAB we don't want to see all the
values) and then compute the sin value at each time.
t=0:0.25:7;
y = sin(t);
plot(t,y)
The plot contains approximately one period of a sine wave. Basic plotting is very easy in M ATLAB, and
the plot command has extensive addon capabilities. More Information about Plotting is given at the end
of the handbook.
Polynomials
In MATLAB, a polynomial is represented by a vector. To create a polynomial in M ATLAB, simply enter
each coefficient of the polynomial into the vector in descending order. For instance, let's say you have
the following polynomial:
To enter this into MATLAB, just enter it as a vector in the following manner
x = [1 3 15 2 9]
7
x =
1
3
15
2
9
MATLAB can interpret a vector of length n+1 as an nth order polynomial. Thus, if your polynomial is
missing any coefficients, you must enter zeros in the appropriate place in the vector. For example,
would be represented in MATLAB as:
y = [1 0 0 0 1]
You can find the value of a polynomial using the polyval function. For example, to find the value of
the above polynomial at s=2,
z = polyval([1 0 0 0 1],2)
z =
17
You can also extract the roots of a polynomial. This is useful when you have a high order polynomial
such as
Finding the roots would be as easy as entering the following command;
roots([1 3 -15 -2 9])
ans =
5.5745
2.5836
0.7951
0.7860
Let's say you want to multiply two polynomials together. The product of two polynomials is found by
taking the convolution of their coefficients. MATLAB's function conv that will do this for you.
x = [1 2];
y = [1 4 8];
z = conv(x,y)
z =
1
6
16
16
Dividing two polynomials is just as easy. The deconv function will return the remainder as well as the
result. Let's divide z by y and see if we get x.
[xx, R] = deconv(z,y)
xx =
1
2
0
0
R =
0
0
As you can see, this is just the polynomial/vector x from before. If y had not gone into z evenly, the
remainder vector would have been something other than zero.
Matrices
8
Entering matrices into MATLAB is the same as entering a vector, except each row of elements is
separated by a semicolon (;) or a return:
B = [1 2 3 4;5 6 7 8;9 10 11 12]
B =
1
5
9
2
6
10
3
7
11
4
8
12
3
7
11
4
8
12
B = [ 1 2 3 4
5 6 7 8
9 10 11 12]
B =
1
5
9
2
6
10
Matrices in MATLAB can be manipulated in many ways. For one, you can find the transpose of a
matrix using the apostrophe key:
C = B'
C =
1
2
3
4
5
6
7
8
9
10
11
12
It should be noted that if C had been complex, the apostrophe would have actually given the complex
conjugate transpose. To get the transpose, use .' (the two commands are the same if the matrix is not
complex).
Now you can multiply the two matrices B and C together. Remember that order matters when
multiplying matrices.
D = B * C
D =
30
70
110
D
70
174
278
110
278
446
122
140
158
176
137
158
179
200
= C * B
D =
107
122
137
152
152
176
200
224
Another option for matrix manipulation is that you can multiply the corresponding elements of two
matrices using the .* operator (the matrices must be the same size to do this).
E = [1 2;3 4]
F = [2 3;4 5]
G = E .* F
E =
1
2
9
3
4
2
4
3
5
2
12
6
20
F =
G =
If you have a square matrix, like E, you can also multiply it by itself as many times as you like by
raising it to a given power.
E^3
ans =
37
81
54
118
If wanted to cube each element in the matrix, just use the element-by-element cubing.
E.^3
ans =
1
27
8
64
You can also find the inverse of a matrix:
X = inv(E)
X =
2.0000
1.5000
1.0000
0.5000
or its Eigen-values:
eig(E)
ans =
0.3723
5.3723
There is even a function to find the coefficients of the characteristic polynomial of a matrix. The "poly"
function creates a vector that includes the coefficients of the characteristic polynomial.
p = poly(E)
p =
1.0000
5.0000
2.0000
Remember that the Eigen-values of a matrix are the same as the roots of its characteristic polynomial:
roots(p)
ans =
5.3723
0.3723
Using M-files in MATLAB
There are slightly different things you need to know for each platform.
10
Windows
Running MATLAB from Windows is very similar to running it on a Macintosh. However, you need to
know that your m-file will be saved in the clipboard. Therefore, you must make sure that it is saved as
filename.m
Getting help in MATLAB
MATLAB has a fairly good online help; type
help commandname
for more information on any given command. You do need to know the name of the command that you
are looking for. Here are a few end notes for this section.
You can get the value of a particular variable at any time by typing its name.
B
B =
1
4
7
2
5
8
3
6
9
You can also have more that one statement on a single line, so long as you separate them with either a
semicolon or comma.
Also, you may have noticed that so long as you don't assign a variable a specific operation or result,
MATLAB with store it in a temporary variable called "ans".
The Control Systems Toolbox in MATLAB
By writing the following command the Graphical User interface of the Control Systems toolbox opens
up:
Sisotool
11
The Siso design tool allows users to modify the system compensator parameters in anyway they find
suitable. They can modify the Root loci in the Root locus editor or specify the frequency domain
characteristics using bode or nyquist plots. They can also numerically feed in the compensator and see
its effect on both the root loci and bode/nyquist plots.
By pulling the analysis pulldown menu, they can launch the LinearTimeInvariant Viewer in which they
can view the step and impulse response of system parameters.
The Control Systems Toolbox will be discussed further in all the accompanying sections in this
handbook.
Basic SIMULINK concepts
Simulink is a graphical extension to MATLAB for modeling and simulation of systems. In Simulink,
systems are drawn on screen as block diagrams. Many elements of block diagrams are available, such as
transfer functions, summing junctions, etc., as well as virtual input and output devices such as function
generators and oscilloscopes. Simulink is integrated with MATLAB and data can be easily transferred
between the programs. In these tutorials, we will apply Simulink to the examples from the M ATLAB
tutorials to model the systems, build controllers, and simulate the systems. Simulink is supported on
Unix, Macintosh, and Windows environments; and is included in the student version of M ATLAB for
personal computers. For more information on Simulink, contact the MathWorks.
12
The idea behind these tutorials is that you can view them in one window while running Simulink in
another window. System model files can be downloaded from the tutorials and opened in Simulink. You
will modify and extend these systems while learning to use Simulink for system modeling, control, and
simulation. Do not confuse the windows, icons, and menus in the tutorials for your actual Simulink
windows. Most images in these tutorials are not live they simply display what you should see in your
own Simulink windows. All Simulink operations should be done in your Simulink windows.
Starting Simulink
Simulink is started from the MATLAB command prompt by entering the following command:
simulink
Alternatively, you can hit the New Simulink Model button at the top of the MATLAB command window
as shown below:
When it starts, Simulink brings up two windows. The first is the main Simulink window, which appears
as:
The second window is a blank, untitled, model window. This is the window into which a new model can
be drawn.
Model Files
13
In Simulink, a model is a collection of blocks which, in general, represents a system. In addition, to
drawing a model into a blank model window, previously saved model files can be loaded either from the
File menu or from the MATLAB command prompt. As an example, download the following model file
save the file in the directory you are running MATLAB from.
simple.mdl
Open this file in Simulink by entering the following command in the MATLAB command window.
(Alternatively, you can load this file using the Open option in the File menu in Simulink, or by hitting
Ctrl+O in Simulink.)
simple
The following model window should appear.
A new model can be created by selecting New from the File menu in any Simulink window (or by
hitting Ctrl+N).
Basic Elements
There are two major classes of items in Simulink: blocks and lines. Blocks are used to generate, modify,
combine, output, and display signals. Lines are used to transfer signals from one block to another.
Blocks
There are several general classes of blocks:



Sources: Used to generate various signals
Sinks: Used to output or display signals
Discrete: Linear, discrete-time system elements (transfer functions, state-space models, etc.)
14



Linear: Linear, continuous-time system elements and connections (summing junctions, gains,
etc.)
Nonlinear: Nonlinear operators (arbitrary functions, saturation, delay, etc.)
Connections: Multiplex, Demultiplex, System Macros, etc.
Blocks have zero to several input terminals and zero to several output terminals. Unused input terminals
are indicated by a small open triangle. Unused output terminals are indicated by a small triangular point.
The block shown below has an unused input terminal on the left and an unused output terminal on the
right.
Lines
Lines transmit signals in the direction indicated by the arrow. Lines must always transmit signals from
the output terminal of one block to the input terminal of another block. On exception to this is a line can
tap off of another line, splitting the signal to each of two destination blocks, as shown below: (open the
model
file
named
split.mdl).
Lines can never inject a signal into another line; lines must be combined through the use of a block such
as a summing junction.
A signal can be either a scalar signal or a vector signal. For SingleInput, SingleOutput systems, scalar
signals are generally used. For MultiInput, MultiOutput systems, vector signals are often used,
consisting of two or more scalar signals. The lines used to transmit scalar and vector signals are
identical. The type of signal carried by a line is determined by the blocks on either end of the line.
Simple Example
The simple model consists of three blocks: Step, Transfer Fcn, and Scope. The Step is a source block
15
from which a step input signal originates. This signal is transferred through the line in the direction
indicated by the arrow to the Transfer Function linear block. The Transfer Function modifies its input
signal and outputs a new signal on a line to the Scope. The Scope is a sink block used to display a signal
much like an oscilloscope.
There are many more types of blocks available in Simulink, some of which will be discussed later. Right
now, we will examine just the three we have used in the simple model.
Modifying Blocks
A block can be modified by double clicking on it. For example, if you double click on the "Transfer
Fcn" block in the simple model, you will see the following dialog box.
This dialog box contains fields for the numerator and the denominator of the block's transfer function.
By entering a vector containing the coefficients of the desired numerator or denominator polynomial, the
desired transfer function can be entered. For example, to change the denominator to s^2+2s+1, enter the
following into the denominator field:
[1 2 1]
and hit the close button, the model window will change to the following,
which reflects the change in the denominator of the transfer function. The "step" block can also be
double clicked, bringing up the following dialog box.
16
The default parameters in this dialog box generate a step function occurring at time=1 sec, from an
initial level of zero to a level of 1. (in other words, a unit step at t=1). Each of these parameters can be
changed. Close this dialog before continuing.
The most complicated of these three blocks is the "Scope" block. Double clicking on this brings up a
blank oscilloscope screen.
When a simulation is performed, the signal which feeds into the scope will be displayed in this window.
Detailed operation of the scope will not be covered in this tutorial. The only function we will use is the
auto-scale button, which appears as a pair of binoculars in the upper portion of the window.
Running Simulations
To run a simulation, we will work with the following model file:
simple2.mdl
Open this file in Simulink. You should see the following model window.
17
Before running a simulation of this system, first open the scope window by doubleclicking on the scope
block. Then, to start the simulation, either select Start from the Simulation menu (as shown below) or
hit CtrlT in the model window.
The simulation should run very quickly and the scope window will appear as shown below.
Note that the simulation output (shown in yellow) is at a very low level relative to the axes of the scope.
To fix this, hit the auto-scale button (binoculars), which will rescale the axes as shown below.
18
Note that the step response does not begin until t=1. This can be changed by doubleclicking on the
"step" block. Now, we will change the parameters of the system and simulate the system again.
Doubleclick on the "Transfer Fcn" block in the model window and change the denominator to
[1 20 400]
Rerun the simulation (hit CtrlT) and you should see what appears as a flat line in the scope window. Hit
the auto-scale button, and you should see the following in the scope window.
Notice that the auto-scale button only changes the vertical axis. Since the new transfer function has a
very fast response, it compressed into a very narrow part of the scope window. This is not really a
problem with the scope, but with the simulation itself. Simulink simulated the system for a full ten
seconds even though the system had reached steady state shortly after one second.
To correct this, you need to change the parameters of the simulation itself. In the model window, select
Parameters from the Simulation menu. You will see the following dialog box.
19
There are many simulation parameter options; we will only be concerned with the start and stop times,
which tell Simulink over what time period to perform the simulation. Change Start time from 0.0 to 0.8
(since the step doesn't occur until t=1.0. Change Stop time from 10.0 to 2.0, which should be only
shortly after the system settles. Close the dialog box and rerun the simulation. After hitting the autoscale button, the scope window should provide a much better display of the step response as shown
below.
Building Systems
In this section, you will learn how to build systems in Simulink using the building blocks in Simulink's
Block Libraries. You will build the following system.
20
First you will gather all the necessary blocks from the block libraries. Then you will modify the blocks
so they correspond to the blocks in the desired model. Finally, you will connect the blocks with lines to
form the complete system. After this, you will simulate the complete system to verify that it works.
Gathering Blocks
Follow the steps below to collect the necessary blocks:

Create a new model (New from the File menu or CtrlN). You will get a blank model window.
21

Doubleclick on the Sources icon in the main Simulink window.
This opens the Sources window which contains the Sources Block Library. Sources are used to generate
signals. Click here for more information on block libraries.
Drag the Step block from the sources window into the left side of your model window.
22




Doubleclick on the Linear icon in the main Simulink window to open the Linear Block Library
window.
Drag the Sum, Gain, and two instances of the Transfer Fcn (drag it two times) into your model
window arranged approximately as shown below. The exact alignment is not important since it
can be changed later. Just try to get the correct relative positions. Notice that the second Transfer
Function block has a 1 after its name. Since no two blocks may have the same name, Simulink
automatically appends numbers following the names of blocks to differentiate between them.
Doubleclick on the Sinks icon in the main Simulink window to open the Sinks window.
Drag the Scope block into the right side of your model window.
23
Modify Blocks
Follow these steps to properly modify the blocks in your model.





Doubleclick your Sum block. Since you will want the second input to be subtracted, enter + into
the list of signs field. Close the dialog box.
Doubleclick your Gain block. Change the gain to 2.5 and close the dialog box.
Doubleclick the leftmost Transfer Function block. Change the numerator to [1 2] and the
denominator to [1 0]. Close the dialog box.
Doubleclick the rightmost Transfer Function block. Leave the numerator [1], but change the
denominator to [1 2 4]. Close the dialog box. Your model should appear as:
Change the name of the first Transfer Function block by clicking on the words "Transfer Fcn". A
box and an editing cursor will appear on the block's name as shown below. Use the keyboard
(the mouse is also useful) to delete the existing name and type in the new name, "PI Controller".
Click anywhere outside the name box to finish editing.
24

Similarly, change the name of the second Transfer Function block from "Transfer Fcn1" to
"Plant". Now, all the blocks are entered properly. Your model should appear as:
Connecting Blocks with Lines
Now that the blocks are properly laid out, you will now connect them together. Follow these steps.

Drag the mouse from the output terminal of the Step block to the upper (positive) input of the
Sum block. Let go of the mouse button only when the mouse is right on the input terminal. Do
not worry about the path you follow while dragging, the line will route itself. You should see the
following.
25

The resulting line should have a filled arrowhead. If the arrowhead is open, as shown below, it
means it is not connected to anything.
You can continue the partial line you just drew by treating the open arrowhead as an output
terminal and drawing just as before. Alternatively, if you want to redraw the line, or if the line
connected to the wrong terminal, you should delete the line and redraw it. To delete a line (or
any other object), simply click on it to select it, and hit the delete key.

Draw a line connecting the Sum block output to the Gain input. Also draw a line from the Gain
to the PI Controller, a line from the PI Controller to the Plant, and a line from the Plant to the
Scope. You should now have the following.
26

The line remaining to be drawn is the feedback signal connecting the output of the Plant to the
negative input of the Sum block. This line is different in two ways. First, since this line loops
around and does not simply follow the shortest (rightangled) route so it needs to be drawn in
several stages. Second, there is no output terminal to start from, so the line has to tap off of an
existing line.
To tap off the output line, hold the Ctrl key while dragging the mouse from the point on the
existing line where you want to tap off. In this case, start just to the right of the Plant. Drag until
you get to the lower left corner of the desired feedback signal line as shown below.
Now, the open arrowhead of this partial line can be treated as an output terminal. Draw a line
from it to the negative terminal of the Sum block in the usual manner.
27

Now, you will align the blocks with each other for a neater appearance. Once connected, the
actual positions of the blocks do not matter, but it is easier to read if they are aligned. To move
each block, drag it with the mouse. The lines will stay connected and reroute themselves. The
middles and corners of lines can also be dragged to different locations. Starting at the left, drag
each block, so that the lines connecting them are purely horizontal. Also, adjust the spacing
between blocks to leave room for signal labels. You should have something like:

Finally, you will place labels in your model to identify the signals. To place a label anywhere in
your model, double click at the point you want the label to be. Start by double clicking above the
line leading from the Step block. You will get a blank text box with an editing cursor as shown
below
28
Type an r in this box, labeling the reference signal and click outside it to end editing.

Label the error (e) signal, the control (u) signal, and the output (y) signal in the same manner.
Your final model should appear as:

To save your model, select Save As in the File menu and type in any desired model name.
Simulation
Now that the model is complete, you can simulate the model. Select Start from the Simulation menu to
run the simulation. Doubleclick on the Scope block to view its output. Hit the autoscale button
(binoculars) and you should see the following.
29
Taking Variables from MATLAB
In some cases, parameters, such as gain, may be calculated in M ATLAB to be used in a Simulink model.
If this is the case, it is not necessary to enter the result of the MATLAB calculation directly into Simulink.
For example, suppose we calculated the gain in MATLAB in the variable K. Emulate this by entering the
following command at the MATLAB command prompt.
K=2.5
This variable can now be used in the Simulink Gain block. In your simulink model, doubleclick on the
Gain block and enter the following in the Gain field.
K
Close this dialog box. Notice now that the Gain block in the Simulink model shows the variable K rather
than a number.
30
Now, you can rerun the simulation and view the output on the Scope. The result should be the same as
before.
Now, if any calculations are done in MATLAB to change any of the variab used in the Simulink model,
the simulation will use the new values the next time it is run. To try this, in M ATLAB, change the gain,
K, by entering the following at the command prompt.
K=5
Start the Simulink simulation again, bring up the Scope window, and hit the auto-scale button. You will
see the following output which reflects the new, higher gain.
31
Besides variab, signals, and even entire systems can be exchanged between MATLAB and Simulink
32
LAB 2
Introduction to Laboratory Trainer Hardware
Contents:
General overview
System Nomenclature
System Schematics
Component Description
System Parameters
Hardware Configuration
Setting up the trainer for experiments.
33
DCMCT System Capabilities
The DC Motor Control Trainer (DCMCT) is a versatile unit designed to teach and demonstrate the
fundamentals of motor servo control in a variety of ways. The system can readily be configured to
control motor position and speed. In particular with respect to this workbook, the system can be used to
teach PID control fundamentals. This is achieved when the DCMCT is used in conjunction with the
Quanser QIC Processor Core and the QICii software. The QICii (i.e. QIC interactive interface) consists
of pre-packaged readyto-use experiments in Modelling, Speed Control, Robustness, Position Control,
and Haptic Explorations. Course material is supplied allowing the instructor to teach these topics with
minimal setup time. QICii also introduces the student to the concepts of haptic devices. Two haptic
implementations are supplied:
General Overview
System Nomenclature
The photograph in Figure A.1 shows an overview and the general layout of the DCMCT system with
breadboard and QIC options.
34
Figure A.1 DCMCT General Layout
The DCMCT components located and identified by a unique ID number in Figure A.1 are listed in Table
A.1. Table A.1 also describes the integration of the various methods one could control the motor with, as
previously mentioned in Section A.1.
35
Table A.1 DCMCT Component Nomenclatrue
36
System Schematic
A schematic of the DCMCT system is provided in Figure A.2.
Figure A.2 DCMCT Schematic
A.2.3. Component Description
This Section provides a description of the individual elements comprising the full DCMCT system.
A.2.3.1. Maxon DC Motor
The DC motor is a high quality 18-Watt motor of Maxon brand. This is a graphite brush DC motor with
a low inertia rotor. It has zero cogging and very low unloaded running friction.
A.2.3.2. Linear Power Amplifier
A linear 15-V 1.5-A power amplifier is used to drive the motor. The input to the amplifier can be
configured to be either the voltage input at the RCA jack labeled COMMAND or the output of the builtin Digital-To-Analog converter (i.e. D/A). The built-in D/A can only be used if a QIC board is
connected to the system and the appropriate jumper (i.e. J6) properly configured.
A.2.3.3. QIC Compatible Socket
37
The Quanser QIC processor core board can be plugged into the QIC compatible socket, which is
depicted in Figure A.3. This is designed to enable one to perform closed-loop control using the QIC
microcontroller.
Figure A.3 QIC Compatible Socket
A.2.3.4. QIC Processor Core Board
The QIC processor core board is the Quanser board that contains Microchip's PIC 16F877
microcontroller. It is shown in Figure A.4. For embedded microcontroller control applications, this QIC
board needs to be installed in the corresponding QIC compatible socket on the DCMCT. The QIC can
process the signals that are derived from the DCMCT sensors, command the power amplifier, drive two
LED’s, and read the state of the User Switch. The User Switch and two LED's are useful when
performing certain types of experiments supplied with the QICii software. Note that the QIC Reset
button is also shown in Figure A.4.
Figure A.4 QIC Processor Core Board
A.2.3.5. Analog Current Measurement: Current Sense Resistor
A series load resistor of 0.1 Ω is connected to the output of the linear amplifier. The signal is amplified
internally to result in a sensitivity of 1.8 V/A. The obtained current measurement signal is available at
the RCA jack labeled CURRENT. Such a current measurement can be used to either monitor the current
38
or in a feedback loop to control the current in the motor. Current control is an effective way of
eliminating the effects of back-EMF as well as a means of achieving force and torque control. This
signal is level-shifted and scaled, and then also made available at one of the QIC analog inputs (i.e.
A/D's) so that it can be used by a QIC-based controller.
A.2.3.6. Digital Position Measurement: Optical Encoder
Digital position measurement is obtained by using a high resolution quadrature optical encoder. This
optical encoder is directly mounted to the rear of the motor. The encoder signals are available at the 5pin DIN plug, named ENCODER, and can be used by a HIL board. These encoder signals are also fed to
an encoder counter integrated circuit that interfaces with the QIC in order to perform encoder feedback
control using the QIC.
A.2.3.7. Analog Speed Measurement: Tachometer
An analog signal proportional to motor speed is available at the RCA jack labeled TACH. It is digitally
derived from the encoder signal. It has the range of ±5 V. Once scaled and levelshifted to the range of 05 Volts, the tachometer signal is also made available to one of the QIC A/D's so that it can be used by a
QIC-based controller.
A.2.3.8. Analog Position Measurement: Potentiometer
The ball bearing servo potentiometer can be coupled via a toothed belt to the motor shaft in order to
implement analog position feedback control. The potentiometer signal is available at the RCA jack
labeled POT and can be used by an analog computer or a HIL board on a PC. This analog signal is in the
range of ±5 V. Once level-shifted and scaled to 0-5 V, the potentiometer signal is also made available to
one of the QIC analog inputs so that it can be
used by a QIC-based controller.
CAUTION:
The potentiometer belt should be removed in order to eliminate the effects of extra friction when
running speed control and encoder position feedback experiments as well as to extend the life of
the potentiometer. It is especially recommended that the potentiometer belt be removed while running
speed control experiments. Although the potentiometer is rated for 10 million revolutions, its life will
quickly diminish when running for long periods of time. Running the potentiometer at 2000 RPM, for
example, would reduce its life expectancy to 83 hours! Potentiometers are typically used in position
control systems and, as such, are not expected to continuously turn at high speeds. For QICii
applications, the potentiometer is not used. Please remove the belt.
A.2.3.9. A Wall Transformer
The DCMCT system is provided with a wall transformer as a AC power supply. This is to deliver the
required AC voltage to the DCMCT board. It connects to the 6-mm jack labeled POWER.
39
CAUTION:
Please make sure you use the right type of transformer or you will damage the system. It should
supply 12 to 15 VAC and be rated for at least 2 A.
A.2.3.10. Built-In Power Supply
A built-in power supply converts the 15 VAC available at the POWER 6-mm jack to ±20 VDC. The ±20
VDC is regulated as well to supply ±5 VDC and ±12 VDC. These power supplies are available on the J4
header, whose location on the main board is shown in Figure A.1 by component #16. The power supply
header J4 can be used for external circuitry. Its schematic is illustrated in Figure A.5.
Figure A.5 J4 Connector Schematic
A.2.3.11. Serial Port
This is a standard serial port that connects to the PC via a DB9M to DB9F straight through cable. Note
that this cannot be a null modem cable. The cable is supplied when you purchase the entire kit.
A.2.3.12. A12-Bit Digital-To-Analog Converter (D/A)
One 12-bit Digital-To-Analog converter (D/A) is available and can be used only if the QIC board is
installed. This will allow feedback controllers implemented on the QIC to drive the D/A to control the
power amplifier instead of the external COMMAND input. The jumper J6 must be set to use the D/A
output to drive the amplifier. This is illustrated in Figure A.6. The output of the D/A is also made
available at the RCA jack labeled D/A.
Figure A.6 Jumper J6 Configurations
A.2.3.13. 24-Bit Encoder Counter
One 24-bit encoder counter is connected to the encoder such that if a QIC board is installed, the encoder
measurements can be read by the QIC.
A.2.3.14. Secondary Encoder Input To QIC
40
An additional external encoder can be attached to the system such that it can be read by the QIC. This
may be used for the development of other experiments by the user.
A.2.3.15. External Analog Input To QIC
The analog input applied to the RCA jack labeled COMMAND is level-shifted and scaled such that a
signal in the range of ±5 V applied to it is made available as a signal in the range of 0-5 V at a QIC
analog input. This is useful if you want to apply external command signals to a QIC-based controller.
A.2.3.16. Analog Signals Header: J11
The analog signals available at the RCA jacks, as previously discussed in this Section, are also
accessible on the DCMCT J11 header, whose location on the main board is shown in Figure A.1 by
component #17. The analog signals header J11 can be used for external circuitry. Its schematic is
illustrated in Figure A.7.
Figure A.7 J11 Connector Schematic
A.3. System Parameters
The specifications on the DCMCT system model parameters are given in Table A.2.
41
Table A.2 DCMCT Model Parameter Specifications
The specifications on the DCMCT system sensors are given in Table A.3.
42
Table A.3 DCMCT Sensor Parameter Specifications
It can be seen in Table A.3 that the analog sensors calibration constants are multiplied by a factor of two
when measured by the QIC Analog-To-Digital converters (A/D’s) as opposed to the RCA jacks. The
reason is that the RCA outputs are in the ±5 V range while the A/D inputs to the QIC are in the 0-5 V
range.
A.4. Hardware Configuration
Although not used with QICii implementation, the DCMCT external connections are presented here.
These are made via RCA and DIN jacks, as illustrated in Figure A.8.
43
Figure A.8 DCMCT External Connectors (Not Used For QICii)
The DCMCT external connectors shown in Figure A.8 perform the signal connections described in
Table A.4.
Table A.4 DCMCT External Connections
A.4.1. DCMCT Configuration For QICii Use
The DCMCT configuration and wiring required to use the QICii software is pictured in Figure A.9.
44
Figure A.9 DCMCT Configuration And Wiring For Use With QICii
Please configure and wire the DCMCT system for QICii use by following the steps below.
Step 1. Ensure the QIC processor core board is properly installed into its corresponding socket on the
DCMCT. This is illustrated by component #1 in Figure A.9. Be sure the QIC board is mounted
correctly, with all pins properly inserted into the socket.
Step 2. Ensure the inertial load is properly fastened to the DC motor shaft. This is depicted by
component #4 in Figure A.9.
Step 3. Ensure that the toothed belt does not drive the potentiometer. Remove it if necessary and place it
on the corresponding storage pins, as shown by component #5 in Figure A.9.
Step 4. When a QIC core board is inserted into the QIC Socket on the DCMCT, you can use the QIC to
measure all the sensors and to control the power amplifier. In this case the jumper J6, located in Figure
A.9, should be configured such that the onboard D/A output, controlled by the QIC, drives the linear
amplifier. If not already done, you may need to physically move jumper J6 to the left to connect the
output of the onboard D/A to the amplifier input. Enable the output of the D/A to drive the amplifier by
setting jumper J6 to the left (i.e. QIC control) as shown in Figures A.10 and A.11.
45
Figure A.10 J6 Schematic: QIC Use Figure
A.11 J6 Setting: QIC Use
Step 5. Connect the supplied serial cable from the DB9F connector on the DCMCT, labeled SERIAL,
and to the serial port on your PC. Typically choose serial port COM1. This connection is represented by
component #2 in Figure A.9.
Note:
A full serial cable is needed, not just the signals TxD, RxD, and GND.
Step 6. Plug the provided AC power transformer into the wall outlet and insert the corresponding power
connector into the DCMCT 6-mm jack labeled POWER.
Step 7. A wiring summary is provided in Table A.5.
46
LAB 3
Introduction to Laboratory Trainer Software
Contents:
Introduction
Getting Started
Plots
The Signal Generator
47
B.1. Introduction
The QIC interactive interfaces, also known as QICii, consists of a series of pre-compiled QIC controllers
and a PC-based Java interface. It allows you to:
 Download the pre-compiled PIC Hex file to the QIC module.
 Connect to the QIC via the QICii Java module.
 Interactively change parameters in the QIC controller to affect system behaviour.
 Collect realtime data from the QIC for plotting and future analysis.
B.2. Software Installation
B.2.1. System Requirements
QICii runs on Microsoft Windows 2000 and Windows XP, and requires, at a minimum, the resources
listed below to function properly.
The computer hardware requirements are:
 Minimum Pentium II 450 MHz processor.
 64 MB RAM.
 45 MB available hard drive space.
 External serial port.
The software requirements are:
 Windows 2000 with SP2 or Windows XP.
 User account with administrative privileges to install QICii. Not required for running it.
B.2.2. Installation
B.2.2.1. QICii Components
The QICii installer installs and configures the three following parts of the QICii software:
i. QIC Serial Programmer
This program is used to download a bootloader into the QIC the first time it is being used. Once you
have programmed the QIC with a bootloader, you will not require this program.
ii. QIC interactive interfaces (QICii)
This package contains all the hex files that need to be downloaded to the QIC for each experiment. It
also contains a Java virtual machine as well as the QICii Java application.
iii. PIC Downloader
48
This program is the serial bootloading program. Once you have programmed the PIC with a bootloader,
you can use this program for programming the PIC via the serial port.
B.2.2.2. If Upgrading QICii
CAUTION:
Do not overwrite a previous installation of QICii.
Always uninstall the previous version using the uninstaller first!
To remove a previous version of the QICii software, select Uninstall QICii from the Start menu,
typically under Programs | Quanser | QICii. The QICii uninstaller screen should then appear as
displayed in Figure B.1.
Figure B.1 QICii Uninstaller Welcome Window
B.2.2.3. Installing QICii
Follow this procedure when installing QICii from the installation CD. When installing from an
installation folder on your network, refer to this section for reference. However, you should also follow
any additional instructions provided by your network administrator. Please follow the instructions
detailed below to install the QICii software.
Step 1. Insert the QICii CD supplied with the system into your CD-ROM drive.
Step 2. The installer should start automatically from the desktop. If it does not, go to the Start menu, and
select Run.... Click then on Browse..., navigate to your CD-ROM drive, and select the file named like
49
qicii_x_x_x_x_setup.exe (where the x's are version dependent). The QICii installer screen should then
appear as displayed in Figure B.2.
Step 3. Proceed the installation by clicking the Next Button. The destination location page is displayed,
showing the default installation directory. This is illustrated in Figure B.3. To use the default directory,
click Next for the following step. To install to a directory other than the default one, select the Browse
button and enter a new pathname or browse through your file system to locate the desired installation
directory. Once this is done, click Next to continue.
Step 4. If the installation directory does not already exist, a dialog box appears prompting you to create
it. Click Yes to move on to the next installer window.
Step 5. Review the installation summary. Click Next to continue.
Step 6. If you already had a previous version of the QICii software installed in your destination
directory, a warning window prior to the installation of the Java Virtual Machine (JVM) may appear. It
is similar to the one shown in Figure B.4. Click on the Yes button to overwrite the content of the
previous JVM installation.
Step 7. The QICii installer wizard then displays a progress bar while it copies files to the destination
location and configure your system.
Step 8. When the installation is finished, the setup complete page is displayed. Click the Finish button to
exit the installer wizard.
B.2.3. Getting Started
Please follow the steps below to start and use the QICii software together with the DCMCT.
Step 1. To launch the QICii software, select Programs | Quanser | QICii | QICii from the Start menu. A
user interface window, similar to the one illustrated in Figure B.5, will be displayed.
50
Figure B.5 QIC Interactive Interface Window
Step 2. Select which serial port on your PC is connected to the serial cable that connects to the QIC (e.g.
COM1).
Step 3. As detailed in Section A.4.1 of Appendix A, ensure that the jumper J6 has been moved to the left
in order to enable the QIC to drive the linear amplifier. This is illustrated in Figure B.6.
Figure B.6 J6 Schematic: QIC Use
Step 4. Ensure that the DCMCT is powered up.
51
Step 5. Select which controller you want to run from the drop-down menu on the top left.
Step 6. Once you select the control program you want, QICii checks if the correct controller code is
already in the QIC. If it is not, then the PIC downloader will launch to download the appropriate
program into the QIC. You can also directly launch the PIC downloader by pressing the Download
program button on top of the QICii window.
The PIC downloader is illustrated in Figure B.7.
Figure B.7 PIC Downloader Window
Step 7. Once the PIC downloader window appears, download the controller code by following the steps
below:
a.
b.
c.
Select the serial port the DCMCT is connected to.
Click on the Write (F4) button.
A message appears: "Searching for boot-loader". Push the Reset button on the QIC core
to actually start the download. The message during the download is then: "Writing, please
wait!". As a reminder of Appendix A, the location of the Reset button on the QIC board is
depicted in Figure B.8.
52
Figure B.8 Reset Button On QIC Processor Core Board
Once the download is complete (i.e. the message says "All OK !"), press the Reset button
on the QIC core one more time. You have successfully downloaded the appropriate
controller program for that specific experiment.
e. Close the PIC downloader window.
d.
Step 8. Typically LED3 starts flashing, at which point you should press the User Switch in order to start
the controller. As a reminder of Appendix A, the User Switch is defined as the momentary action
pushbutton switch next to the two LED's on the DCMCT. It is represented in Figure B.9, which also
shows jumper J6.
Figure B.9 User Switch
Step 9. Only when LED2 stops flashing can you connect to the QIC. Do so by selecting the Connect to
data source button on top of the QICii window.
Step 10. You are now able to receive/send data from/to your chosen controller. You can now follow the
instructions for the corresponding laboratory.
The user interface toolbar buttons, which have been mentioned in the above procedure, are available on
the left-hand side of the toolbar located on top row of the QICii main window. They are located and
identified in Figure B.10 through the use of a unique ID number.
53
Figure B.10 Getting Started Features Toolbar
Table B.1 provides a description of each individual button of the "getting started" features. These
functions correspond to the toolbar buttons represented in Figure B.10.
The QICii window parameters for each individual controller are described in the Chapter associated with
the corresponding laboratory. They are normally located on the left-hand side of the QICii window.
B.2.4. Plots
Most QICii modules have one or two plots displaying the parameters being controlled. As an example,
this is illustrated in Figure B.11 in the case of the Position Control module. Plots can be displayed in a
variety of ways. Plots can be changed together or individually.
54
Figure B.11 QICii Position Control Plots
B.2.4.1. Common Features
In Figure B.11, changes to both plots can be applied simultaneously by using the toolbar located on top
row of the main window. That toolbar is detailed in Figure B.12 and Table B.2 through the use of a
unique ID number identifying each individual button.
Figure B.12 Common Plot Features Toolbar
55
Table B.2 lists and describes the plot features applying to both plots. These functions correspond to the
toolbar buttons identified and located in Figure B.12.
B.2.4.2. Individual Plot Functions
Changes to each individual plot can also be applied independently. These separate changes can be done
either by using the menu items or the buttons on top of the plot, or by rightclicking the mouse on the plot
and using the pop-up context menu items. In Figure B.11, changes to each individual plot can be applied
by using the toolbar located on top of the corresponding plot. That toolbar is detailed in Figure B.13 and
Table B.3 through the use of a unique ID number identifying each individual button.
Figure B.13 Individual Plot Features Toolbar
Table B.3 lists and describes the plot features applying to an individual plot. These functions correspond
to the toolbar buttons identified and located in Figure B.13.
56
Additionally, the menu item File | Exit closes the corresponding plot definitely.
B.2.4.3. Saving Data
You can also save the data displayed in a plot to a file for future analysis. The types of file format to
choose from are listed and described in Table B.4.
57
B.2.4.4. Taking Measurements On A Plot (Ctrl Zoom)
A utility is available that allows the user to take measurements (along both X- and Y-axes) off a plot.
Consider the position plot in Figure B.11. Measurement of the position overshoot value is depicted by
the double arrow in Figure B.14. To take a measurement on the Y-axis, press the Zoom-Y button
(illustrated by button #17 in Figure B.13) and hold the Ctrl key down. Start the measurement by moving
the mouse cursor on top of the starting point to measure from, hold down the mouse left button, and
move the cursor to the end measurement point. You can now release the mouse left button and the Ctrl
key. The starting point Cartesian coordinates are displayed in the bottom left corner of the plot under the
format (x,y). The difference between the end and starting points Cartesian coordinates is also displayed
in the bottom left corner of the plot under the format Δ(x,y). In the current example, we have: Δ(x,y) =
Δ(0,Overshoot Value).
Figure B.14 Overshoot (Y-Axis) Measurement
Measurement of the position peak time value is depicted by the double arrow in Figure B.15. To take a
measurement on the X-axis, press the Zoom-X button (illustrated by button #10 in Figure B.12) and hold
the Ctrl key down. Start the measurement by moving the mouse cursor on top of the starting point to
58
measure from, hold down the mouse left button, and move the cursor to the end measurement point. You
can now release the mouse left button and the Ctrl key. The starting point Cartesian coordinates are
displayed in the bottom left corner of the plot under the format (x,y). The difference between the end and
starting points Cartesian coordinates is also displayed in the bottom left corner of the plot under the
format Δ(x,y). In the current example, we have: Δ(x,y) = Δ(Peak Time Value,0).
Figure B.15 Peak Time (X-Axis) Measurement
Similarly, measurements along both X and Y axes can also be taken simultaneously by using the ZoomXY button (illustrated by button #9 in Figure B.12) and holding the Ctrl key down.
B.2.5. Signal Generator
Most QICii modules have a signal generation utility which can be used, for example, to generate the
DCMCT motor voltage in open-loop (like in the Modelling laboratory) or the reference signal to a
closed-loop system. If present, the signal generator input frame is located on the left-hand side of the
QICii module window, as shown in Figure B.11.
Furthermore, it is detailed in Figure B.16 where every input parameter defining the generated signal is
identified through the use of an ID number.
Figure B.16 QICii Signal Generator
Table B.5 provides a description of each input parameter defining the generated signal, as numbered in
Figure B.16.
59
The actual implementation of the QICii signal generator is described in the following subsections.
B.2.5.1. Square Wave
When button #3 in Figure B.16 is pressed, the QICii signal generator outputs a square wave as a
function of the Amplitude, Frequency, and Offset input parameters. This is illustrated in Figure B.17.
Figure B.17 QICii Square Wave Generation
Mathematically, the generated square wave signal, r(t), can be characterized by the following piecewisecontinuous function:
60
where t is the continuous time variable, Ampli the Amplitude input, Freq the Frequency input, Offset the
Offset input, and [ ] the modulo function.
B.2.5.2. Triangular Wave
When button #1 in Figure B.16 is pressed, the QICii signal generator outputs a triangular wave (a.k.a.
sawtooth signal or ramp) as a function of the Amplitude, Frequency, and Offset input parameters. This is
illustrated in Figure B.18.
Figure B.18 QICii Triangular Wave Generation
Mathematically, the generated triangular wave signal, r(t), can be characterized by the following
piecewise-continuous function:
61
where t is the continuous time variable, Ampli the Amplitude input, Freq the Frequency input, Offset the
Offset input, and [] the modulo function. According to Figure B.18, the triangular wave positive slope,
R0, is defined as:
R0  4 Ampli Freq
[B.3]
where Ampli and Freq are the Amplitude and Frequency inputs, respectively. Equation [B.3] can also be
expressed as follows:
R 0  4 Amplitude Frequency
[B.4]
B.2.5.3. Sinusoidal Wave
When button #2 in Figure B.16 is pressed, the QICii signal generator outputs a sinusoidal wave as a
function of the Amplitude, Frequency, and Offset input parameters. Mathematically, the generated
sinusoidal wave signal, r(t), can be characterized by the following function:
r(t) Ampli sin(2 Freq t)Offset
[B.5]
where t is the continuous time variable, Ampli the Amplitude input, Freq the Frequency input, Offset the
Offset input, and sin is the sinusoidal function.
62
LAB 4
System Modeling
Contents:
Introduction
Nomenclature
Practice first principles modeling
Reading Motor datasheets
Developing motor transfer functions in MATLAB using the CS toolbox
Determining System Parameters
Pre-lab results summary table
Modeling module graphical user interface
Module Startup
Static Relations
Dynamic Models
In-lab results summary table
63
2.3. Introduction
Modelling is an essential aspect of control. The key elements of modelling are:
 Get an overview of the system and its components.
 Understand the system and how the system works.
 First principles component modelling.
 Modelling from experimental tests – Parameter Estimation.
 Disturbances.
 Model Uncertainty.
 Model Validation.
An overview of the system can be obtained by pictures, schematic diagrams, and block
diagrams. This gives representations of a system which emphasizes the aspects of the
system that are relevant for control and suppresses many details. The work is guided by
focusing on the variables that are of primary interest for control.
The block diagram gives a natural partition of the system. Mathematical descriptions of the
behaviour of the subsystems representing each block is necessary to have a complete
model. In control it is often sufficient to work with linearized models where dynamics are
represented by transfer functions. These transfer functions can be obtained from first
principles by applying the basic physical laws that describe the subsystems or by
experiments on a real system. First principles modelling requires a good knowledge of the
physical phenomena involved and a good sense for reasonable approximations.
Experiments on the actual physical system are a good complement to first principles
modelling. This can also be used when the knowledge required for first principles
modelling is not available. It is good practice to start the experiments by determining the
static input-output characteristics of the system. For systems with several inputs as the
motor in the DCMCT one can often obtain additional insight by exploiting all inputs.
Models can also be obtained by exciting the system with an input and observing the system
variables. The so called “bump-test” is a simple method based on a step response.
Frequency response is another useful technique where a sinusoidal input is applied and the
steady-state response is observed. Frequency response has the advantage that very accurate
measurements can be obtained by using correlation techniques. A model can in principle be
obtained by applying any type of input to the system and analyzing the corresponding
response. There is abundant literature and good software available to do this. In this lab we
will emphasize simple methods.
Even if linear models are often adequate for control it is important to have an assessment of
the major nonlinearities of a system. Saturation of actuators is one nonlinearity that is
important for all control systems.
Disturbances are often an important issue in control system design. They may appear both
as load disturbances which drive the system away from its desired behaviour and
measurement noise that distorts the information about the system obtained from the sensors.
64
An assessment of the disturbances is an important part of modelling for control.
When determining parameters experimentally it is customary to also provide estimates of
the accuracy of the parameters. Similarly when modelling dynamical systems for the
purpose of controlling them, it is also essential to provide some measure of model accuracy.
When modelling dynamical systems the precision of a model can be expressed in terms of
the accuracy of the parameters. This is however not sufficient because there may be errors
due to neglected dynamics. It is important for design of control systems to make some
assessment of this unmodeled dynamics. An assessment of the unmodeled dynamics is
therefore an important aspect of modelling for control.
When a model is obtained, it is good practice to assess the validity of the model by running
simulations of the model and comparing its response with that of the actual system. Model
validation is an important step that should be performed in order to give a level of
confidence in the expected performance of the closed-loop system.
2.4. Nomenclature
The following nomenclature, as described in Table 2.1, is used for the system open-loop
modelling.
65
2.5. Pre-Laboratory Assignments: First Principles
Modelling
The DCMCT motor, inertial load, power amplifier, encoder, and the filter to obtain the
velocity are modelled by the Motor And Inertial Load subsystem, as represented in Figure
2.1. The block has one input the voltage to the motor Vm and one output the angular
velocity of the motor ωm. Additionally, a second input is also considered: the disturbance
torque, Td, applied to the inertial load.
66
Figure 2.1 The Motor And Inertial Load Subsystem
In the following, the mathematical model for the Motor And Inertial Load subsystem is
derived through first principles.
2.5.1. Motor First Principles
Please answer the following questions.
1. When using SI units, the motor torque constant, kt, is numerically equal to the back-electromotive-force constant, km. In other words, we have:
k t km [2.1]
This workbook uses the SI (International System) units throughout and the motor
parameter named km represents both the torque constant and the back-electro-motiveforce
constant.
Considering a single current-carrying conductor moving in a magnetic field, derive an
expression for the torque generated by the motor as a function of current and an
expression for the back-electro-motive-force voltage produced as a function of the shaft
speed. Show that both expressions are affected by the same constant, as implied in
relation [2.1].
2. Figure 2.2 represents the classic schematic of the armature circuit of a standard DC
motor.
67
Figure 2.2 DC Motor Electric Circuit
Determine the electrical relationship characterizing a standard DC motor.
3. Determine and evaluate the motor electrical time constant τe. This is done by assuming
that the shaft is stationary. You can find the parameters of the motor in Table A.2.
4. Assume τe is negligible and simplify the motor electrical relationship previously determined.
What is the simplified electrical equation?
5. Neglecting the friction in the system, derive from first dynamic principles the mechanical
equation of motion of a DC motor. Determine the total (or equivalent) moment of inertia
of motor rotor and the load.
6. Calculate the moment of inertia of the inertial load which is made of aluminum. Also,
evaluate the motor total moment of inertia. The motor data sheet is given in Table A.2.
68
2.5.2. Static Relations
Modelling by experimental tests on the process is a complement to first principles
modelling. In this section we will illustrate this by static modelling. Determining the static
relations between system variables is very useful even if it is often neglected in control
systems studies. It is useful to start with a simple exploration of the system.
Please answer the following questions.
1. Assuming no disturbance and zero friction, determine the motor maximum velocity:
ωmax.
2. Determine the motor maximum current, Imax, and maximum generated torque, Tmax.
3. During the in-laboratory session you will be experimentally estimating the motor
resistance Rm. This can be done by applying constant voltages to the motor and
measuring the corresponding current while holding the motor shaft stationary.
Derive an expression that will allow you to solve for Rm under these conditions.
4. During the in-laboratory session you will be experimentally estimating the motor torque
constant km. This can be done by applying constant voltages to the motor and measuring
both corresponding steady-state current and speed (in radians per second).
Assuming that the motor resistance is known, derive an expression that will allow you to
solve for km.
What is the effect of the inertia of the inertial load on the determination of the motor
constant?
5. Applying first principles, find an estimate of the measurement noise, eω, present in the
velocity signal ωm. Note that the encoder resolution is 4096 counts per revolution and the
sampling period h is 0.01 s.
Hints:
Consider the position measurement error eθ.
You can also use eh the error in the sampling interval (a.k.a. jitter).
The following series expansion can also be relevant:
[2.2]
2.5.3. Dynamic Models: Open-Loop Transfer Functions
Please answer the following questions.
1. Determine the transfer function, Gω,V(s), of the motor from voltage applied to the motor
to motor speed.
Hint:
The motor armature inductance Lm should be neglected.
2. Express Gω,V(s) as a function of the parameters a and b, defined such as:
[2.3]
3. Express Gω,V(s) as a function of the parameters K and τ, defined such as:
[2.4]
4. Determine the transfer function, Gω,T(s), from disturbance torque applied to the inertial
load to motor speed. Express Gω,T(s) as a function of the parameters KTd and τTd, as
69
defined below:
[2.5]
Show that
5. From your previous calculations and the motor parameters given in Table A.2,
summarize the system parameter values relevant to evaluate the tranfer functions derived
so far.
6. Evaluate both transfer functions Gω,V(s) and Gω,T(s), as well as their parameters a, b, K, τ,
and KTd.
7. Derive using basic blocks (gain, integrator, summer) the plant open-loop block diagram.
8. Simplify the obtained open-loop block diagram so that it has the block structure depicted
in Figure 2.4. Fill up the empty blocks.
Figure 2.4 Simplified Open-Loop Block Diagram Template
9. The transfer function Gω,V(s) previously derived is only an approximation since the
inductance of the motor has been neglected. Considering the motor electrical time
constant τe previously evaluated, justify the approximation.
2.5.4. Pre-Laboratory Results Summary Table
Table 2.2 should be completed before you come to the in-laboratory session to perform the
experiment.
70
71
72
73
74
75
76
77
78
79
80
81
82
LAB 5
Speed Control
Contents:
Introduction to the PI controller
PI control law (set-point,Kp,Ki)
Magic of Integral action
Nomenclature
Pre-labassignment
PI controller design to given specifications using MATLAB CS toolbox.
Tracking triangular signals (power of time input)
Response to load disturbances
Pre-labresults summary table
Speed control module graphical user interface
Module Description/Startup
Qualitative properties of proportional and integral control
Manual Tuning using ZieglerNichols
Design to given specifications
Tracking triangular signals (power of time input)
Response to load disturbances
In-lab results summary table
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
LAB 6
Position Control
Contents:
Introduction to the PID controller
PI control law (set-point,Kp,Ki)
Magic of Integral action
Controller with two degrees of freedom
Nomenclature
Pre-labassignment
Comparison between PD position and PI speed control
Fundamental limitations and achievable performance
PD controller design to given specifications using MATLAB CS toolbox.
Tracking triangular signals (power of time input)
Response to load disturbances
Pre-labresults summary table
Position control module graphical user interface
Module Description/Startup
Qualitative properties of proportional and derivative control
Design to given specifications
Tracking triangular signals (power of time input)
Response to load disturbances
In-lab results summary table
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
LAB 7
Robust Control
Contents:
Introduction
Nomenclature
Pre-labassignment
MATLAB script
Robustness and Sensitivity
Stability Margins
Pre-labresults summary table
Robustness module graphical user interface
Module Description/Startup
stability margin evaluation
In-lab results summary table
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
Download