Introduction To MBSD - Notes
Introduction To MBSD - Notes
Introduction To MBSD - Notes
Introduction to Model-Based
System Design
Lecture 1 Lecture 1
MBD
Model-Based-System Design re-engineers the
traditional development process from one which
is paper-based to one that uses an executable
2
model that is the repository for all information
about the concept, design, and implementation.
The model is used throughout the four stages of
development: Research, Design,
Implementation, and Verification & Validation. At
each stage of development the model is updated each stage of development the model is updated
and elaborated ensuring continuity and
traceability throughout the evolution of the
design.
1 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
2
What is Model-Based-System Design?
In its most basic form, Model-Based-
System Design is the use of models to
describe the specifications operation and
3
describe the specifications, operation, and
performance of a component or a system
of components.
Instead of listing specification in a text
document, a model is used that
f implements the specifications, operation,
and performance of components.
What is Model-Based-System Design?
Models can be shared with other
engineers:
Engineers do not have to generate their own
4
Engineers do not have to generate their own
models from text specifications.
Same model can be used by several
engineers at several different levels in the
design process.
Component models can be used in larger Component models can be used in larger
systems.
Models supplied by manufacturers accurately
reflect the performance of their components.
2 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
3
Old Method Text Documents
Text documents are used to describe the
performance of a component.
Example: 12V to 5 V DC DC Converter
5
Example: 12V to 5 V DC-DC Converter
12 V power is readily available in vehicle
environments.
5V supplies are needed to power the
Navigation/Infotainment system.
% ff Power conversion is less that 100% efficient.
Old Method Text Documents
Electrical Specifications
Input Voltage: 9V to 18 V
Output Voltage: 5V
6
Output Voltage: 5V
Output Ripple: 50 mV
Output Current: 0A to 8A
Efficiency: 86%
Derating:
3 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
4
Old Method Text Documents
Thermal Specifications
Case to Ambient Thermal Resistance:
1
C/Watt
7
1 C/Watt
Case to Sink Thermal Resistance
0.03
C/Watt
Heat Capacity: 300 J/
C
Heat Sink Thermal Resistance:
0 91
C/Watt (Natural Convection) 0.91
Demo___________
20 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
7
Lecture 2 Exercise 1b
Use Simulink to calculate how far a vehicle moving at 60
mph would travel in 100 seconds. Provide an answer in
both miles and in kilometers.
13
Answers: 1.667 miles, 2.682 km.
Demo___________
High-Level System
Our plan is now to use Simulink to build a model
of the plant and controller
14
p
Plant : Motor, Generator, Shaft Encoder
Controller: P or PI
Plant Input : Light bulb load
Controller Input : Generator speed
We will build a very simple plant first. y p p
We are aiming for the following system:
21 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
8
High Level System
15
Plant
Controller
Input
Plant
Input
Feedback Loop
Controller
16
22 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
9
Model-Based System Design
To build our plant (and controller), we will use
MBSD
Start with simple component models
17
Anticipate the appropriate system responses
Verify the model works correctly
Make ONE improvement
Understand effect on model
Make ONE improvement
Understand effect on model
Repeat
Model-Based System Design
We shall employ Model Hierarchy to
represent plant components
Subsystems will contain the physical model
18
Subsystems will contain the physical model
for each component
Subsystems may contain subsystems that
represent functionality
We will also use SimDriveline to handle
th ki ti d ki ti f t the kinetics and kinematics of our system
23 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
10
MBSD Model Hierarchy
19
Motor
Shaft Encoder
Generator
MBSD
Before we tackle the plant, lets build the
top-level model found on slide 15
Open a new model file and save it as
20
Ope a e ode e a d sa e as
Lecture2_Model1.mdl
24 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
11
System Model
21
Toggle the model
browser to show
the subsystems
System Model
From Commonly Used Blocks, drag two
Subsystem Blocks into your model
R th b t C t ll
22
Rename the one subsystem Controller,
and the other Plant
In the Model Browser window, left click on
the Plant subsystem.
25 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
12
System Model
23
Left-click here.
Plant Model
Our plant is not very exciting it has an
input and an output with nothing in
between
24
between
Delete the arrow connecting the input and
output and add three more subsystems to
represent the generator, motor, and shaft
encoder
Make your model look like the next slide
26 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
13
Plant Model
25
Right click
Select Format
Select Flip Name
Fantastic you have got the pieces to build Fantastic, you have got the pieces to build
the plant
Lets build a simple motor left click on
Motor in the Model Browser
Motor
The motor we are modeling is a Pacific
Scientific model 4VM62-020-4 with the
following name plate specs:
26
following name plate specs:
Torque Constant: 30 Oz-in per Amp
Max Current: 8 Amps
Our driver will limit the motor to about 4
amps maximum.
The max torque our motor will produce is
120 Oz-in.
27 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
14
Motor
SimDriveline uses MKS units so we need
to convert our torque to Nm.
The conversion factor is one Oz In=
27
The conversion factor is one Oz-In =
0.007062 Nm.
Note that the maximum torque of our
motor is 120 Oz-in = 0.85 Nm.
Plant Model - Motor
Our motor will operate by
Receiving a 0-100% max torque request from
the controller
28
Multiplying this request with the motors max
rated torque (0.85 Nm)
Drag a gain into the motor subsystem
Rename the In1 to Torque Request
28 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
15
Plant Model - Motor
We have created an ideal motor with
Variable torque from 0 to max rated value.
No rpmlimits
29
No rpm limits.
No energy conversion inefficiencies.
No frictional losses.
Torque is independent of rpm.
This is a terribly inaccurate model, but it is y
an easy to understand first step.
Plant Model - Motor
Now we need to apply
the motor torque to a
drive line.
U Si D i li
30
Use SimDriveline
A Simulink physical library
set for modeling dynamics
Kinetics and kinematics
are built in
Plug & Play!
Fromthe Simscape From the Simscape
library, go to
SimDriveline / Sensors
& Actuators and select
Torque Actuator
29 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
16
Plant Model - Motor
Drag a Torque Actuator into the motor
model
31
It converts a Simulink signal to a SimDriveline
signal
Link the output of the Available Current
gain block to the input of the Torque
Actuator Actuator
SimDriveline Port
can ONLY be used
with SimDriveline
blocks
Plant Model - Motor
Since the SimDriveline port
can only be used with
SimDriveline blocks
32
Delete the Out1 port in the
Motor subsystem
Drag in a Connection Port
from the
SimDriveline/Utilities
library
Right click on the Port,
select Format, and then
Flip Block
Connect the Actuator to the
Port
Rename the Port to Motor
Output
30 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
17
Plant Model - Motor
All rotating devices
have a mass moment
33
of inertia
Drag in an Inertia
from the Solver &
Inertias library
Double click on it to
give it the actual value
of 1e 3 kg*m
2
for the of 1e-3 kg m
2
for the
motor
Connect the Inertia to
the driveline
Plant Model - Motor
Our motor model is done!
34
31 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
18
Lecture 2 Exercise 2
Modify the motor model to use the name
plate specifications for the motors and
generators used in the lab Use the
35
generators used in the lab. Use the
following items listed on the nameplate:
Torque constant.
Rotor Inertia.
Max motor current is 6.3 amps. (Due to
current limits on the DC power supply.)
Demo___________
Plant Model
Return to the Plant level of the model
36
Thats inconvenient!
Having the port on the
right would be way
better
32 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
19
Plant Model - Motor
Use the Model Browser to return to the Motor
subsystem and double click on the Connection Port
(Motor Output)
37
Change the Port Location from left to right
Return to the Plant subsystem and resize the Motor
subsystem block
Plant Model - Generator
Okay, lets now build a generator to be powered
by the motor
38
Now is a great time to do a version change
Save your model.
Next, save the model as Lecture2_Model2.mdl
In the Model Browser, click on the Generator
We knowthat there will need to be a We know that there will need to be a
SimDriveline port to connect to the Motor add
it and rename it Mechanical Input
Delete the Simulink input and output ports.
33 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
20
Plant Model - Generator
39
Plant Model - Generator
Our generator will operate as follows:
The Generator output is connected to a bank of 12 V
40
light bulbs connected in parallel.
The bulbs are an electrical load.
As the generator spins, it generates a voltage that is
proportional to generator speed.
The voltage is applied to the load and the load draws
current. current.
To produce this current, the generator applies a
torque to the shaft in opposition to the direction of
rotation.
34 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
21
Plant Model - Generator
Effectively, the generator is a mechanical load to
the motor that is controlled by the electrical load.
Since:
41
The generator voltage is proportional to speed, and
The resistor current is proportional to voltage, and
The generator torque is proportional to current
The generator mechanical load is proportional
to the generator speed. g
Plant Model - Generator
Our first generator model will model the
generator as a mechanical load that is
proportional to speed
42
proportional to speed.
We will model the generator so that it
achieves a maximum load torque of 1 Nm
at 3000 rpm.
There will be no user input for the load
torque. We will assume that a fixed
number of bulbs are turned on.
35 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
22
Plant Model - Generator
Drag the following into the generator
Gain
Divide
43
Divide
Torque Actuator
Motion Sensor
Inertia
Constant
Saturation
and arrange according to the next slide
Youll have to flip some blocks around
Plant Model - Generator
44
36 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
23
Plant Model - Generator
45
Si l f 0 t 1
Measure generator speed.
Generator speed (rpm).
Signal goes from 0 to1 as
speed goes from 0 to 3000
rpm. Signal can be larger
than 1.
Plant Model - Generator
46
Torque varies linearly from
0 to 1 Nm as speed goes
from 0 to 3000 rpm.
Signal goes from 0 to 1 as
speed goes from 0 to 3000
rpm. Above 3000 rpm
signal is limited to 1.
Saturation limits
set for 0
i i 1
p s g a s ted to
minimum, 1
maximum.
37 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
24
Plant Model - Generator
47
Apply a torque in
opposition to shaft
t ti rotation.
Inertia same as
the motor.
Lecture 2 Exercise 3
Verify the operation of your
generator model.
Copy the Generator
subsystemto a newmodel
48
Demo
subsystem to a new model.
Generate a plot of generator
load torque versus shaft
rpm.
You should obtain a plot as
shown below:
Demo___________
shown below:
You may need to add a part
called SimDriveline Env to
get your simulation to run.
38 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
25
Plant Model - Generator
Click on the Plant in the Model Browser
2/3 of the way done!
49
2/3 of the way done!
Plant Model - Encoder
Our final step is to read the shaft speed through
a shaft encoder
We will use the SimDriveline Motion Sensor to
t th Si D i li i l t Si li k
50
convert the SimDriveline signal to a Simulink
signal
Save your model
Resave your model as Lecture2_Model3.mdl
Click on the Shaft Encoder in the Model Browser
Drag in a Connection Port Drag in a Connection Port
Drag in the Motion Sensor from the Sensors &
Actuators library
39 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
26
Plant Model - Encoder
51
Plant Model - Encoder
52
40 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
27
Plant Model - Encoder
Delete the In1 port
Rename the Connection Port to Shaft
Input
53
Input
Drag in a Gain to convert rad/s to rpm
Rename the Out1 port to Encoder Output
Link everything together
Plant Model - Encoder
54
Outstanding the encoder is done!
41 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
28
Plant Model Whole Plant
In the Model Browser, click on Plant
Adjust the size of the Encoder
55
Adjust the size of the Encoder
Plant Model Whole Plant
Link the Motor Output to the Mechanical Input of
the Generator
56
Rename In1 to Torque Request and link to the
Motor Torque Request port
Rename Out2 to Actual rpm and link to the
Encoder Output port
Link the Shaft Encoder Shaft Input to the
driveline driveline
42 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
29
Plant Model Entire Plant
57
Environment
We are just about ready to go but are
missing one thing
Driveline Environment
58
Driveline Environment
This enables Simulink to utilize the
SimDriveline blocks
In the SimDriveline Solvers & Inertias
library, drag a Driveline Environment y g
block into your plant and connect to the
driveline
43 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
30
Environment
59
Necessary for all
SimDriveline models
Completed Model Demo___________
Any Questions?
44 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
1
Introduction to Model-Based
Systems Design
Lecture 3: Controller Design and Testing Lecture 3: Controller Design and Testing
Presentation Outline
Proportional Control
System Diagnostics
T ti
2
Testing
Understand the operation of a proportional
controller
45 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
2
Proportional Control
3
User Input Controller
Plant
Proportional Control
4
Error Difference between
desired and actual response.
Amplifier error signal. Gain 0.
Input to the plant is proportional
to the difference between the
desired plant response and
actual plant response.
46 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
3
Getting Started
Its time to do a version switch
Save your model.
S d l i
5
Save your model again as
Lecture3_Model1.mdl
Getting Started
Use the Model Browser to go to the top
level of your model
6
y
47 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
4
Control Strategy
Our plan is to implement a proportional (P)
controller based on system speed
We would like the motor rpm to be held
7
We would like the motor rpm to be held
constant relatively independent of the
mechanical load.
This will be done by modifying the amount of
torque produced by the motor based on the
difference between the desired and actual difference between the desired and actual
motor speed.
Whole System
At the top level of your model, drag in a
Constant from the Commonly Used
Blocks library
8
Blocks library
It will be the desired system speed
Double click and set its value to 1800 rpm
This will be a user input in the physical realization
(a knob).
48 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
5
Controller
Open the Controller subsystem within the
Model Browser
Rename Out1 to Torque Signal
9
q g
Rename In1 to Desired rpm
Add a second In1 and rename it Actual rpm
From Commonly Used Blocks, drag in a
Sum
Gain
Saturation
Controller
10
49 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
6
Controller
Double click on the
Sum block
11
Sum block
Change the List of
signs: to |+- so that
the second signal is
subtracted
Change the second + to a -
Click OK
Controller
Double click on the
Saturation block
Change the Upper and
L li it t 1 d 0
12
Change to 1
Lower limits to 1 and 0
respectively
This allows our torque
request to go from zero
to max positive torque
Our motor cannot
Make the second + a -
Change to 1
Change to 0
produce a negative
torque.
Click OK
50 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
7
Controller
Now link everything together
13
Controller
The last thing to do is estimate the value
for the Gain block
Usually classic control theory tells us this
14
Usually classic control theory tells us this
Were not going to do this here.
In many systems where we use Model-Based-
System Design, the systems are so
complicated that we do not have sufficient
models to do the classical analysis. models to do the classical analysis.
Use common sense, then tune
51 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
8
Controller
We are looking at the difference in between
desired and actual rpm
For a gain of 1, if we are below the desired rpm
by 1 rpm, the controller will ask the motor for full
t
15
torque.
Thats a bit excessive!
For a gain of 1, if we are slightly above the
desired rpm, the torque will drop to zero.
Thats a bit excessive!
Could yield oscillations and broken shafts!
A t ti i t l t t th i t 0 01 As a starting point, lets set the gain to 0.01.
The rpm must be off by 100 rpm to get a full
torque signal
Top-Level Block Diagram
Go back to the top level of your model and
connect everything.
16
Looks like a classical feedback system.
52 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
9
Initial Condition
We are just about ready to run our model.
Left click on the Plant in the model browser
Drag in an Initial Condition block from the
17
SimDriveline / Sensors & Actuators library
Connect it to the driveline.
Double click and give it a value of 0 rad/s (0 rpm)
Click OK
Note that without this block the initial speed
always start at zero. Using this initial condition
allows us to start the motor at a high rpm and then
see how it settles down to the desired rpm.
Initial Condition
18
53 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
10
System Diagnostics
Before we run our model, we may want to
review the results in graph form.
We will utilize a scope
19
We will utilize a scope
Process:
Name all signals of interest
Attach them to the scope
Preliminary signals of interest Preliminary signals of interest
Desired and actual rpm
Scope
In the Model Browser, left click on the
Controller
Right click on the signal line which
20
Right click on the signal line which
connects the Desired rpm port to the sum
Select Signal Properties from the menu.
Change the Signal Name to Desired_rpm
Click the OK button Click the OK button.
54 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
11
Scope
21
Scope
Repeat for the Actual rpm signal line,
renaming it Actual_rpm
22
Note the underscores
in the signal names!
55 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
12
Scope
Now we need to create a viewer and
attach the signals.
Right click on the Desired rpm signal line.
23
g c c o e es ed_ p s g a e
(1) Select Create & Connect Viewer, (2)
select Simulink, then (3) select Scope,
from the menus.
Congratulations you have created a
scope that display a single signal scope that display a single signal,
Desired_rpm.
Scope
24
Right-click on this
signal line.
56 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
13
Scope
Now we need to display the actual rpm on
the same scope and on the same axis.
Right click on the Actual rpm signal line
25
Right click on the Actual_rpm signal line
and select Connect to Existing Viewer,
then select Scope, then select Axis1.
Scope
26
57 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
14
Scope
You will notice little glasses on your
model.
These glasses indicate that the associated
27
These glasses indicate that the associated
signal is being display on a scope.
Scope
Typically a scope will only display the last
7500 points of a simulation.
We are not sure how many points our
28
We are not sure how many points our
simulation will have, so we will change this
setting.
Click on the Parameters button in the
scope window as shown next.
Select the History tab and uncheck the
option as shown.
58 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
15
Scope
29
History tab selected.
Option not selected.
Click OK when done.
Execution
We can now run our model.
Before doing so, how should our system
respond?
30
p
When the rpm is well below 1800 rpm, the
motor should apply a large torque to the
system.
The motor should quickly approach 1800 rpm.
At close to 1800, the motor torque is reduced At close to 1800, the motor torque is reduced
and the rpm should hold close to 1800 rpm.
Lets see if our simple system and simple
controller behave as expected.
59 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
16
Execution
Click the Start Simulation button
31
Start Simulation button
Execution
Observe the Scope
32
Click on
Actual rpm never
reaches Desired rpm.
Click on
binoculars
BAM!
It does not work!
Starts at IC of 0.
60 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
17
Model Problems
The motor speeds up very quickly. Why?
The motor speed never reaches the
desired rpm Why?
33
desired rpm. Why?
Lecture 3 Exercise 1
The motor cannot reach the desired speed of 1800 rpm.
We would like to find out why.
1. Change the scope y-axis so that the range is 0 to 2000
34
g p y g
by default.
2. Modify the scope so that it displays 4 plots in the same
window
3. Display following signals:
1. Desired and actual rpm (already done).
2 Controller torque requested 2. Controller torque requested.
3. Motor Torque
4. Generator Torque
4. Determine why the motor cannot reach the desired
speed and fix it.
Demo___________
61 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
18
System Observations
The system goes from 0 to 1800 rpm in
about 6 ms.
35
Does this make sense?
Yes because the inertia of the system is Yes, because the inertia of the system is
so small.
System Observations
A 6 ms step response seems quite fast for
this system.
The motors are specified as ultra low
36
The motors are specified as ultra-low
inertia motors, so this might be
reasonable.
We should figure out a way to measure
the inertia.
Such a small inertia will make the system
hard to control.
62 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
19
Motor Step Response
37
0 to 99% takes about 6
ms (x = 6.080 ms)
Tach scaling = 2.5 V per
1000 rpm
( )
V
rpm
V
V
rpm
y rpm
5 2
1000
18 . 7
5 . 2
1000
=
x
y
rpm
V
2872
5 . 2
=
With this fast step response, the response of the motor on slide 34 seems
reasonable.
Model Testing and System
Comprehension
Observe the step response
38
Click on
Approaches
desired rpm
Click on
binoculars
BAM!
desired rpm
Starts at IC
63 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
20
Issues
Note that we have but approached the desired
rpm but we dont seem to achieve it why?
Because this is a proportional control method
39
p p
and the error signal times the gain yields the
torque necessary to drive the motor!
Also note that 4 seconds of simulation time is
not needed.
Change the simulation end time to 0.05 seconds g
as shown next:
Simulation Time
40
Changed to 0.05 seconds.
64 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
21
Simulation Time
Rerun the simulation and observe the
results:
41
Verification
Lets now make sure our system behaves
as expected
Perform the following tests write down
42
Perform the following tests, write down
what you think should happen, and verify
that it does
65 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
22
Verification Initial Conditions
Test 1 - Set IC to 250 rad/s, all else constant
Expected
43
Expected __________________________
Simulation __________________________
Verification Controller Gain
For the next tests, hold the IC at 0 rad/s,
the desired rpm at 1800
44
We shall experiment with the controller
gain.
66 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
23
Lecture 3 Demo 1
Verification Controller Gain
45
Test 3 - Set controller gain to 0.001
Steady state error (rpm) __________________
Steady state stability __________________
Test 4 Set controller gain to 0.01
Steady state error (rpm) __________________
Steady state stability __________________
Test 5 Set controller gain to 0.1
Steady state error (rpm)
Demo
Steady state error (rpm) __________________
Steady state stability __________________
Test 6 Set controller gain to 1
Steady state error (rpm) __________________
Steady state stability __________________
Demo___________
Verification Controller Gain
Test 3 - Set controller gain to 0.001
Steady state error (rpm) _______500 rpm__
Steady state stability stable Did not reach 1800___
46
Test 4 Set controller gain to 0.01
Steady state error (rpm) _______70 rpm___________
Steady state stability _______stable - Basically___________
Test 5 Set controller gain to 0.1
Steady state error (rpm) _______7 rpm___________
Steady state stability ___Slight Oscllation 2 rpm p-p Mid Freq_____
Test 6 Set controller gain to 1
Steady state error (rpm) _______<1 rpm___________
Steady state stability _______oscillates_- 1 rpm p-p, High Freq__
67 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
24
Proportional Control
47
Error Difference between
desired and actual response.
Amplifier error signal. Gain 0.
Input to the plant is proportional to
the difference between the desired
and actual plant response.
Verification Controller Gain
48
Gain = 0.001 Gain = 0.01
Gain = 0.1
Gain = 1
68 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
25
Verification Controller Gain
49
Gain = 0.001
Gain = 0.01
Gain = 0.1
Gain = 1
Verification Controller Gain
Increasing the gain
Reduces the steady state error
50
Can lead to oscillation
69 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
26
MBSD
This is why we do MBSD
Understand a complex system using simple
components
51
components
Understand effect of controller and
components / loads on system response
Size components to within the ballpark
Identify model shortcomings for future
improvement improvement
Good job!
Controller Design and Testing
Incremental Improvement to the
M d l Model
70 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
27
Outline
Motor
Torque will be a function of rpm
Generator
L d t b h d b h i th b f li ht
53
Load torque can be changed by changing the number of light
bulbs.
Friction
Will be added via a clutch
MPC555x
Signals will be scaled accordingly
Getting Started
Its time to do a version switch.
Save your model.
S d l i
54
Save your model again as
Lecture3_Model2.mdl
71 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
28
Improved Motor
We will improve the motor model by making the
motor torque a function of motor rpm.
Use the same method used previously to
55
p y
measure the motor rpm.
Use a lookup table to implement the rpm
dependence of the motor.
Obtain a lookup table from the manufacturer.
Later on we will design an experiment and Later on we will design an experiment and
measure the actual torque curve of the motor.
Improved Motor Model
The following torque curve was obtained
from the manufacturer. (Not really, but
well pretend )
56
we ll pretend.)
Rpm Torque (Nm)
0 0.4
1000 0.4
2000 0.3
3000 0.2
4000 0
72 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
29
Motor Model
Now that we have our motor torque curve
data, we can use it in our model.
We will use a 1 D look up table
57
We will use a 1-D look up table.
Our motor model presently has a constant
torque curve:
58
Replace these gain blocks with a
Lookup Table (Simulink/Lookup
Tables) and a Product block.
73 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
30
59
Double-click on the lookup table and specify
the parameters as shown:
60
Input rpm values.
Output torque values.
Make sure that you
select Interpolation
Use End Values
The output of the part (Table data) is the motor torque.
The input to this part is the motor rpm.
74 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
31
Motor Model
When you click the OK button, the torque
curve will be displayed on the lookup table
block
61
block.
Motor Model
We need to measure the motor speed and
convert the units from rad/sec to rpm.
We have already done this with a shaft
62
We have already done this with a shaft
encoder subsystem.
We can copy the shaft encoder subsystem
and then paste it inside the motor model.
Finally, we will feedback the rpm value to Finally, we will feedback the rpm value to
the table.
75 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
32
Motor Model
63
Lecture 3 Exercise 2
Verify the operation of
your motor model.
Copy the Motor
subsystem to a new
64
Demo___________
subsystem to a new
model.
Generate a plot of
motor torque versus
shaft rpm.
You should obtain a plot
as shown: as shown:
You may need to add a
part called SimDriveline
Env to get your
simulation to run.
76 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
33
Verification - Motor
We have made a simple change to our
model lets make sure it operates as we
expected
65
expected.
Run the following experiments and
observe the behavior. We should see
similar results as in the previous
simulation.
Set the shaft rpm initial condition back to
zero.
Verification - Motor
To verify the motor, we should really
observe the torque versus speed.
We need to add a torque sensor and then
66
We need to add a torque sensor and then
plot it on our graph.
We will create a new scope with two plots.
To create a new scope, we use the same
procedure we used earlier procedure we used earlier
77 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
34
Adding a Scope
In the first plot, we wish to display the desired
and actual rpm.
To create a new scope, right click on the signal
67
p , g g
you display (Desired_rpm), and then select
Create & Connect Viewer, then Simulink, and
then Scope from the menu. This will display
signal Desired_rpm on the scope.
To add a second trace to the graph, right click
on the second signal you wish to display
(Actual_rpm), select Connect to Existing
Viewer, then Scope1, then Axis1 from the
menus.
Verification - Motor
We now have two scopes for our model
called Scope and Scope 1.
Scope has 4 plots (probably) that we
68
Scope has 4 plots (probably) that we
created in exercise 1.
Scope1 has a single plot. We would like
to add a second plot.
Click on the Parameters button in the Click on the Parameters button in the
Scope1 window as shown next.
Select the General tab and set the
number of axes to 2.
78 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
35
Scope Settings
69
General tab selected.
Number of axes
specified as 2.
Motor Model
We must now add a torque sensor.
Find a part called Torque Sensor located
in the Simscape / SimDriveline / Sensors
70
in the Simscape / SimDriveline / Sensors
& Actuators library.
Use a terminator block as shown (Simulink
/ Commonly Used Blocks library) to
terminate the signal.
Label the Signal as Motor Torque
79 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
36
Motor Model
71
Motor Model
We now want to add this trace to Axis 2 of
Scope1.
Right click on the Motor Torque signal line
72
Right-click on the Motor Torque signal line
and select Connect to Existing Viewer,
Scope1, and then Axis 2.
80 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
37
Motor Model
One last improvement we
will make is to guarantee
that the motor cannot
73
that the motor cannot
output a negative torque.
(Because our DC motor
controller does not have a
brake.)
Add a saturation part as
shown and set its limits to
0 and inf.
Motor Model
74
Saturation part
added here.
81 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
38
Motor Model
We now have a slightly better motor model
than before.
This motor follows a torque curve and
75
This motor follows a torque curve and
cannot output a negative torque.
If we had more time, we would continue to
make improvements to the model, but not
here.
We will now test the model to make sure
the improvements we have made work as
expected.
Motor Testing
When we run a simulation, we should see
the torque fall off as the motor speeds up.
76
Run the following g
tests.
Compare to previous
results.
See if our model
behaves as expected behaves as expected.
For all tests, set the
feedback gain to
0.01.
82 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
39
Verification Motor IC
Test 1 - Set IC to 0 rad/s, all else constant
Old Model _rpm starts below, ramps up___
77
New Model __________________________
Test 2 Set IC to 250 rad/s, all else constant
Old Model __ rpm starts above, ramps down_
New Model __________________________
Make sure you observe the torque and see Make sure you observe the torque and see
that the motor behaves correctly.
Observe that the motor torque is zero if the
motor speed is to high.
Verification Motor Gain
For the next tests, set the IC at 0 rad/s, the
desired rpm at 1800
78
p
83 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
40
Lecture 3 Demo 2
Verification Feedback Gain
Test 4 - Set controller gain to 0.001 Old Model New Model
Steady state error (rpm) ___________ ___________
Torque Signal ___________ ___________
79
Steady state stability ___________ ___________
Test 5 Set controller gain to 0.01
Steady state error (rpm) ___________ ___________
Torque Signal ___________ ___________
Steady state stability ___________ ___________
Test 6 Set controller gain to 0.1
Steady state error (rpm) ___________ ___________
Torque Signal ___________ ___________
Steady state stability ___________ ___________
Test 7 Set controller gain to 1
Steady state error (rpm) ___________ ___________
Torque Signal ___________ ___________
Steady state stability ___________ ___________
Demo___________
Verification - Motor
Our model seems to be operating as
expected (or else do not contuinue)
When we observe the torque signal it is easy
80
When we observe the torque signal, it is easy
to see that the system oscillates at high gain!
Lets move on to the generator
Version control
Save it.
Save it again as Lecture3_Model3.mdl
84 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
41
Improved Model - Generator
Our previous generator model applied a
load torque that varied linearly with speed.
81
The max load was equivalent to all of the
light bulbs being turned on.
We could never vary the load by changing
the number of light bulbs.
We will modify the load torque by We will modify the load torque by
multiplying the torque constant by the
number of bulbs.
Improved Generator
82
Original value was 1. Changed
to 1/6 for same load as before
when we have 6 bulbs.
Product added to multiply
by the number of bulbs.
Bulb load. Can range from
0 to 6 bulbs. 0 to 6 bulbs.
85 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
42
Improved Generator
83
Part added so that we can only
have integer values of the
number of bulbs. Part name
Rounding Function. Library
Simulink / Math Operations.
Saturation part with limits
set from 0 to 6.
Dont forget to add this port.
Improved Generator
Since we added a new Simulink port to the
generator model, we will need to add a
84
port to the plant model as well.
Port added here.
86 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
43
Improved Generator
At the top level we need to add a constant
that will be used to specify the number of
85
bulbs.
Constant added here.
Verification - Generator
We have made a simple change to our model
lets make sure it operates as we expected
Run the following experiments and ensure that
86
g p
we get the same results as with our previous
motor improvement
Set the light bulb load to 6 bulbs. This should be
the same as our previous experiments.
Set the desired rpm is 1800 and the p
proportional gain to 0.01.
87 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
44
Lecture 3 Demo 3
Verification Generator IC
Test 1 - Set IC to 0 rad/s, all else constant
Old Model
87
Old Model __________________________
New Model __________________________
Test 2 Set IC to 250 rad/s, all else constant
Old Model __________________________
New Model __________________________
Th lt h ld t h i These results should match our previous
simulations since 6 bulbs is equivalent to
what we did previously.
Demo___________
Verification Feedback Gain
For the next tests, hold the IC at 0 rad/s,
the desired rpm at 1800, and the load at 6
b lb h ll if th t ll i
88
bulbs we shall verify the controller gain.
The results should be the same as our
previous simulations.
88 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
45
Lecture 3 Demo 4
Verification Feedback Gain
Test 4 - Set controller gain to 0.001 Old Model New Model
Steady state error (rpm) ___________ ___________
Torque Signal ___________ ___________
89
Steady state stability ___________ ___________
Test 5 Set controller gain to 0.01
Steady state error (rpm) ___________ ___________
Torque Signal ___________ ___________
Steady state stability ___________ ___________
Test 6 Set controller gain to 0.1
Steady state error (rpm) ___________ ___________
Torque Signal ___________ ___________
Steady state stability ___________ ___________
Test 7 Set controller gain to 1
Steady state error (rpm) ___________ ___________
Torque Signal ___________ ___________
Steady state stability ___________ ___________
Demo___________
Verification
Our generator model works as expected
for 6 bulbs. (If not, fix it.)
Since we have a variable load we can
90
Since we have a variable load, we can
now observe the affect of changing the
load on the simulation.
Next, we will run some tests while varying
the load.
For all tests set the gain to 0.01, the
desired rpm to 1800, and the initial
condition for the rpm to 0.
89 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
46
Lecture 3 Demo 5
Verification Feedback Gain
Test 1 - Set number of bulbs to 0
Steady state error (rpm) ___________________________
Torque Signal ___________________________
91
Test 2 - Set number of bulbs to 1
Steady state error (rpm) ___________________________
Torque Signal ___________________________
Test 3 - Set number of bulbs to 2
Steady state error (rpm) ___________________________
Torque Signal ___________________________
Test 4 - Set number of bulbs to 3
Steady state error (rpm) ___________________________
Torque Signal ___________________________
Test 5 - Set number of bulbs to 4
Steady state error (rpm) ___________________________
Torque Signal ___________________________
Demo___________
Lecture 3 Demo 6
Verification Feedback Gain
Test 1 - Set number of bulbs to 5
Steady state error (rpm) ___________________________
Torque Signal ___________________________
92
Test 2 - Set number of bulbs to 6
Steady state error (rpm) ___________________________
Torque Signal ___________________________
The results should show that the steady state error
increases as we increase the number of bulbs.
With no load (0 bulbs) the error should be very ( ) y
close to zero.
Demo___________
90 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
47
Improved Model - Generator
Right now our generator is pretty much a black
box that creates a load torque that is
proportional to motor rpm.
Lets try to do a similar model that relates a bit
93
Lets try to do a similar model that relates a bit
more to the physical components in our system.
The generator produces a voltage that is proportional
to the generator speed.
This voltage is applied to the light bulbs, and the
bulbs draw current proportional to the voltage applied
across them (Ohms Law).
The current is supplied by the generator.
To supply the current, the generator produces a
torque that opposes its direction of motion.
Improved Generator Model
This model is actually a combination of
many of the previous models we have
already built
94
already built.
Before continuing:
Save your model.
Save your model again as
Lecture3_Model4.mdl
91 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
48
Improved Generator Model
95
Improved Generator Model
96
Each bulb draws
about 1 A at 12 V.
Overall bulb
resistance.
When we have equal resistors in parallel, the overall
resistance is the resistance of a single element divided by
the number of elements.
92 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
49
Improved Generator Model
97
Generator voltage
is 24 V when the
rpm is 3500 .
Generator current is the generator
voltage divided by resistance of the
bulbs in parallel.
Improved Generator Model
98
Convert the torque
from Oz-in to Nm.
Apply torque to
oppose the
direction of rotation.
Use the motor torque constant to
calculate how much torque is needed
to produce the generator current.
93 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
50
Improved Generator Model
99
This generator model has a bad flaw. Can you find it and fix it.
You might not notice until you run a few simulations.
To keep things moving along, well do just
a couple quick verifications
Improved Load - Verification
100
For all tests set the gain to 0.01, the
desired rpm to 1800, and the initial
condition for the rpm to 0.
You should notice that this model
produces a higher torque load than produces a higher torque load than
previously. For 6 bulbs, there is a fairly
large error. (We do see this in the lab.)
94 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
51
Lecture 3 Demo 7
Verification Feedback Gain
Test 1 - Set number of bulbs to 0
Steady state error (rpm) ___________________________
Torque Signal ___________________________
101
Test 2 - Set number of bulbs to 1
Steady state error (rpm) ___________________________
Torque Signal ___________________________
Test 3 - Set number of bulbs to 2
Steady state error (rpm) ___________________________
Torque Signal ___________________________
Test 4 - Set number of bulbs to 3
Steady state error (rpm) ___________________________
Torque Signal ___________________________
Test 5 - Set number of bulbs to 4
Steady state error (rpm) ___________________________
Torque Signal ___________________________
Demo___________
Lecture 3 Demo 8
Verification Feedback Gain
Test 1 - Set number of bulbs to 5
Steady state error (rpm) ___________________________
Torque Signal ___________________________
102
Test 2 - Set number of bulbs to 6
Steady state error (rpm) ___________________________
Torque Signal ___________________________
The results should show that the steady state error
increases as we increase the number of bulbs.
With no load (0 bulbs) the error should be very ( ) y
close to zero.
With 6 bulbs, the generator loads down the motor,
and then motor cannot achieve the desired speed.
Demo___________
95 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
52
Verification - Generator
Conclusions
We have slowly improved the models to make
them more physically realistic.
103
them more physically realistic.
Simple models can produce good results and
help us understand our physical system and
help control strategy development.
Lecture 3 Problem 1
Measure the step response of the motor so that we can
verify the quick response of the motor. You should obtain
a plot similar to the one shown below.
104
Complete___________ p ___________
96 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
53
Lecture 3 Problem 2
Capacitor Car Description on next page.
105
Grade___________ ___________
97 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
MBSD1 - Introduction to Model-Based System Design
Lecture 3 Problem 2
One of the systems we will be modeling in this course is a capacitor-powered electric car. (We
may also look at a spring powered car as well.) In this homework, we will begin developing the
models for the capacitor and the electric motor. Create models for the following components:
Capacitor:
The amount of charge that a capacitor stores in coulombs is q. The equation that governs the
amount of charge stored by the capacitor is q = CV, where C is the capacitance in Farads, and V
is the capacitor voltage. We add or remove charge from the capacitor with electric current. If the
current is positive, we will add charge to the capacitor and increase the stored charge and the
capacitor voltage. If the current is negative, we remove charge and decrease the stored charge
and capacitor voltage. The charge added or removed, q, is equal to the integral of the current,
q = ]I(t) Jt. Your model should have the following parameters:
Inputs: Capacitor current.
Outputs: Capacitor voltage.
Parameters: Initial capacitor voltage, capacitance in farads. (Constants)
Test your model by showing that the capacitor obeys the equation I
C
= C
dv
dt
using a sine wave
input current of 1 amp amplitude and a 1 Farad capacitor.
Electric Motor:
A lossless DC electric motor obeys the following equations.
The torque is equal to the torque constant K times the motor current, = KI where the
torque is in Newton-meters, the current is in amps, and the torque constant has units of
Nm/amp.
The motor back emf (voltage) is equal to the motor speed in rad/sec times the back emf
constant K which has units volts/(rad/sec), V
emf
= K.
Note that if the value of K has the same numerical value in both equations, we obtain the
equation for a lossless electromechanical energy converter, I
cm]
I = , where electrical power
equals mechanical power. To calculate the motor current, we take the applied voltage minus the
back emf, and divide it by the motor winding resistance, I =
v
cpp
-v
cm]
R
.
Create a motor model with the following parameters:
Input: Applied motor voltage in volts.
Output: Motor torque in Nm (SimDriveLine port)
Output: Motor current in amps. (Simulink signal.)
Parameters: Torque constant and back EMF constant (K), winding resistance, and motor inertia.
Test your motor model by applying a constant voltage of 24 V and no mechanical load (you will
still need the ENV part from the SimDriveline libraries. You should observe a spike of current at
startup when the motor speed is zero. As the motor speeds up, you will see the current go to zero
as the motor reaches steady state. Use the following motor parameters.
K=0.01 V/(rad/sec) = 0.01 Nm/Amp.
98 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
Inerita=1.5e-3 kgm
2
Winding resistance=2 Ohms.
Applied Voltage = 24 V
You should see the current spike up to 12 Amps and the motor should speed up to
System test: Hook up your capacitor model to your motor model. Give the capacitor an initial
voltage of 12 V. Use the SimDriveline clutch to apply a constant frictional force to the motor.
Run the system until the capacitor discharges to zero. Show that the energy stored in the
capacitor equals the energy dissipated by the friction clutch plus the energy dissipated by the
series resistance. Use the controllable friction clutch in the SimDriveLine libraries. Specify a
clutch pressure of 1 and use the settings below for the clutch:
99 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
1
Introduction to Model-Based
Systems Design
Lecture 3A: Step Response Data Lecture 3A: Step Response, Data
Collection, and xPC
System Observations
In Lecture 3, we noticed that the motor had a 0%
to 99% step response time of about 6 ms.
This will cause us difficulties in the future.
P bl 1
2
Problem 1:
It will require a small integration step size during
Simulink simulations. You may have noticed this
already.
A small step size will take more time to complete a
simulation.
For us, this is not that great of a limitation because
our model is fairly simple.
100 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
2
System Observations
Problem 2:
When we simulate a fast system in real time,
a small fixed integration step size is required.
3
a small fixed integration step size is required.
Even though we have a simple model, it will
require such a small fixed step size that our
real-time targets are not fast enough to run
the model.
System Observations
Problem 3:
The system responds so quickly to a step change,
that we can not observe system behavior visually.
4
y y
This is mostly an educational restriction because
we want you to see overshoot, undershoot, and
ringing as the controller gains are changed.
If the system responds in 6 ms, students will not
be able to see the systems dynamic response. It y y p
would be possible to see the response with a
scope, but we want to see the response on our
real-time system.
101 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
3
System Observations
Problem 4:
It will be difficult to control a plant that
responds this quickly with the MPC555x
5
responds this quickly with the MPC555x
microcontrollers available in the lab.
Our controllers are limited to a minimum fixed
step size of 1 ms.
It is difficult to control a plant that has a time
constant of about 2 ms with a controller that constant of about 2 ms with a controller that
has a response time of 1 ms.
This is our greatest limitation.
System Limitations
If the motors do indeed respond as fast as
our simulations indicate, the controller
hardware available in the lab will not be
6
hardware available in the lab will not be
fast enough ton the feedback control
method.
We will either need to modify the plant or
purchase new and more expensive
microcontroller targets.
Both of these solutions are expensive and
time consuming.
102 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
4
System Limitations
Before we go to the expense of modifying the plant
or purchasing new equipment, we will verify that the
motors do indeed have this fast of a response.
7
We will measure the step response of the motors.
In lecture 3, we presented a slide that showed the
step response measured using an oscilloscope.
We never actually set up and ran this experiment.
Some one just told us they measured the step j y p
response and the results were presented.
System Limitations
Here we will set up an experiment to:
Send the motor a step input.
Measure the systemstep response using a
8
Measure the system step response using a
real-time computer system running xPC.
Write a Matlab post processing function to
calculate the time constant from the
measured data.
Determine a course of action to mitigate the Determine a course of action to mitigate the
problem.
103 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
5
Lecture Outline
Review system step response and observe
problems in the model.
Setup a real time target using xpcexplr
9
Setup a real-time target using xpcexplr
Learn how to run xPC on a real-time target.
Setup A/D and D/A blocks using xPC on a
Speedgoat real-time target.
Run the Step response and collect data Run the Step response and collect data.
Transfer the data to the host PC and analyze
the data.
Model Review
We will start with the last model generated in
lecture 3. This has been provided to you as
Lecture3A Model0 mdl
10
Lecture3A_Model0.mdl.
Save the model as Lecture3A_Model1.mdl.
The model is shown below:
104 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
6
Model Review
The controller has a feedback gain of 0.01:
11
Select Simulation and then
Configuration Parameters fromthe Configuration Parameters from the
Simulink menus to view the simulation
setup:
Model Review
We see that we are using a variable step
solver and the maximum step size is set to
Auto:
12
Auto:
Solver selected.
Variable-step size solver selected.
Max step size set to auto.
105 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
7
Solvers
A variable step solver uses a variable size time step
to perform the integration and solve the differential
equations.
13
When the system response changes slowly with
time, a variable-step size solver increases the
integration step size so that fewer integration steps
are required to complete the simulation.
This requires less computation and allows the simulation to
f t run faster.
When the system encounters an area where things
change quickly, the solver reduces the time step so
that faster dynamics are simulated accurately.
Solvers
Our motor-generator system is a good application for a
variable-step solver.
Usually we change the speed or number of bulbs infrequently.
During the times when the speed does not change or the bulb
14
During the times when the speed does not change or the bulb
load is not changed, the solver can take a large tikme step.
When we change the requested speed or the bulb load, we
usually ask for a step change. When we change the
number of bulbs, we introduce a step change in the load. We
cannot gradually increase the number of bulbs from say 1 to 2
because we must turn on the bulbs in discrete amounts (We because we must turn on the bulbs in discrete amounts. (We
cannot turn on 1.5 bulbs.)
A step change in the request speed or bulb load introduces a
step change into the system. The variable step solver will
reduce the time step to accurately simulate the system.
106 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
8
Solvers
We also note that the simulation parameters
specify that the max time step is set to auto.
This means the solver can increase the time step
15
p
to as large a value as it desires.
We will see later that the discrete intervals at
which a microcontroller can change its output
effectively adds phase delay into the system. This
delay can cause the system to oscillate.
The larger the simulation time step, the larger the
delay.
Solvers
We also note that the simulation parameters specify that
the min time step is set to auto.
This means that the solver can make the time step as
small as it wants to
16
small as it wants to.
This could result in very long simulation times.
When the step size becomes small, you will notice:
The simulation appears to hang at a certain spot because the time
step is so small. The simulation is still running, but the time step is
so small that the simulation appears to not be making any progress.
Simulink will stop and indicate that the minimumtime stephad Simulink will stop and indicate that the minimum time step had
been reached and that there is a convergence error.
A small time step is a result of a system that changes its
properties over a very short time.
107 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
9
Solvers
Examples of systems that require small time
steps are:
Clutches during the locked or unlocked state, the
17
system is easy to solve. However, when the system
transitions between the locked and unlocked state, an
extremely small time step is required to determine just
when the mode switches between the locked and
unlocked states.
Power-electronic switches a switch goes from a high
impedance state to a low impedance state in a matter of
microseconds. This transition take a small time step to
simulate accurately.
System Simulation
Run the simulation with the max time step set to
auto, the feedback gain set to 0.01, and the desired
rpm set to 1800. We see the results below:
18
108 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
10
System Simulation
If you zoom in on the rpm and the torque
signals, you will notice an oscillation:
19
System Simulation
The oscillation could be a result of the feedback gain being too
high, the simulation time step being too large, or a combination
of the two.
We will fix the problem by setting the max time step to 0.0001
20
p y g p
seconds:
109 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
11
System Simulation
A max simulation time step of 0.001
seconds did not eliminate the oscillation.
A max time step of 0 0001 was needed
21
A max time step of 0.0001 was needed.
The smallest time step we can run our
controller at is 1 ms, meaning that this
physical system is too fast to be controlled
by out microcontroller targets.
System Simulation
Zooming in at the beginning of the simulation, we
see that the system step response reaches steady
state in about 6 ms:
22
110 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
12
System Response
This is indeed a very fast response.
If the motor does respond at this fast of a
rate we will need to slowthe systemdown
23
rate, we will need to slow the system down
or choose new controller targets.
Before we take one of these drastic steps
to correct the problem, we will measure
the actual step response of the motors to
verify that they are indeed this fast.
We will use xPC and a real-time target to
run a step response and collect the data.
Lecture 3A Exercise 1
Use the fixed-step ode3 (Bokacki-Shampine) solver and
determine the largest fixed step size that can be used to
simulate the system with out yielding an oscillation in the motor
torque or plant rpm.
24
The desired rpm should be set to 1800, number of bulbs to 3,
and the feedback gain to 0.01 (same as used in the previous
slides.)
Note that when we deploy the controller on the MPC555x
target, a fixed step size will be used. Thus, this is a good test to
determine the required step size needed for our controller. q p
Find the max step size to the nearest 100 s.
Demo___________
111 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
13
xPC
We will be using real-time target computers from Speedgoat.
These targets are industrial strength personal computers
designed to survive in rugged environments.
Th fi d i h PC d h l d di i l
25
They are preconfigured with xPC and have analog and digital
I/O capabilities.
In Lecture 8, we will show how to setup and use an old
personal computer as a real-time computer using xPC target.
Since these targets are preconfigured, we will just go through
the steps necessary to communicate with and run models on
the target.
In Lectures 8 and 10, we will show more detail on using
xpcexplr and target setup.
xPC Explorer
From the Matlab prompt, type the
command >>xpcexplr
We will use xpcexplr to:
26
We will use xpcexplr to:
specify settings to allow us to communicate
with the target.
Specify a compiler to allow us to build models.
112 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
14
Visual Studio Compiler
First, we will select the compiler. We will
assume that you are using the Microsoft
Visual Studio 2005
27
Visual Studio 2005.
We will assume that you have already
installed the Microsoft compiler and that it is
installed in directory C:\Program
Files\Microsoft Visual Studio 8.
Visual Studio Compiler Setup
The compiler is specified using the xPC
Explorer.
28
Select VisualC here Select VisualC here.
Compiler configuration
selected.
Specify the directory where
the the Microsoft Vasual C
compiler is installed.
Click apply when done.
113 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
15
Visual Studio Compiler Setup
If you have Microsoft Visual Studio 2005
installed, your settings will be as shown:
29
Select VisualC here Select VisualC here.
Compiler Configuration
specified.
Specify the directory where
the Visual C compiler is
installed.
Click apply when done.
30
Default name of the target
PC is TargetPC1.
Click on the plus sign to
expand the tree.
114 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
16
31
Click here to specify the
communication settings for
The first thing we will do is specify the communication
options for our target
communication settings for
your target.
options for our target.
Click on the Communication selection in the tree.
32
Communication tab
selected.
We will look briefly at some of these options.
115 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
17
xPC Setup
We will be communicating with our target
through the network.
Select the TCP/IP connection
33
Select the TCP/IP connection
Select communication
settings here.
xPC Setup
Specify the IP addresses for your target
system.
34
Always set to
The IP address of the
target we will use in this
example is 137.112.85.111.
The next slide tells us to
determine the address of
our target
Specify the gateway
address for your network.
Always set to
255.255.255.0.
our target.
116 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
18
xPC Target
We will be using targets preconfigured with xPC.
These targets have an IP address specified in their
setup file/configuration.
35
p g
When you boot up this target, a screen will appear
showing you the IP address.
This is a static address. The address is specified in
xpcexplr in the configuration section we are currently
working on. g
When you specify an IP address in xpcexplr, you need
to make sure that no other computer is using that IP
address.
xPC Target
When you boot up the xPC target, if a monitor is
connected, it should display status information about
the target, including its IP address.
36
The IP address of our
target is 137.112.85.111
117 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
19
xPC Setup
Select the driver/chip set for your Ethernet
card:
37
Select Ethernet card chip
set here. For the
Speedgoat targets, select
I82559.
xPC Setup
Select the type of bus into which the
Ethernet card is plugged:
38
The Speedgoat targets use
a PCI bus.
118 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
20
xPC Setup
Next, select Settings.
Since our model is small, we will use the
default settings for model size:
39
default settings for model size:
Settings selected. Maximum model size
specified here.
40
Right-click here.
Select Connect from the menus.
119 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
21
41
No red x here.
If your setup was successful and your target
computer registers on the network:
1) The red x next to TargetPC1 should
disappear.
2) You should be able to explore the target ) p g
PCs hardware with the Target Explorer.
3) You should be able to see the files on the
floppy disk.
xPC Setup
Communication with our target is now complete.
We are now ready to create a model to run on the xPC
target computer.
42
120 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
22
Step Response
We will now use the Speedgoat target to run a test on
the motor and collect data.
To generate a step, we will use an analog output
channel to generate a 0 to 5 V step
43
channel to generate a 0 to 5 V step.
A 5 V input to the motor driver will tell the driver to run the motor
at full power.
We will then measure the motor rpm using an analog
input channel from the Speedgoat target.
We will write the data to a file on the target machine.
W ill th M tl b i t th h t t t We will then run a Matlab script on the host computer to
read the data file, perform some data conversion, and
then determine the step response.
Speedgoat Target
The Speedgoat real-time target has a PMC730
Multi-function I/O target installed.
This card has the following facilities:
44
This card has the following facilities:
32 Analog input channels with 16-bit resolution.
Can be configured as 32 single-ended input channels
(single input referenced to ground).
Can be configured as 16 differential input channels
(signal difference between the two inputs). (signal difference between the two inputs).
8 Single-ended analog output channels with 16-bit
resolution.
121 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
23
PMC730 Multi-function I/O Card
16 Digital I/O Channels.
Input/output function configured in groups of
8-channels
45
8 channels
One 32-bit counter/timer
A data sheet for the PMC730 is available
on-line in the DataSheets section of the
MBSD1 website.
Speed Goat target.
Create a new Simulink model and name it
Lecture3A_xPC1.mdl.
We must first configure the hardware on
46
We must first configure the hardware on
the PCM730 board.
Place a Simulink block named PMC730 5
located in the xPC Target: Speedgoat I/O
Driver Library / IO101 library in your
model.
122 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
24
PMC730 Acromag Setup
This single block is used to setup all functions of
the PMC730 card.
Only 1 copy of this block is needed to set up the
47
y py p
analog I/O and digital I/O facilities of the card.
Double-click on the block to open it.
Note that the block will appear differently
depending on the parameter group selected.
The screen captures on the next page showthe The screen captures on the next page show the
same block with different Parameter groups
selected.
48
123 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
25
PMC730 5 Acromag setup block
We notice that the module identifier in all of the
screen captures on the previous slide was set to 1.
If a Speedgoat target has more than one PMC730
49
If a Speedgoat target has more than one PMC730
target, we can use this card to address each PMC730
individually.
Our targets have a single PMC730 installed, so the
module identifier will be specified as 1.
We will nowset the parameters on this block to have We will now set the parameters on this block to have
a single analog input and a single analog output.
PMC730 5 Acromag setup block
We fist must specify the Module setup.
Since we only have a single PMC730 module, we can
specify that xPC automatically determine in which slot
th PMC730 i i t ll d If h d th
50
the PMC730 is installed. If we had more than one
PMC730 installed, we would specify the slot
manually:
Module 1 specified.
Module setup specified. p p
Automatically determine which
slot the card is installed.
124 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
26
PMC730 5 Acromag setup block
We need to specify one channel for analog input:
51
Module 1 specified.
We are configuring the analog inputs.
For multiple channels, start with
channel 1 as the first channel.
We will have one analog input.
Measure the input between the
channel input and ground.
We will be measuring the rpm signal which
is always positive and between 0 and 10.
PMC730 5 Acromag setup block
We need to specify one channel for analog output:
52
Module 1 specified.
We are configuring the analog inputs.
Specify channel 1 as the only
input.
125 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
27
Analog Output
Next, we will add an analog output block to
provide a 0 to 5 V step to the motor controller.
Place a block called PMC730 2 located in the
53
xPC Target: Speedgoat I/O Driver Library /
IO101 library in your model.
Connect a Step block from the Simulink /
Sources library to the Analog output block:
Analog Output
The settings for the analog output block are:
54
We are using the analog output We are using the analog output
channel of the PMC730 identified
as module 1 in the setup block.
We will specify the sample time
as a variable so that we can
change the rate at which we g
collect data in the model. Ts will
be defined in the workspace.
126 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
28
Step Block
The settings for the step block are:
55
We will run the simulation for 20 We will run the simulation for 20
ms. The step will occur at 10 ms.
The Step will start at 0 volts.
The stepped voltage will be 5 V.
We will specify the sample time
as a variable so that we can
change the rate at which we
collect data in the model. Ts will
be defined in the workspace.
Analog Input
We will use an analog input channel to measure the
rpm.
Place a block called PMC730 1 located in the xPC
Target: Speedgoat I/O Driver Library / IO101
56
Target: Speedgoat I/O Driver Library / IO101
library in your model.
Add a Mux from the Simulink / Commonly Used
Blocks library and connect as shown:
127 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
29
Analog Input
The properties of the analog input block
are:
57
We will specify the sample time
as a variable so that we can
change the rate at which we
collect data in the model. Ts will
be defined in the workspace.
Next, we need to place some xPC scopes
in our model.
xPC Scopes can be used to generate plots
58
Simulink xPC Target Library
xPC Scopes can be used to generate plots
or to save data in a file.
Open the Simulink Library Browser by
selecting View and then Library Browser
from the Simulink menus or clicking the
Library Browser button
Expand the xPC Target library near the
bottom of the list:
128 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
30
We are looking for the xPC Scope which is
in the Misc library:
59
Simulink xPC Target Library
These blocks ill These blocks will
display a trace on
the target PC
screen or can be
used to record data
in a file.
Place a scope in
your model as
shown.
Model Changes
We want to record the applied step signal
and the measured rpm.
Modify the model as shown:
60
Modify the model as shown:
129 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
31
Model Changes
Next, double-click on
the Target Scope
block and make the
61
changes below.
Specify the Scope type as File. This
will save the input signals to a file.
Collect a total of 2000 data points.
The amount of time the data will span
is the number off data points times the
sample time (assuming a decimation
of 1). For a step time of 0.00001, we
can record data for 20 ms, the entire
length of our simulation.
Model Changes
Next, double-click on
the Target Scope
block and make the
62
changes below.
This trigger method means that the
ill b i d i ll
Record every data point.
scope will be triggered automatically.
Data is saved on the real-time target
in this file. Change the name of the file
to Step_xxx.dat where xxx are your
initials.
130 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
32
Model Changes
Click the OK button to save the changes. The
complete model is:
63
Simulation Parameter Setup
Next, we need to set up the simulation
parameters.
Select Simulation and then Configuration
64
Select Simulation and then Configuration
Parameters from the Simulink menus
131 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
33
Simulation Parameter Setup
There are a number of parameters we
need to change.
Select the Solver tab and specify the
65
Select the Solver tab and specify the
following parameters
Stop time: 0.02
Type: Fixed-step
Solver: Discrete (no continuous states)
Fixed-Step Size: Ts
These selections are shown on the
following slide.
66 Fixed step solver selected.
Ending time set to 0.02.
Discrete solver selected.
Solver selected.
Time step =Ts.
132 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
34
Simulation Parameter Setup
Next, select the Real-Time Workshop tab:
67
Click here to select the
target.
Real-Time Workshop
selected.
Simulation Parameter Setup
We need to specify
that we will be using
a xPC target as our
68
a xPC target as our
target system.
Click the Browse
button, select the
file named
xpctarget.tlc, and
then select OK.
133 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
35
Your dialog box should look as shown.
69
Simulation Parameter Setup
We do not need to make any other
changes.
However we will look at the xPC Target
70
Simulation Parameter Setup
However, we will look at the xPC Target
options tab to see some other options that
control behavior we will see.
Select the xPC Target options tab.
134 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
36
71
After we build our model, it
will be automatically
downloaded to the target.
The model will be The model will be
downloaded to the default
target, which is named
TargetPC1.
The Configuration Parameters are now
complete so click the OK button to accept
the settings
72
Simulink xPC Target Library
the settings.
Next, we need to define the value of the
sample time, Ts.
You can do this at the Matlab prompt or as
part of the initialization process of the
model, which is ho we will do it.
Select File and then Model Properties
from the Simulink menus:
135 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
37
Model Properties
73
Model Properties
Select the Callbacks tab and select the
InitFnc tab.
74
Commands in Commands in
this windowwill
be executed
every time the
model is run,
prior to the model prior to the model
execution.
136 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
38
Model Properties
We can place any Matlab commands in
this pane.
We will define the sample time here as
75
We will define the sample time here as
100 microseconds:
Model Wiring
The last thing we need to do before running the
model is to connect the real-time system to the
systemunder test
76
system under test.
Pin connections for the PMC730 are defined in
the users manual located on the website for
MBSD1.
We are using Analog Output 1.
We need to also find the ground reference for
this output.
The data sheet is shown on the next slide:
137 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
39
Analog Output Pin Connection
77
Pin connection information is
contained in table 2.2.
Analog output channels listed
here.
Analog Output Pin Connection
78
We specified the first analog output
channel. Thus, our output is pin 12.
We can use any of these common
connections as our ground reference.
138 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
40
Analog Input Pin Connection
79
We can use any of the common connections specified in
the previous slide as our ground reference.
We specified the first analog input
channel. Thus, our input is pin 34.
80
With this window
open, type ctrl-b to
We are now ready to run
the model.
build and download
the model.
You can also select
Tools / Real-Time
Workshop / Build
Model fromthe
After typing ctrl-b, switch
Model from the
Simulink models.
yp g ,
to the Matlab command
window to monitor the
progress.
139 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
41
81
82
If the build is successful,
the model will be
downloaded to the target
PC.
140 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
42
Model Execution
If you were successful, your model should
be downloaded to your target PC.
If you have a monitor on your PC you
83
If you have a monitor on your PC, you
should see the following screen.
84
Name of model presently Name of model presently
loaded on target.
No graphs shown in this
windowbecause we window because we
specified the xPC scope to
send data to a file.
141 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
43
Model Execution
We are now ready to run the model on our
Speedgoat target.
We must specify that the model should run
85
We must specify that the model should run
on a an external target.
Select Simulation and then External from
the Simulink Menus.
The tool bar should showthat you have The tool bar should show that you have
selected an external target.
86
Note that this specifies an
external target.
Note this button. This is the
connect to external target
button.
142 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
44
Model Execution
Note that a new button has appeared.
This button means connect to external
target
87
target.
Next, we must connect to the external
target.
Click on the button, or select
Simulation and then Connect to Target Simulation and then Connect to Target
from the Simulink menus.
Model Execution
You might ask, how does Matlab know
which target to connect to.
In the Simulation Parameters setup on the
88
In the Simulation Parameters setup, on the
xPC tab we specified to automatically
download the model after building, and we
specified that it should use the default
target.
In the xPC Explorer, we specified
TargetPC1 as the default target.
Thus, our model will run on TargetPC1.
143 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
45
Model Execution
After connecting to the target, the play
button should become available:
89
Click on the play p y
button to start the
simulation on the
remote target.
Model Execution
When the mode runs, you should heat the
motors turn on briefly and then turn off.
The motor just respondedto the step and
90
The motor just responded to the step and
the model ended after 20 ms of execution.
We now need to check to see if the data
file was created on the target.
We will use the xpcexplr to viewthe root We will use the xpcexplr to view the root
directory of the target pc.
144 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
46
Collected Data File
Run the xPC Explorer (xpcexplr)
Connect to the remote target
E dth Fil S t ti f th t
91
Expand the File System portion of the tree.
Select local disk C:\ to view the contents of
the root directory:
Collected Data File
92
Root directory
selected.
This is our data file.
145 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
47
Post Processing
We now need to read the data file from the
remote target and then process the data.
The Matlab script is discussedin the next
93
The Matlab script is discussed in the next
few slides:
Open the file system on the
remote target.
Obtain the handle for the
data file.
Read the data from the file
into variable data. The data is
in raw format.
Close the data file.
Post Processing
94
Convert the data to a
structure.
The step input is the second The step input is the second
column of the data.
The measured voltage is the
first column of the data.
Time is the first column of the
data.
Generate two plots in one
window. Plot the unscaled
data in the top plot.
146 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
48
Post Processing
95
Determine the 10% and 90%
points. Calculate the time
constant as the 10 to 90% rise
time divided by 2 2 time divided by 2.2.
Post Processing
96
Plot the scaled data and the
10% and 90% points on the
second plot in the window.
Display calculated values in a
message box.
147 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
49
Results
Lecture 3A Demo 1
97
Demo___________
Results
We see that the system does respond
quickly.
The systemis too fast to control with the
98
The system is too fast to control with the
hardware targets available in the lab.
To fix the problem, we will add a flywheel
to slow down the system response.
148 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
50
Flywheel
99
We will add the flywheel show above to
the motor-generator system.
f f The calculated inertia of the flywheel is
1.04110
-4
kgm
2
.
Flywheel
In the model, this change has the effect of adding
more inertia to the system as shown below:
100
149 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
51
Lecture 3A Exercise 2
Add the flywheel inertia to your system. (Repeat exercise 1 with
the added inertia.)
Use the fixed-step ode3 (Bokacki-Shampine) solver and
determine the largest fixed step size that can be used to
101
g p
simulate the system with out yielding an oscillation in the motor
torque or plant rpm.
The desired rpm should be set to 1800, number of bulbs to 3,
and the feedback gain to 0.01 (same as used in the previous
slides.)
Note that when we deploy the controller on the MPC555x Note that when we deploy the controller on the MPC555x
target, a fixed step size will be used. Thus, this is a good test to
determine the required step size needed for our controller.
Find the max step size to the nearest 1 ms.
Demo___________
Lecture 3A Problem1
System Rise Time
We would like to redo our rise time measurement using the
motor generator system with the added flywheel.
A second Speedgoat real-time system has been set up to
102
Demo___________
control and measure data from the motor generator system:
The IP address is xxx.xxx.85.112.
The rpm signal conversion is 1.25 V per 1000 rpm. (We added a voltage
divider to cut the rpm signal in half.)
Repeat the measurements of Lecture 3A Demo1 for the Motor-
Generator system with a flywheel. Note that this system is
b bl 50 100 i l h h i lf probably 50 to 100 times slower than the motor itself.
Generate a plot, calculate the time constant, and calculate the
rise time.
Note that this system is wired differently than the motor.
150 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
52
Lecture 3A Problem2
Measured Coast Down
We would like to measure the coast-down response of the
motor-generator system used in Problem 1.
Let the motor speed up to its maximum speed and then allow
103
Demo___________
the motor to coast to a stop.
For the coast-down, measure:
The time constant.
The time it takes to reach zero (5 time constants)
Generate a plot of the coast-down response showing with the 10% and
90% points marked.
Save the coast-down data in a file on your computer for use in
a later example.
151 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
152 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
Copyright 2001 Marc E. Herniter
153 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
Copyright 2001 Marc E. Herniter
154 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
Copyright 2001 Marc E. Herniter
155 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
Copyright 2001 Marc E. Herniter
156 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
Copyright 2001 Marc E. Herniter
157 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
Copyright 2001 Marc E. Herniter
158 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
Copyright 2001 Marc E. Herniter
159 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
Copyright 2001 Marc E. Herniter
160 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
C
o
p
y
r
i
g
h
t
2
0
0
1
M
a
r
c
E
.
H
e
r
n
i
t
e
r
161 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
C
o
p
y
r
i
g
h
t
2
0
0
1
M
a
r
c
E
.
H
e
r
n
i
t
e
r
162 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
C
o
p
y
r
i
g
h
t
2
0
0
1
M
a
r
c
E
.
H
e
r
n
i
t
e
r
163 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
C
o
p
y
r
i
g
h
t
2
0
0
1
M
a
r
c
E
.
H
e
r
n
i
t
e
r
164 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
C
o
p
y
r
i
g
h
t
2
0
0
1
M
a
r
c
E
.
H
e
r
n
i
t
e
r
165 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
C
o
p
y
r
i
g
h
t
2
0
0
1
M
a
r
c
E
.
H
e
r
n
i
t
e
r
166 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
C
o
p
y
r
i
g
h
t
2
0
0
1
M
a
r
c
E
.
H
e
r
n
i
t
e
r
167 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
168 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
169 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
170 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
171 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
172 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
173 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
174 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
175 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
176 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
177 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
178 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
179 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
Transfer Fcn 2
1
(1/1e7)s+1
Transfer Fcn 1
1
(1/5e6)s+1
Transfer Fcn
1000
(1/1e6)s+1
Scope Saturation
Gain
0.1
Constant
.001
180 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
181 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
182 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
F=0.1
Transfer Fcn 2
1
(1/1e7)s+1
Transfer Fcn 1
1
(1/5e6)s+1
Transfer Fcn
1000
(1/1e6)s+1
Scope1 Saturation
Gain
0.025
Constant
.001
Output
183 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
184 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
F=0.025
Transfer Fcn 2
1
(1/1e7)s+1
Transfer Fcn 1
1
(1/5e6)s+1
Transfer Fcn
1000
(1/1e6)s+1
Scope1 Saturation
Gain
0.02
Constant
.001
Output
185 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
186 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
F=0.02
Transfer Fcn 2
1
(1/1e7)s+1
Transfer Fcn 1
1
(1/5e6)s+1
Transfer Fcn
1000
(1/1e6)s+1
Scope1 Saturation
Gain
0.0125
Constant
.001
Output
187 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
188 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
F
=
0
.
0
1
2
5
1
Introduction to Model-Based
Systems Design
Lecture 4 : Plant Model Transfer Function Lecture 4 : Plant Model Transfer Function
Plant Model Transfer Function
To use the tools covered in a classical
control class, we need to determine the
transfer function of the plant model
2
transfer function of the plant model.
We will do this by measuring the
magnitude response versus frequency of
the plant input-output transfer function.
(This will be a Bode magnitude plot.)
We could also measure the phase plot, but
we will not do this.
189 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
2
We must first bias the plant to operate around the desired
operating point.
In our case, well say that we want to use the motor-
generator systemnear a frequency of 1800 rpm
3
Plant Model Transfer Function
generator system near a frequency of 1800 rpm.
We will determine the bias needed to obtain this rpm.
We will use the plant with a fixed load and remove the
controller
The example we show will be for the original plant without
the flywheel. This plant will be very fast and have a pole at
a high frequency.
For an exercise, we will repeat the analysis with the same
model and add the flywheel. The bode plot should be
similar with the poles located at lower frequencies.
Plant Model Transfer Function
4
The constant input is the value of the input
needed to achieve an rpm of 1800 at the
output.
Th t f h th d l I The next few screens show the models I
used to generate the magnitude plot. You
should use the improved models..
190 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
3
5
Plant Model
Note no flywheel. We will
Initial condition set to 1800*(2*pi/60) to avoid a
start-up transient.
add it later.
Motor Model
6
191 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
4
Generator Model
7
Plant Model Transfer Function
With a constant input of 0.69, the motor-
generator system runs at about 1800 rpm:
8
192 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
5
Plant Transfer Function
The previous simulation required a small
step size to prevent numerical oscillations
in the output:
9
in the output:
This value changed
from auto to 1e-4.
Plant Transfer Function
Had we left the max step size at auto, we
would see the following output:
10
193 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
6
Plant Transfer Function
Now that we have our plant biased at 1800
rpm, we will introduce a small-signal sine
wave at the input and measure the
11
wave at the input and measure the
magnitude of the output at various
frequencies:
Plant Transfer Function
The properties of the sine wave are:
12
Amplitude set to a small
variation. This is small
compared to the bias value of
0.69. We will not change the
amplitude (0.01) in our analysis.
We will start with a low
frequency. We will change this
value each time we run a
simulation.
194 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
7
Plant Transfer Function
We will let the simulation run for 400
seconds (since the frequency is so low).
We will set the maximumstep size to 1e 3
13
We will set the maximum step size to 1e-3
so that the simulation does not take too
long to run (because the simulation will run
for 400 seconds of simulation time).
We see the following output waveform:
Plant Transfer Function
14
195 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
8
Cursors
We can measure the waveform using
cursors.
The cursors are not normally displayed on
15
y p y
a scope plot.
To display standard plotting menus on a
scope, run the following Matlab commands
shh=get(0,'ShowHiddenHandles');
set(0,'ShowHiddenHandles','On') ( , , )
set(gcf,'menubar','figure')
set(gcf,'CloseRequestFcn','closereq')
set(gcf,'DefaultLineClipping','Off')
set(0,'ShowHiddenHandles',shh)
Cursors
These commands will cause the File menu
to be displayed on the scope screen.
To display the cursors you can then select
16
To display the cursors, you can then select
Tools and then Data Cursor to display
the cursors.
When you click the mouse on a trace, a
square will be displayed with the points
coordinates.
196 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
9
Cursor Values
17
Plant Transfer Function
For an input frequency of 0.1 rad/sec, we
see the following:
Peak to peak output is 1830 rpm 1778
18
Peak-to-peak output is 1830 rpm 1778
rpm = 52 rpm.
Output amplitude = 26 rpm.
Gain = Output amplitude divided by input
amplitude =(26 rpm)/(0.01) =2600. amplitude (26 rpm)/(0.01) 2600.
Gain
db
= 20*log
10
(Gain) = 68.3 dB
197 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
10
Plant Transfer Function
We will measure the gain at several
different frequencies.
The input amplitude will be kept constant
19
The input amplitude will be kept constant.
We will change the length of the simulation
and the max step size as appropriate for
higher frequencies.
20
Frequency
(rad/sec)
Output Amplitude Gain Gain (dB)
0.1 26 2600 68.3
1 26 2600 68.3
10 26 2600 68.3
20 26 2600 68.3
40 25.5 2550 68.1
80 24 2400 67.6
100 23 2300 67.2
200 17.5 1750 64.9
300 13 5 1350 62 6 300 13.5 1350 62.6
400 11 1100 60.8
1000 4.5 450 50.1
10000 0.5 50 34.0
198 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
11
Plot with Matlab
Amplitude=0.01;
freq=[.1 1 10 20 40, 80 100 200 300 400 1000 10000];
output=[26, 26, 26,26,25.5,24 23, 17.5 13.5 11 4.5, 0.5];
21
mag=output/Amplitude;
dB=20*log10(mag);
semilogx(freq,dB,'rx-');
grid on
title('Motor Generator Magnitude Response');
l b l('A lit d (dB)') ylabel('Amplitude (dB)');
xlabel('Frequency (rad/sec)');
Plant Magnitude Response
22
199 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
12
Plant Transfer Function
Our motor-generator system has a single
pole between 100 and 200 rad/sec.
Note that a single poles systemcannot
23
Note that a single poles system cannot
oscillate because we only have 90
degrees of phase (1 pole).
So why did we see oscillations at when we
had large proportional gain?
There must be extra delay somewhere.
Lecture 4 Problem 1
Repeat the bode plot for our system and include the
flywheel inertia of 1.04110
-4
kgm
2
.
Fill in the table below and generate a plot.
24
F ( d/ ) O t t A lit d G i G i (dB)
Demo___________
Frequency (rad/sec) Output Amplitude Gain Gain (dB)
0.1
1
2
4
8
10
20
40
80
100
1000
10000
200 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
13
Lecture 4 Problem 2
A plant has the following transfer function
25
( )( )( )
100
1 1
1 . 0
1
1000
s
s
s
+ + +
We will use this plant with proportional feedback as shown in class.
a) Use gain and phase plots to find the largest value of the feedback constant F
that can be used to have a stable system with zero degrees phase margin.
b) Use Simulink to show that the system is unstable for values of F larger than
this value of F.
c) Use Simulink to show that the system is stable for values less than or equal
to this value of F.
d) Use gain and phase plots to find the largest value of the feedback constant F
that can be used to have a stable system with a 60 degrees phase margin.
Grade___________
201 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
1
Introduction to Model-Based
Systems Design
Lecture 5 : Improving the Plant Model Lecture 5 : Improving the Plant Model
Improved Model - Friction
To this point, our system has been
frictionless.
2
We could see this as a problem if we give
the motor an initial velocity, set the desired
velocity to 0, and set the bulb load to zero.
The motor would never apply a torque, but
h h f ld i i the shaft would continue to spin
indefinitely.
This is obviously not correct.
202 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
2
Improved Model - Friction
The easiest way to add friction is to
incorporate a Friction Clutch into the plant.
3
p p
Go to the plant level and drag in a
Controllable Friction Clutch and a
Housing.
Simscape / Dynamic Elements / Controllable Friction Clutch
Simscape / Solvers & Inertias / Housing p g
Improved Model - Friction
4
203 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
3
Improved Model - Friction
The base of our clutch is attached to a housing
to lock it in place.
5
The follower is connected to the driveline.
The pressure port regulates how much the
clutch is engaged
0 : not engaged, no friction
1 : fully engaged, full friction
System might not rotate
Or have the full drag force applied
Add a constant to regulate the pressure
Full Plant Model
6
Constant added
here.
204 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
4
Improved Model - Friction
Now we need to set up our clutch double
click on it and change following
7
click on it and change following
Directionality : unidirectional
Number of friction surfaces : 1
Effective torque radius : 1
Peak normal force : 1
Our clutch is unidirectional because our
shafts only spin one way
The other parameters are unchanged
Clutch Friction
The peak torque that the clutch can apply
is equal to the number of friction
surfaces times the torque radius times
8
surfaces times the torque radius times
the peak normal force.
For our case, the peak torque will be 1
Nm. (More than our motor can supply.)
The actual torque applied is this peak
torque times the pressure input (a number
between 0 and 1).
205 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
5
Improved Friction - Verification
For our first test, set the pressure to zero
and verify that nothing changed from our
l t d l
9
last model.
Looks
pretty
similar!
Version with
clutch. (3 bulbs.)
Version
without
clutch
Improved Friction - Verification
Now set the pressure to one and the number of
bulbs to zero and verify that the system does not
rotate. (We expect this because the friction
10
torque is greater than the maximum motor
torque.)
206 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
6
Improved Friction - Verification
11
System is definitely
not rotating!
Desired rpm.
Motor is putting out
max torque
No generator torque
because it is not spinning
Improved Friction - Verification
Set the load to zero bulbs and the desired
rpm to 1800. Zero initial condition.
12
Set the pressure to 0.25 and execute.
Even though we
have no load, we
have an error
because of the
load due to
friction friction.
System hits SS
(controller is still trying
to hit 1800 rpm)
More than half of the
rated motor torque goes
to overcoming friction!
207 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
7
Improved Friction - Validation
Our friction appears to be to high
Over half of the motors rated torque goes to
13
overcoming it!
Adjust the pressure such that about 0.05
Nm of torque are required to overcome the
friction.
Improved Friction - Validation
Setting the pressure to 0.05 works well
14
SS rpm is very close
to the desired value.
Motor torque to overcome
friction is right around 0.05 Nm
208 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
8
Lecture 5 Exercise 1
Determine the value of the pressure to the
friction clutch so that the system coasts
down from 2700 rpm to zero in about 130
15
down from 2700 rpm to zero in about 130
ms.
Demo___________
Plant Model Coast Down Test
In vehicle design, a data point for verifying the
accuracy of the mechanical model of the vehicle
is a coast-down test.
16
With zero wind, run the vehicle at 60 mph.
Set the engine and motors to zero torque and
plot the vehicle speed as it coasts down to zero.
Tests and measures aerodynamic drag and
vehicle frictional losses.
Calibrate your model to match the measured
coast-down.
209 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
9
Plant Model Coast Down
For our motor-generator system, we will set the
motor-generator rpm to a preset value.
With no load, we will time how long it takes the
17
, g
rpm to reach zero.
We will fit the value of the clutch friction in the
model so that the model coast-down time
matches the measured coast-down time.
We will use a MathWorks tool to automatically y
find the correct value of clutch pressure.
Measured Coast-Down
18
Tach scaling = 2.5 V per
1000 rpm
x
y
( )
rpm
V
rpm
V
V
rpm
y rpm
2748
5 . 2
1000
87 . 6
5 . 2
1000
=
=
rpm 2748 =
210 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
10
Measured Coast-Down
We will use the pressure value of the
friction clutch to match the measured
coast-down time to the simulated coast-
19
coast down time to the simulated coast
down time.
Instead of searching for the clutch
pressure manually, we will use the
Simulink Response Optimization toolbox.
First, we need to measure points from the
measured rpm trace.
Measured points are shown next:
Motor-Generator Coast Down
%Measured Coast Down Data for Motor-Generator
System
time=[ 0 0.100 0.1060 0.1187 0.1298 0.1417,...
0 1596 0 1715 0 1834 0 1953 0 2072
20
0.1596 0.1715 0.1834 0.1953 0.2072,...
0.2191 0.2340, .5];
rpm=[2748, 2748, 2525, 2228, 1857, 1560, 1188, 966,...
742, 519, 371, 148,0,0];
plot(time,rpm);
xlabel('Time (s)'); xlabel( Time (s) );
ylabel('Speed (rpm)');
title('Motor-Generator Coast Down');
grid on;
211 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
11
Motor-Generator Coast Down
21
Motor-Generator Coast-Down
We must now modify the plant so that:
It has no torque input and no load.
We set the initial condition to 2748 rpm
22
We set the initial condition to 2748 rpm.
Remove whatever torque maintains the speed
at 2748 rpm and allow the motor-generator
system to coast down to 0 rpm.
The top-level is shown next.
Note that the controller has been removed.
212 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
12
Motor-Generator Coast Down
23
No motor torque
and no load torque.
Motor-Generator Coast-Down
Inside the plant, we need to set the initial
condition to 2748 rpm.
We will add a new torque source that
24
We will add a new torque source that
balances the torque due to friction.
While the forces are balanced, the motor-
generator system will maintain the initial
rpm, whatever it is.
When we want the system to coast-down,
we set the added torque source to zero.
213 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
13
Motor-Generator Coast Down
25
This step function has an initial
output value of 1 and then steps
down to zero at 100 ms.
Added torque source to
balance friction.
Friction clutch from
before.
This constant uses a
Matlab variable
named Pressure.
Motor-Generator Coast Down
The settings for the Step input source are
shown below. This part is located in the
Simulink / Sources toolbox
26
Simulink / Sources toolbox.
214 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
14
Motor-Generator Coast Down
The initial condition of the drive line is set
as shown:
27
Motor-Generator Coast Down
Next, in the Matlab workspace set the
value of the constant Pressure to 0.05, the
value we found in the last section
28
value we found in the last section.
215 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
15
Motor-Generator Coast Down
Run a simulation for 300 ms and verify
that:
The system starts with an initial rpm of 2748
29
The system starts with an initial rpm of 2748.
At 100 ms, the system coasts down to zero
rpm.
The time it takes to coast down is not the
same as the measured time.
Motor-Generator Coast Down
30
Rpm decreases to
0 in about 50 ms.
216 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
16
Motor-Generator Coast Down
We will now use the MathWorks Simulink
Response Optimization toolbox to
determine the optimum value of the
31
determine the optimum value of the
Pressure so that the response of our
model matches the measured response.
Add a part called Signal Constraint from
the Simulink Design Optimization
toolbox.
Motor-Generator Coast Down
32
We are going to choose the Pressure signal so that
the rpm of the motor-generator system matches the
constraints. (Or minimizes the difference between
the desired and fitted response.)
217 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
17
Response Optimization
Open the Signal Constraint Block
The plot shown is for having a response fitted
to a set of constraints
33
to a set of constraints.
Response Optimization
We have some measured data that we
would like to use for the response.
To use the data select Goals and then
34
To use the data, select Goals and then
Desired Response:
218 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
18
Response Optimization
Set the Reference Signal to the measured
time and rpm data:
35
Time from the measured
waveform.
Rpm from the measured
waveform.
Variables time and rpm
d fi d i th M tl b are defined in the Matlab
workspace.
Response Optimization
When you click the OK button, the
measured response will be displayed:
36
219 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
19
Response Optimization
Next, we have to select the parameters
that can be varied to achieve the desired
response
37
response.
We have previously defined variable
Pressure in the workspace and gave it a
value of 0.05.
Select Optimization and then Tuned
Parameters from the menus:
Response Optimization
Presently no parameters are selected.
38
When you click the Add button, the list of
available parameters defined in the
workspace will be listed.
220 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
20
Response Optimization
39
Select the parameter Pressure and click
the OK button the OK button.
Specify the minimum and maximum
values as shown next.
Response Optimization
40
The initial value of the
Pressure constant is set to
0 05 the value we gave it
We constrain the Pressure
input to be between 0.01
and 0.05.
0.05, the value we gave it
at the Matlab command
prompt.
Click the OK button when done.
221 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
21
Response Optimization
Select the Track reference signal option
so that we optimize to the provided data.
41
Option not
selected.
Option selected.
Response Optimization
To make the system track the desired
response more closely, we need to reduce the
tolerance slightly Select Optimization and
42
tolerance slightly. Select Optimization and
then Optimization Options from the menus:
222 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
22
Response Optimization
Set the function tolerance to 0.0001.
Click the OK button when done.
43
Response Optimization
Click the Play button and watch the
optimization proceed:
44
Click here.
223 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
23
Response Optimization
Results
45
Lecture 5 Demo 1
Response Optimization
Optimum value of Pressure is 0.0224.
46
Demo___________
224 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
24
Friction Model Notes
Our model has a linear change from high
rpm to zero. The actual response looks
like an exponential decay somewhat
47
like an exponential decay somewhat.
Out model of a constant frictional torque is
probably too simple.
Friction is probably a function of rotational
speed.
Stuff to add in the future.
Lecture 5 Problem 1
In Lecture 3A problem 2, we measured the
coast-down of the motor/generator system
with the flywheel.
48
y
Add the flywheel to your model
Use the measured coast-down data from
Lecture 3A as the reference signal.
Use the Response Optimization Toolbox
to determine the optimum value of clutch
pressure for the system with the flywheel.
Demo___________
225 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
25
Lecture 5 Problem 2
In both models for this lecture (the model with the flywheel and
the one without the flywheel) we noticed that the measured rpm
had a slight curve while the simulated rpm was a straight line.
The simulated response is a straight line because we are
49
The simulated response is a straight line because we are
applying a constant torque which means that the angular
velocity decrease at a constant rate.
To model the curvature in the measured rpm, we will try a new
model.
Modify your model so that the friction has a constant
component plus a component that is proportional to motor component plus a component that is proportional to motor
speed (in rad/sec).
Make both components tunable.
Lecture 5 Problem 2
Use the optimization tool to determine the coefficients for an
optimal fit. You will need to determine two coefficients.
An optimal plot is shown below. The fit is so close that you
cannot see much difference between the measured data and
50
cannot see much difference between the measured data and
the model results in the screen capture.
You may want to change the optimization method to Simplex
search.
You may want to increase your max step size so that the
simulations take less time.
Demo___________
Demo___________
226 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
26
Any Questions?
227 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
1
Introduction to Model-Based
Systems Design
Lecture 6 : Signal Filtering Lecture 6 : Signal Filtering
Signal Modeling
We now need to clean up our model in
terms of the signals being sent to the
controller
2
controller.
Starting with the shaft encoder, it does not
send an rpm signal but rather a voltage
proportional to rpm
Name plate specification: 2.5 V per 1000 rpm
At some point well need to verify this.
Lets add that to the encoder model
228 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
2
Signal Modeling
Drag a gain into the encoder and set the
value to 2.5/1000.
3
4
Actual physical system.
Freescale
MPC555x MPC555x
Development
Board
229 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
3
Improved Signals MPC555x
This 0-8 V signal is next passed through a
combination resistive divider and low pass
filter to
5
Eliminate noise on the signal
Change range to 0-5 V
The circuit diagram is
Improved Signals - MotoTron ECU
From circuit analysis
6
Z R R
Z R
C
V
V
o
+
=
R sCR
R
sC
R
sC
R
Z R
Z R R
C
C
1 V
1
1
V
2
o
in
=
+
=
+
=
+
R sCR
sCR
R
R
2
1
V
2
in
+
+
+
230 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
4
Improved Signals - Controller
Having figured out the appropriate transfer
function to represent our filter and knowing
R =10k
7
R =10k
C =10 nF
Drag a Transfer Fnc block into the
controller from the Simulink / Continuous
library.
Well also need a gain and a saturation
Well need to disconnect the Actual rpm
input from the P controller as well
Improved Signals - Controller
8
231 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
5
Improved Signals - Controller
Changes:
Actual rpm Actual rpm (0-8V)
Transfer Fnc LowPass Filter
9
Transfer Fnc Low Pass Filter
Gain 1 Signal level converter (0-5 V to 0-1)
Saturation ->hide name
Link them together
Improved Signals - Controller
10
232 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
6
Improved Signals - Controller
Double click on the Low Pass Filter
transfer function and put in the values for
R and C
11
R and C
The numerator
coefficient is the value of
R
The denominator
coefficients are the
multipliers on s and 1
respectively CR
2
and 2R
Improved Signals - Controller
The last step in the controller is to take the filtered
signal which ranges from 0-5 V and convert it to a
signal of magnitude 0-1
12
Note that our filtered rpm voltage signal has a range of 0
to 4 V.
We will not use the full range of the A/D converter (which
has an input range of 0 to 5 V)
Set the gain to1/5 for the conversion
S t th t ti t li it t 0 d 1 Set the saturation to limits to 0 and 1
Connect the output back to the summing junction.
233 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
7
Improved Signals - Controller
13
Renamed Signal
Improved Signals - Controller
In the controller an rpm of 0 to 4000 rpm is
represented by a signal that ranges from 0
to 1
14
to 1.
We need modify our desired rpm of 1800
rpm to reflect this change.
We will change the desired rpm signal to
0.45 (equal to 1800/4000).
234 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
8
Improved Signals - Controller
15
Improved Signals - Controller
Before we run our model, lets think about
the controller
We initially had our gain at 0 01 because
16
We initially had our gain at 0.01 because
that would yield a full torque signal if the
rpm difference was 100 rpm
Now, 100 rpm is roughly a signal of 0.025
We should expect to increase our We should expect to increase our
proportional gain
235 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
9
Improved Signal - Controller
Lets set our initial condition to zero, the
load to 2 bulbs, the desired rpm to 0.45,
and leave the gain at 0 01
17
and leave the gain at 0.01.
Motor torque effectively
zero. Gain is way to low for
the small difference
between the desired and
t l d actual speed.
Improved Signals - Controller
Now set the gains to 0.1, 1, and 10
18
Gain =0.1
Gain =1 Gain =10
Small torque
applied.
Better Still better.
236 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
10
Improved Signals - Controller
Now set the gains to 20, 50, and 100
19
Gain =20
Gain =50
Gain =100
Oscillation Eliminate by
decreasing max step size.
Lecture 6 Demo 1
Demonstrate the system response for
various feedback gains.
Demonstrate the effect of reducingthe
20
Demonstrate the effect of reducing the
simulation maximum step size.
Demo Demo___________
237 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
11
Model Improvements
Improved motor from constant torque source to
torque dependent on rpm.
Improved generator:
21
Linearly dependent on rpm with constant max load.
Linearly dependent on rpm with variable load.
Linearly based on rpm with physical relationship to
generator voltage and load resistance.
Added friction
C t t Constant
Linear dependent on rpm
Scaled signals to match levels used by
Freescale target.
Model-Based Design
We made the improvements one at a time.
We verified that the system was behaving
22
as we expected after each improvement.
We ran extensive tests to identify changes
in system response due to the
improvement.
238 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
12
Init File
Weve got a lot of magic numbers in our model:
Motor and Generator Inertia
Motor Torque Constant
23
Etc
In a typical model, model constants are reused
in several places.
If we choose to change any of these parameters,
we might miss some of them in the model. g
Lets put these values into an initialization file.
This file will be executed each time we run our
model, before the model runs.
Init File
Open your Matlab window and open a new m-file:
Select File, New, and then M-File from the menus
or click on the New M-File icon as shown below:
24
Click here to create a new
m-file.
239 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
13
Init File
Save the file in the same directory as your
Simulink models.
Save the file as Init_File.m
25
Enter the text shown on the following page
exactly as shown.
Save the file when done.
This will allow us to assign variable names
to parameters inside of our Simulink model
and read those values from the workspace
Init File
26
240 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
14
Init File
Now we need to update our model with the
variable names in the init file
Well start with the lowpass filter
27
Well start with the low pass filter
Save your model as Lecture6_Model3
Open up the controller
Double click on your low pass filter
Change the numbers to variables as shown
on the next page
Init File
[R]
28
[R]
[CR
2
2R]
241 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
15
Init File
Update the generator as shown:
29
The value of this part was
changed to a constant as
well.
Init File - Generator
30
242 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
16
Init File - Motor
31
Init File - Flywheel
32
243 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
17
Init File
Save your file and run!
33
Hmmm, undefined variable
Init File
We can either run the script file manually to place the
variables into the workspace, or
Have Simulink run the init file automatically each time we
run a simulation (which also places the variables into the
34
( p
workspace).
Right click any place in your model where it is blank
Select Model Properties
Select the Callback History tab
Add Init_File to the InitFcn Model Callback section
Click OK
244 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
18
Init File
35
InitFcn selected. File added here.
Init File- Lecture 6 Demo 2
Run your model now
It k b th I it Fil b f
36
Demo___________
It works because the Init_File runs before
the model runs, and defines all of the
constants needed by the mode.
From now on, we will define all of our data
and model constants in the init file. and model constants in the init file.
The model will reference the variables
named in the init file rather than use magic
numbers.
245 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
1
Introduction to Model-Based
Systems Design
Lecture 7: Time Delays and Proportional Lecture 7: Time Delays and Proportional
and Integral Control
Presentation Outline
Sample Time Delay
Assess impact of signal delay on system
performance.
2
p
PI Control
Add integral control to eliminate error.
246 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
2
Model Updates
Before we begin, we will update our model
with the coast-down friction components
that we added in Lecture 5 Problem2
3
that we added in Lecture 5 Problem 2.
Add the following parameters to the init
file:
Model Updates
Add the proportional and constant friction
components to the plant:
4
247 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
3
Model Updates Complete Plant
5
Step Response
248 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
4
Step Input
So far we have been running our model for
short simulation times
We have changed nothing while the
7
We have changed nothing while the
simulation is running
Lets slow our system down and watch the
effect of changing the load or desired rpm
Model Name Change
Save your model
Save your model as Lecture7_Model1
Step Input
First, lets slow down our simulation.
On your model, again right click any place where
there is a blank area.
8
Select Configuration Parameters
Select the Solver tab.
Change the Stop Time to inf (it will run forever)
Change the Max Step Size and Initial Step
Size to 1e-4 seconds (this will slow it down by ( y
decreasing the maximum step size and forcing
more calculations).
249 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
5
Step Input
9
Step Input
inf run
until we stop it.
1e-4
10
1e-4
Solver selected.
250 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
6
Step Input
Now lets add the ability to change our desired
speed.
Drag a Slider Gain from the Math Operations
11
g p
library into the top of your diagram and connect
as shown.
Step Input
Slider Gain
added here.
12
Desired
speed
changed to 1.
251 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
7
Step Input
Double click on the slider gain and set the
lower and upper limits to 0 and 1
respectivelyand slide the slider
13
respectively and slide the slider
Awesome we can vary our desired rpm
from0 to 3000 rpmwhile the simulation is from 0 to 3000 rpm while the simulation is
running by moving this slider from 0 to 1.
Step Input
Run your simulation.
14
252 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
8
Step Input
We notice two things:
15
The simulation runs very slowly.
The motor generator system responds fast
making it difficult to see the step response.
Even with the added flywheel, the system
responds very quickly and makes it difficult p y q y
to a speed change request.
Scope Settings
To see the system response, we need to
change the scopes default x-axis time
range
16
range.
The time axis on our scope is 0 to 10
seconds by default.
We need to change the time axis on our
plots.
253 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
9
Step Input
17
Stop the Simulation.
To adjust the x-axis time range, right click j g , g
on the scope plot and select Scope
parameters.
Set the Time range as shown:
Scope Time Range
18
Time range set to 0.5. This will force the x-axis to
display a range of 0 to 0.5 seconds.
Rerun the simulation and move the slider.
254 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
10
Step Input
Pretty cool you can watch the actual rpm try to match the
desired rpm (2 bulb load, Gain =20.) You may need to slow the
simulation even more by reducing the maximum step size to
1e-5.
19
Lecture 7 Exercise 1
Use the signal builder to create the following
pulsed waveform:
20
(Continued on next slide.)
255 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
11
Lecture 7 Exercise 1
21
Use this waveform as the rpm input for the controller.
For this waveform, or a slight modification, observe
the systemstep response for the following
Number of Bulbs Proportional Gain Rise Time Fall Time
2 10
2 20
2 50
the system step response for the following
conditions:
2 50
2 100
Demo___________
Step Input
Our physical system has 6 light bulbs.
We would like to see how changing the
load affects the systemresponse
22
load affects the system response.
At the top level of your model
Change the constant for the number of bulbs
to 1
Add a slider as shown next.
Set the limits on the slider from 0 to 6
256 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
12
Step Input
23
Slider added here.
Number of bulbs
set to 1.
Step Input
We will now test how our system responds
for changes in the load while holding the
speedconstant
24
speed constant.
Set the speed slider to 0.6 and do not
change it.
Run the simulation and observe how the
system response changes as we change
the load slider.
Set the proportional feedback gain to 100.
257 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
13
Step Input
25
Step Input
Increasing the load increase the steady state error.
Decreasing the load decreases the steady state error.
Notice the changes in torque as we change the load.
26
Motor cannot maintain
speed at 4 bulb load.
Number of bulbs
increased from 0 to 4.
258 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
14
Step Input
27
Number of bulbs is 3.
Number of bulbs is 6.
Step Input
Decreasing the load.
28
Number of bulbs
d d f 4
(Zoom) Error decreases as
bulb load decreases.
decreased from 4
to 0.
4 Bulb Load.
259 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
15
Lecture 7 Exercise 2
Create the following waveforms using one of the
Simulink sources. Use this input as the number of
bulbs and plot the systemresponse
29
Demo___________
bulbs and plot the system response.
Controller Cycle Time
To this point, our controller measures signals and makes
a change every computational step.
Since this is a variable step size solver, this time
changes as the simulation runs and can be quite small
30
changes as the simulation runs and can be quite small.
This is not true in the hardware implementation.
In the real-time hardware realization, the controller performs all
computations within a fixed time.
We will call this time the controller cycle time.
The inputs are read once in this fixed time.
All calculations are performed for the measured inputs once in p p
this fixed time.
The outputs are changed once in this fixed time.
If the controller finishes early, we wait until the fixed time is up
before executing the control loop again.
260 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
16
Controller Cycle Time
The effect of the controller cycle time is:
We can only sample the inputs once in the time
period. If the input changes, we wont know about it
til th t fi d ti t
31
until the next fixed time step.
We can only change the output control signal once in
the fixed time period. This limits how fast we can
make a change. (Or, how fast the controller can
respond.)
For control people, this time delay is a For control people, this time delay is a
phase delay in the feedback loop.
This delay can cause the system to
become unstable.
Controller Cycle Time
As a first step in modeling this delay , we will use
a sample and hold.
The value will be held for a fixed and specified
32
p
amount of time.
We will model the controller cycle time on both
the inputs and outputs of the controller.
In the hardware realization, the fixed time can be
changed at compile time. It can be reduced g p
within limits imposed by your ECU.
In a future lecture, we will run a Software-in-The-
Loop (SiL) simulation to model this delay.
261 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
17
Controller Cycle Time
Save your model as Lecture7_Model4.
From the Signal Processing / Signal
Operations library, drag a Sample and Hold
33
p y, g p
block into your controller.
From the Simulink / Sources library, drag a
Pulse Generator into your controller
To start, we will use specify a sample time of
100 ms.
Controller Cycle Time
Output control
signal will be changed
34
signal will be changed
only once every 100 ms
262 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
18
Controller Cycle Time
To set our 10 ms
trigger, double
click on the
35
click on the
Pulse Generator
and set the
Period to 0.01
(10 ms)
This value set to 0.1.
Controller Cycle Time
Thinking back to our step input work, we have
introduced a physical step into our system!
The torque request undergoes a step change every
36
controller cycle time.
If the cycle time is too long, these steps could be
large.
Larger step changes can be felt or heard.
Lets simulate the system and see if a 100 ms
time step on the output affects the controllers time step on the output affects the controller s
performance.
263 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
19
Controller Cycle Time
Set the following on your model:
rpm slider to 0.6
Load slider to 2 bulbs
37
The IC to zero
The feedback gain to 10,
Simulation end time to 1 s
The controller sample time to 0.1 seconds. (A
very long time ) very long time.)
The simulation max step size to 1e-5.
When the simulation runs, you will notice that
it oscillates at a 100 ms rate!
Controller Cycle Time
38
264 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
20
Controller Cycle Time.
Try reducing the controller cycle time until the
oscillation disappears.
This simulation is for a cycle time of 50 ms
39
Controller Cycle Time.
Try reducing the controller cycle time until the oscillation disappears.
I found that a sample time of 20 ms is sufficient to stop the oscillation.
A simulation of this type is necessary to determine how much computing
power we will need to run our controller.
Smaller cycle times require faster hardware targets.
40
Smaller cycle times require faster hardware targets.
265 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
21
Lecture 7 Exercise 3
Determine the maximum value of Sample
time that can be used to achieve a stable
feedback systemusing the conditions
41
Demo___________
feedback system using the conditions
specified below:
No Bulbs 1 Bulb 2 Bulbs 3 Bulbs
Gain =10
Gain =20
Gain =50
Gain =100
Controller Cycle Time
Next, we will model the controller cycle
time effect on the input signal.
Remember that the ECU will only sample
42
Remember that the ECU will only sample
the input once every cycle time.
Bring in another Pulse Generator and
Sample & Hold and put it on the
generator side just after the low pass filter.
The pulse generator will have the same
properties as the previous one we added.
266 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
22
Controller Cycle Time
43
Controller Cycle Time
Set the period on both pulse generators to 1 ms. Leave
all other setting the same and run a simulation. (Gain =
10, 2 bulbs, max step size =1e-5.
44
The system is still stable because we
actually have the same amount of delay
even though the we have two sample
and holds.
In this case the output is based on the
value of the input fromthe previous value of the input from the previous
cycle.
This is because both sample and holds
are triggered at the same time.
In the first example the output was based
on the inputs at the present sample.
267 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
23
Controller Cycle Time Conclusion
Controller cycle time adds delay to a
feedback loop that can cause a system to
oscillate or overshoot
45
oscillate or overshoot.
We can alleviate some of these affects by
changing the gains of our system.
To model a system, we should include all
sampling delays
Controller cycle time.
CAN message rates.
Other.
Proportional and Integral
Control
268 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
24
PI Control
One of our goals is to design a controller for our
system.
Now that we have a good plant model, we can
ll f k l d f t l t t
47
use all of our knowledge of control systems to
design controllers. (And simulate them!)
We will look at adding an integrator to our
system because:
A proportional gain controller yields an error that is
inversely proportional to the gain inversely proportional to the gain.
Too high of a proportional gain can make the system
oscillate.
Update your model to version Lecture7_Model6.
PI Control
Set your Controller Cycle Times back to 1 ms
Set your proportional gain to 10, the desired
rpmslider to 0 6 and the load slider to 2 bulbs
48
rpm slider to 0.6, and the load slider to 2 bulbs.
Steady state
error.
269 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
25
PI Control
To reduce this error we will add an
integrator to our controller.
We could use a continuous time integrator
49
We could use a continuous time integrator
for Simulink simulations.
When we implement our controller on an
ECU, a discrete solver is usually used and
a continuous integrator will not work.
We will use a discrete time integrator.
PI Control
From the Simulink / Discrete library drag in a
Discrete-Time Integrator
Drag in a gain and a sum as well
50
g g
Hook up as shown below and on the next slide
270 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
26
PI Control
And added to the P gain
to reduce SS error
51
Error is integrated over
the current time step Multiplied by the I Gain
to reduce SS error
the current time step Multiplied by the I Gain
Discrete Time Integrator
This integrator performs a forward Euler
method. (Basically a sum of rectangles.)
The block implements the sum
52
The block implements the sum
y(n) = y(n-1) + K*T*u(n-1)
K is the gain and is equal to 1 for our
application.
T is the sampling period (the time between T is the sampling period (the time between
samples).
271 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
27
Discrete Time Integrator
With K=1 we have the equation
y(n) = y(n-1) + T*u(n-1)
Th t t t i th i t t
53
The present output is the previous output
plus the previous input times the time slice
T
Note that T*u(n-1) is the area of a
rectangle. rectangle.
We are summing up rectangles.
Set the integrator properties as shown
next.
Discrete Tim Integrator
Gain set to 1.
Sample time set the
same as for our
controller cycle time.
54
Integrator
starts at 0.
When we deploy this
controller on the ECU,
the integrator sample
time will be the
controller cycle time.
We should probably
define this in our init
file and use it for the file and use it for the
integrator and two
pulse generators.
Do that!
272 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
28
Discrete Tim Integrator
Integrators can integrate to infinity (it
takes a long time!)
Suppose we turn on too many bulbs.
The motor is not strong enough to
reach the desired rpm and the error
will be large.
55
will be large.
The integrator will integrate this error,
possibly for a long time until you
change the number of bulbs.
If the integrator does not have
saturation limits, the integrator will
integrate to a large value.
When you do finally turn off a bulb,
the integrator value decreases slowly
and causes the motor to spin wildly
until the integrator has time to
integrate back to an appropriate value.
This overshoot is called integrator
wind up.
To prevent it, add saturation limits.
Discrete Time Integrator
Run a simulation with a proportional gain of 10 and in
integral gain of 1, load =2 bulbs, and a desired speed of 0.6.
Let the simulation run for 1 second.
56
Error still here. But it appears that
the error is slowly decreasing?
It appears that the torque is
slowly increasing?
Integral gain signal is
increasing slowly?
273 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
29
Discrete Time Integrator
Error still here But it appears that
57
Repeat the simulation run for 10 second.
Error still here. But it appears that
the error is slowly decreasing.
It appears that the torque is pp q
slowly increasing.
Integral gain signal is increasing.
Discrete Time Integrator
Change the simulation to allow it to run for
20 seconds.
58
The error does go to zero, but very
slowly because the integrator gain
is small.
274 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
30
Discrete Time Integrator
Next, set I_Gain =10, and P gain =10. This
should make the integrator respond faster.
59
System responds faster.
Note time scale.
Discrete Time Integrator
Next, set I_Gain =100, and P gain =10. This
should make the integrator respond faster.
60
Faster response and overshoot.
275 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
31
Lecture 7 Demo 1
Demo your PI controller.
Show how changing the P and I gains
affect the systemresponse
61
affect the system response.
Demo___________
Discrete Time Integrator
For the previous simulations, we were near the
power limitations of the motor.
We will do some testing at a new set point
62
Set the following:
Desired speed slider =0.3
Number of bulbs slider =1
Initial condition =0
All sample times =0.001
Simulation time set appropriately.
276 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
32
Discrete Time Integrator
P_Gain =10, I_Gain =0
63
Proportional gain control test. We see constant
error as expected.
Discrete Time Integrator
P_Gain = 10, I_Gain = 1.
64
The error does go to zero, but very
slowly because the integrator gain
is so small.
277 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
33
Discrete Time Integrator
P_Gain =10, I_Gain =10
Error goes to zero
65
Error goes to zero
faster.
Discrete Time Integrator
P_Gain =10, I_Gain =100
66
Overshoot for larger values of Overshoot for larger values of
integral gain.
278 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
34
Discrete Time Integrator
P_Gain =10, I_Gain =1000
67
Significantly more overshoot. (We might be able to change this my
changing the order of the integrator and gain blocks.
Lecture 7 Exercise 4
Repeat the previous procedure for different values of
proportional gain.
Determine the proportional and integral gains to achieve a plot
close to the one below
68
Demo___________
close to the one below.
279 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
35
Discrete Time Integrator
I like the system response with P_Gain =
100 and I_Gain = 10.
We will hold these gains constant and hold
69
We will hold these gains constant and hold
the number of bulbs constant at 1 bulb.
We will observe the system response as
we change the speed slider between 0
and 0.6.
Change the simulation ending time to inf
and decrease the max simulation step size
to make the simulation run slowly.
System response to speed change
requests.
70
280 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
36
Discrete Time Integrator
Next, keep the speed slider constant at 0.3
and change the bulb load from 0 to 6.
Vary the load up and down
71
Vary the load up and down.
72
Load changes.
281 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
37
PI Controller
Feel free to experiment with the controller
gains to see their effect.
Tuningis the process of choosing the
73
Tuning is the process of choosing the
gains to achieve the desired response.
With this PI controller, we have a lot of
flexibility.
Lecture 7 Demo 2
Demo your PI controller with 1 bulb load.
Show how changing the P and I gains
affect the systemresponse
74
affect the system response.
Determine values of P and I gains for
optimum response.
Demo___________
282 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
38
Lecture 7 Exercise 5
Investigate the difference between the two controllers below. Note that
the order of the integrator and gain has been switched in the two
models:
75
Lecture 7 Exercise 5
76
Investigate the difference in these two methods for:
1. The affect of the placement on overshoot at high gain.
2. The affect of the placement on changing the integral gain while the
system is running.
Demo___________
283 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
39
Any Questions? Any Questions?
Start Project 1
284 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
1
Introduction to Model-Based
Systems Design
Lecture 8: Lecture 8:
xPC Real-Time Systems 1
Outline
Setting up an xPC Target
Running Real-Time Simulation
Proportional Control Model
2
Proportional Control Model
Integral Control Model
Tuning Parameters
Using xPC Explorer
Blocks and Gauges Blocks and Gauges
285 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
2
Real-Time Simulations
We would like to run real-time simulations
for several reasons:
Further debug our controller and model
3
Further debug our controller and model.
Obtain a feel for how the model responds in
real-time.
Tune the control parameters for a desired
response.
See ho changing inp ts and model See how changing inputs and model
parameters affect model and controller
operation.
Terminology
Host Computer The computer where you run
Matlab. The real-time model will not run on this
computer. We will create our models on this
computer
4
computer.
Target Computer (Platform) The computer on
which our real-time model will run.
We will use the host computer to communicate
with and monitor the target.
The target computer can run the plant, the The target computer can run the plant, the
controller, or both depending on the type of
verification we want to do.
286 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
3
What is xPC
xPC allows you to use a personal
computer as a real-time target.
Inexpensive
5
Inexpensive
Most of us have an older PC we can use.
Communication through TCP/IP or RS-232
Can tune parameters
Supports I/O hardware in PC such as A/D Supports I/O hardware in PC such as A/D,
D/A, DIO, CAN, etc
What You Need (For this course)
An Old PC (can be almost any PC with an Intel
386 or 486 Pentium or AMD K5 or K6/Athlon
processor)
A fl di k (N t i d )
6
A floppy disk (Not required anymore)
Microsoft Visual Studio 2005 or Open Watcom
C/C++(Version 1.3)
An Ethernet Card
Card Specifics (Driver/Slot type)
Network Specifics Network Specifics
IP Address
Gateway Address
LAN Subnet Mask
287 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
4
Setting Up xPC
For our example, well use a PC with a
Pentium III and an Ethernet card.
Fromthe Matlab prompt type the
7
From the Matlab prompt, type the
command >>xpcexplr
This will allow us to both setup and
monitor the target PC.
Visual Studio Compiler
First, we will select the compiler. We will
assume that you are using the Microsoft
Visual Studio 2005
8
Visual Studio 2005.
We will assume that you have already
installed the Microsoft compiler and that it is
installed in directory C:\Program
Files\Microsoft Visual Studio 8.
288 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
5
Visual Studio Compiler Setup
The compiler is specified using the xPC
Explorer.
9
Select VisualC here Select VisualC here.
Compiler configuration
selected.
Specify the directory where
the the Microsoft Vasual C
compiler is installed.
Click apply when done.
Visual Studio Compiler Setup
If you have Microsoft Visual Studio 2005
installed, your settings will be as shown:
10
Select VisualC here Select VisualC here.
Compiler Configuration
specified.
Specify the directory where
the Visual C compiler is
installed.
Click apply when done.
289 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
6
11
Default name of the target
PC is TargetPC1.
Click on the plus sign to
expand the tree.
12
Click here to specify the
communication settings for
The first thing we will do is specify the communication
options for our target
communication settings for
your target.
options for our target.
Click on the Communication selection in the tree.
290 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
7
13
Selections are hardware dependent.
Communication tab
selected.
Obtain network information from you network
administrator if you do not know it.
We will look briefly at some of these options.
xPC Setup
We can specify communication through an
RS-232 cable or a TCP/IP connection:
We will select the TCP/IP connection
14
We will select the TCP/IP connection
Select communication
settings here.
291 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
8
xPC Setup
Specify the IP addresses for your target
system.
15
Always set to
IP address of your target
machine. For RHIT targets
in the MBSD lab, boot up
the computer in Windows
and find the IP address and
gateway address. (All of the
xPC computers have fixed
IP address, so it will not
Specify the gateway
address for your network.
Always set to
255.255.255.0.
IP address, so it will not
change.)
xPC Setup
For the Ethernet card, we need to know
the card chip set and the bus type (ISA or
PCI) into which the card is plugged
16
PCI) into which the card is plugged .
If you do not know this information, you
might be able to use the Windows Device
Manager to find it.
A list of the supported Ethernet cards can
be found in the Matlab xPC help with the
following topic: Ethernet Chip Families
Supported by xPC Target
292 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
9
17
Contents tab selected.
Help Selection
xPC Setup
Select the driver/chip set for your Ethernet
card:
18
Select Ethernet card chip
set here. For the RHIT
MBSD lab, select R8139.
293 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
10
xPC Setup
Select the type of bus into which the
Ethernet card is plugged:
19
Ethernet card bus selected
here.
xPC Setup
Next, select Settings.
Since our model is small, we will use the
default settings for model size:
20
default settings for model size:
Settings selected. Maximum model size
specified here.
294 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
11
xPC Setup
Next, we will create a boot floppy for our
target PC.
Hopefully your host PC (the one running
21
Hopefully your host PC (the one running
Matlab) has a floppy disk drive.
Hopefully you can find a floppy disk.
Select Configuration in the tree:
22
Configuration selected.
Click here to create the
floppy boot disk.
Click the Create Bootdisk button.
Note that everything on the disk will be erased.
295 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
12
xPC Setup
Incase you havent used a floppy disk in
the past several years, remember the
following:
23
following:
You may need to format the disk before
clicking the Create Bootdisk button.
Make sure that the write protect switch on the
disk is set to allow writing (you should not be
able to see through the hole ) able to see through the hole.)
xPC Setup
When you click the Create Bootdisk
button, you should see the dialog box:
24
As the disk is created, you should see the
dialog box:
When done, the dialog box will disappear.
296 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
13
xPC Setup
Next, place the bootdisk in your target PC
and turn it on.
Your target PC should display a screen
25
Your target PC should display a screen
similar to the one shown next.
You can ignore the error about no
accessible disk. We will not be using the
target PCs disk.
26
Well ignore this.
Next, switch back to the
xPC Target Explorer
window window.
Right click on the text
TargetPC1.
297 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
14
27
Wait a few moments for your target PC
to register on the network.
Right-click here.
Select Connect from the menus.
28
No red x here.
If your setup was successful and your target
computer registers on the network:
1) The red x next to TargetPC1 should
disappear.
2) You should be able to explore the target ) p g
PCs hardware with the Target Explorer.
3) You should be able to see the files on the
floppy disk.
298 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
15
xPC Setup
Our target setup is now complete.
We are now ready to modify our model to run on the
target computer.
W ill h d l i h i l f db k
29
We will use the model with proportional feedback as a
starting point.(Passed out as Lecture8_Model0.mdl)
Later, we can use the same process to simulate our
more complicated feedback models.
Open the model with proportional feedback and then
rename it Lecture8_Model1.mdl.
Make sure that this model has the flywheel inertia in it,
with the inertia specified as 10
-4
m
2
kg
Model Modifications
Add sliders for the speed and number of
bulbs.
30
299 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
16
Model Modifications
Remove the Sample and Hold locks we
added to model the controller response
time
31
time.
These delays will be modeled by the fixed
step size.
Model Modifications
Controller Block
32
Sample and Hold removed.
Sample and Hold removed.
300 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
17
Simulation Parameter Setup
Select Simulation and then Configuration
Parameters from the Simulink menus
33
Simulation Parameter Setup
There are a number of parameters we
need to change.
Select the Solver tab and specify the
34
Select the Solver tab and specify the
following parameters
Type: Fixed-step
Solver: ode4 (Runge-Kutta)
Fixed-Step Size: 0.001 (1 ms time step)
These selections are shown on the
following slide.
301 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
18
35
Ode4 solver selected.
Fixed step solver selected.
Time step =1 ms Time step =1 ms.
Solver selected.
Simulation Parameter Setup
Next, select the Real-Time Workshop tab:
36
Click here to select the
target.
Real-Time Workshop
selected.
302 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
19
Simulation Parameter Setup
We need to specify that we will be using a
xPC target as our target system.
Click the Browse button select the file
37
Click the Browse button, select the file
named xpctarget.tlc, and then select OK.
Your dialog box should look as shown.
38
Simulation Parameter Setup
303 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
20
We do not need to make any other
changes.
However we will look at the xPC Target
39
Simulation Parameter Setup
However, we will look at the xPC Target
options tab to see some other options that
control behavior we will see.
Select the xPC Target options tab.
40
After we build our model, it
will be automatically
downloaded to the target.
The model will be
downloaded to the default
target, which is named
TargetPC1.
304 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
21
The Configuration Parameters are now
complete so click the OK button to accept
the settings
41
Simulink xPC Target Library
the settings.
Next, we need to place some xPC scopes
in our model.
Open the Simulink Library Browser by
selecting View and then Library Browser
from the Simulink menus or clicking the
Library Browser button
> =
=
value l exceptiona
f e ed denormalis f
f e normalised f
Value
e s
e
s
0 , 0 , ; . 0 2 1
0 , 255 0 , ; . 1 2 1
126
127
Exceptional values: NaN, inf.
524 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
17
32-bit Floating point example
1 10111101 10100000000000000000000
s e f
1 h ti b
33
s = 1 we have a negative number.
e = 10111101=189
10
f = 10100000000000000000000
f
( ) ( ) ( )
62 127 189 127
2 2 2 = =
e
1.f = 1.10100000000000000000000
=
= 1.625
( ) ( ) ( ) ( ) ( ) ( ) .... 2 0 2 0 2 1 2 0 2 1 2 1
5 4 3 2 1 0
+ + + + + +
32-bit Floating Point Example
Our number is
-1.625
10
* 2
62
7 493989779944505 10
18
(d i l)
34
= -7.493989779944505 x 10
18
(decimal)
525 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
18
IEEE Floating Point Standard 754
Double Precision 64 bits
35
( ) ( ) ( )
( ) ( ) ( )
> =
=
value l exceptiona
f e ed denormalis f
f e normalised f
Value
e s
e
s
0 , 0 , ; . 0 2 1
0 , 2047 0 , ; . 1 2 1
1022
1023
Exceptional values: NaN, inf.
610 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
3
PWM
In a PWM waveform, we vary the on time
and keep the period constant.
5
t
ON
T
V
s
s
V
T
t
V V
on
avg
5 . 2
50
25
5 5 =
PWM
6
T
t
ON
V
s
s
V
T
t
V V
on
avg
75 . 3
50
5 . 37
5 5 =
611 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
4
7
T
PWM
From a circuit point of view, we can extract
the average value using a low pass filter.
Choose the cutoff frequency (F ) of the
8
Choose the cutoff frequency (F
C
) of the
filter to be much less than the frequency of
the PWM waveform.
Note that the frequency of the PWM
waveform F is 1/T.
R
+
-
C
+
-
PWM Waveform In
Analog Voltage
(Average) Out
RC
F
C
2
1
=
612 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
5
PWM
Note that objects with a large inertia
cannot respond on a microsecond time
scale
9
scale.
These items respond to the average of the
waveform rather than the instantaneous
value.
Examples are solenoids and motors.
We can speed control a motor using
pulse-width modulation.
MPC555x eMIOS PWM Output
10
Both inputs use a UINT32 data type.
The duty cycle has a range of 0 to 100%
and a resolution of 1%.
The frequency input is 1 bit per Hz (I was The frequency input is 1 bit per Hz. (I was
able to set a PWM frequency from 10 Hz to
1 MHz. See datasheet for more
information.)
613 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
6
MPC555x eMIOS PWM Output
Open the block to specify the initial duty
cycle, the initial PWM frequency, and the
PWMchannel:
11
PWM channel:
In file
MPC5554DEMO_man_
G.pdf, search for the
text EMIOS to find the text EMIOS to find the
pin number for your
channel.
Mobile Studio Desktop
Create the model shown below.
Build your model and download it to your
MPC555x board
12
MPC555x board.
We will use Mobile Studio Desktop to
observe the output waveforms for this
lecture.
614 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
7
Mobile Studio Desktop
Mobile Studio Desktop is a combination
hardware/software solution that replaces traditional
bench top in an educational lab with a single board
13
that plugs into your laptops USB port.
Instruments included are an oscilloscope, spectrum
analyzer, function generator, and logic analyzer.
The product was developed as a joint venture
between Rose-Hulman Institute of Technology and
Rensselaer Polytechnic Institute
Mobile Studio Desktop
The hardware board is shown below:
14
615 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
8
Mobile Studio Desktop
We will be using Channel 1 of the
oscilloscope to display the PWM
waveform
15
waveform.
Hook up two clip leads to the A1+ and
Ground terminals of the board as shown:
Channel 1 positive
reference (A1+).
Channel 1 ground
reference.
Mobil Studio Desktop
Plug in the USB cable into the board and your
computer.
Connect the A1+terminal to the PWM output pin on
16
p p
your MPC555x board
Connect the ground terminal on the Mobile Desktop
Studio board to a ground pin on your MPC555x board.
Run the Mobil Studio Desktop application from your
PC.
The application is in the Windows Start Menu at
Rensselear/Mobile Studio Desktop/Mobile Studio
Desktop.
616 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
9
Mobile Studio Desktop
17
Click on the Oscilloscope icon
to open the Oscilloscope
Window
Oscilloscope
18
Your window will look a little
different. Click on Windows
here to modify the controls
that are displayed.
617 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
10
Oscilloscope
Select Windows and then choose to
display Channel 1 and the Horizontal
Settings
19
Settings
20
Horizontal settings
Time/Div: 100 s
Mode: Y-T
Channel 1 settings
Coupling: DC
Click the Start button to
start the oscilloscope
d di l th
Volts/Div: 2 V
and display the
waveform.
618 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
11
PWM Waveform
The PWM Waveform is shown below:
21
Lecture 15 Demo 1
MPC555x eMIOS PWM Output
Verify that the frequency is 20 kHz and that
the duty cycle is 50%
22
the duty cycle is 50%.
Display waveforms of the PWM output with
the Mobile Studio Desktop Oscilloscope
Demo___________
619 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
12
MPC5554 eMIOS PWM Output
Next, we would like to create a 60 Hz
analog sine wave using the PWM output.
Create the model shown:
23
Create the model shown:
Time-based sine
wave.
MPC5554 eMIOS PWM Output
The settings of the sine
wave are shown below.
Note that the pulse width
24
never goes to 0 or 100
%.
Observe the output PWM
waveform and show that
the frequency is constant
but the pulse-width
changes.
620 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
13
Lecture 15 Demo 2
Demo the PWM output of the sine wave
using a 2 kHz PWM waveform.
The duty cycle should change with the
25
The duty cycle should change with the
sine wave input.
We are using a 2 kHz waveform so that
we can easily see that the pulse-width
change with the sine wave.
When we filter the sine wave later, we will
need to increase the PWM frequency to
generate a smooth analog waveform.
Lecture 2 Demo 2
Sine Wave Modulated PWM Waveform
26
Demo___________
Duty cycle close to
100%. Sine wave is
Duty cycle close to
0%. Sine wave is
close to 5 V.
close to 0 V.
621 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
14
Lecture 15 Demo 3
MPC5554 eMIOS PWM Output
Add the filter shown below and observe a 60 Hz Sine Wave at
the output of the filter.
Choose the cutoff frequency of the filter to be 600 Hz or higher.
27
q y g
(A decade above 60 Hz)
You may need to increase the PWM frequency to reduce the
ripple on the filter output. (20 kHz or higher.)
Display the Sine wave on Channel 1 of the scope, Display the
PWM waveform on Channel 2 of the scope.
R
Demo___________
+
-
R
C
+
-
Motor Control Demo
Create the following model.
28
Analog voltage Read the analog
Use a PWM
block to generate
a 20 kHz PWM
signal with the
Connect the
PWM output
directly to the
PWMinput of our
g g
from a
potentiometer.
g
voltage and
scale it to a value
from 0 to 100.
g
duty cycle
determined by
the
potentiometer.
PWM input of our
Motor demo box.
(Dont do this
until we verify the
PWM Signal.)
622 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
15
Lecture 15 Demo 4
1) Before connecting the motor, verify that
you can use the POT to control the output
duty cycle (Display in the scope)
29
duty cycle. (Display in the scope)
Verify this signal.
Demo___________
Motor Control Demo 5
2) Once you have verified the PWM signal
on the scope, connect the PWM output of
the MPC555x to the PWMinput of the
30
the MPC555x to the PWM input of the
motor controller demo.
3) Verify the motor speed is controlled by
the potentiometer.
Demo___________
623 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
16
Questions?
624 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
1
Introduction to Model-Based
Systems Design
Lecture 15A: Lecture 15A:
Hardware In The loop Simulations
HIL
Up to this point we have:
Learned several levels of simulations: Model-
in-the-Loop (MIL), Software-in-the-Loop (SIL)
2
in the Loop (MIL), Software in the Loop (SIL)
and Real-Time.
Learned several software packages:
MATLAB, Simulink, RAppID, FreeMASTER,
Used many platforms: Windows, xPC
Used several different hardware targets: PC Used several different hardware targets: PC,
xPC, MPC5554.
625 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
2
HIL
It is now time to put it all together and perform
Hardware-in-the-loop (HIL) simulations.
We will start with the full model developed in
3
p
Lecture 10A and split the model so that:
The controller runs in the MPC5554 target.
The plant runs on the Speedgoat xPC target.
The two targets will be connected with a wiring
harness, the same harness that will be used in
the final product.
Both models will run in real time.
HIL
This is a test of the controller:
Hardware - It is running on the target we will
use in the final implementation.
4
Speed - It is running in real time.
Wiring Harness - It is connected to the plant
using the same interface that will be used in
the final implementation.
If the controller works when hooked to our
virtual plant, we have confidence that it will
work when we hook it to the physical plant.
626 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
3
HIL
We will start with Lecture10A_Model3.mdl and
split it into two models, the plant and the
controller.
The plant will:
5
The plant will:
Run on the xPC Target.
The xPC Target: Speedgoat I/O Driver blocks will be
used to create a shell to interface between the model
and the physical world.
The inputs and outputs will be analog voltages.
The controller will
Run on an MPC5554 target.
Use RAppID to interface between the model and
physical world.
The inputs and outputs will be analog voltages.
HIL
We will be using the test platform below:
6
Controller Interface
Computer Model of the
Plant
Controller deployed on an
MPC5554 computer.
Speedgoat xPC real-time computer
running a model of the plant.
Same physical interface as
in the actual system.
(Wiring for analog signals
in our example.)
627 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
4
HIL
We will split the development of the HIL
system into several steps:
1 We will deploy the controller on to the
7
1. We will deploy the controller on to the
MPC5554 target.
2. We will deploy the plant on to the xPC
target.
3. We will test the plant with analog inputs and
verify its operation verify its operation.
4. We will connect the controller and plant
together using a wiring harness.
5. We will test the entire system.
HIL
If the controller on the MPC5554 target works
successfully in the HIL simulation:
We will take the final step of testing the controller
8
by connecting it to the physical plant.
If it works, we will drink (depending on your state
of mind):
Champagne
An energy drink
Mountain Dew (non-diet for the full compliment of sugar)
Or all of the above in no specific order.
628 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
5
HIL Simulations
9
Part 1: Implementing the
C t ll th MPC5554 T t Controller on the MPC5554 Target
Motor Controller Deployment
From lectures 11 through 15, we now know how
to use the hardware resources of the MPC555x
well enough to use it as the target for the
10
controller of our motor-generator system.
We will use the control method we proved,
tested, and verified in the MIL, SIL, and real-
time portions of the class.
First, we will create a shell that accesses the
hardware resources of our target (MPC555x).
629 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
6
Motor Controller Deployment
The controllers we developed for our
motor-generator system all used the
following input:
11
following input:
Speed Set point A continuous (analog)
signal between 0 and 1. We will use one of
the potentiometers on the MPC555x board for
this reference. We read this as a 5 V signal
and then scale it to 0 to 1 in the MPC555x.
Motor Controller Deployment
The controllers we developed for our
motor-generator system all used the
following input:
12
following input:
Motor rpm An analog signal measured from
the motor rpm sensor (shaft encoder). The
encoder outputs a signal that is 2.5 V per
1000 rpm. We scale this signal to 0 to 4 V with
resistors and then read the signal with the g
MPC555x. Internal to the MPC555x, the
signal is scaled to a number between 0 and 1.
630 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
7
Motor Controller Deployment
The controllers we developed for our
motor-generator system all used the
following input and outputs:
13
Controller Realization
on the MPC5554 Target
following input and outputs:
Controller Output In our simulations, the
torque request from the controller was a
signal between 0 and 1. We will scale this
signal to 0 to 100 and then use PWM output
of the MPC555x to directly drive our motor.
MPC5554
y
MPC5554
Target
Motor Controller Deployment
The controllers we developed for our
motor-generator system all used the
following output:
14
following output:
Motor torque request. An analog signal
between 0 and 1. The realization will be a
PWM signal between 0 and 100%
The actual input to the plant is a PWM input
that directly controls the gate of a MOSFET that directly controls the gate of a MOSFET
chopper circuit.
The PWM output of the controller directly
modulates the waveform to the motor.
631 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
8
Hardware Shell
We will now create a top-level shell for
our controller that:
Initializes the MPC555x
15
Initializes the MPC555x.
Reads and scales the analog inputs.
Passes the information to a subsystem that
contains our control method.
Outputs a PWM signal for the requested
torq e torque.
Hardware Shell
The basic idea is that our interface to the
hardware will not change that much.
Given the same interface, we can make
16
,
significant changes to our control method.
All of these changes will be implemented in the
controller subsystem.
The hardware shell will remain relatively
unchanged. (Occasionally, a new control g ( y,
method will require new inputs or outputs. In this
case, we will need to modify the hardware shell.)
632 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
9
Hardware Shell
17
Target Setup Block
Start Analog Input Queues
Board Alive Flashing
Lights
Hardware Shell
18
All controller logic goes in
here.
Read two analog input
channels.
Scale analog inputs to a
signal range of 0 to 1.
633 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
10
Hardware Shell
19
All controller logic goes in
here.
Range of controller output
signal is 0 to 1
PWM output to drive motor.
signal is 0 to 1.
Scale signal to 0 to 100.
ASCII Output
As a last
enhancement,
we will display
th d i d d
20
the desired and
measured rpm
using RHIT
Debug blocks
we used earlier.
634 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
11
FreeMASTER
It is also suggested that you use FreeMASTER to
monitor signals within the controller including the
Speed_Setpoint, Measured_Speed, and the controller
Torque Request output.
21
Torque_Request output.
Debugging Tools
Note that you might not be able to use
both the FreeMASTER tool and the RHIT
debug blocks at the same time as they
22
debug blocks at the same time as they
both use the eSCI port.
You can attempt to use both. However, if
they are incompatible, you should use the
one you feel most comfortable with and
the one that gives you the most
information and help in debugging the
system.
635 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
12
Complete Hardware Shell
23
Next, we put our control
logic in here.
Controller
We now will use the controller from Lecture10A_Model3.
Note that this model was an SIL test and had two versions
of the controller, an s-function and a Simulink model. We
S
24
will be using the Simulink model, as it will be compiled
and downloaded to the MPC555x target.
The idea is that we proved the controller in Lecture 10A in
many simulation methods and this is the most mature of
our controller models.
In the HIL simulation we are about to run, except for any
misunderstanding of the hardware target performance or
the wiring interface between the controller and plant, the
controller performance should be close to what we
observed during our previous simulations.
636 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
13
Controller.
Lecture10A_Model3 was the most mature
controller we developed.
The last tests we did were our SIL
25
The last tests we did were our SIL
simulations.
The model is shown on the next few
slides.
SIL Model
26
Most of the stuff in here goes in
our controller in the target. (Look
inside on next slide.)
637 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
14
SIL Model - Controller
27
This is our controller logic. Copy
this and paste it into the controller
subsystem for our target.
This will not go in our controller as the signal is already
constrained to be between 0 and 1 by the analog input
channel plus the scaling. It could be left in just for safety
incase the controller hardware is changed.
MPC555x Target - Controller
28
Note that we cannot change the gains in real-time. To
change the gains, we will need to change the gains in
the model, build the model, and then download the
model to the target.
638 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
15
Controller
Build the model and download it to the
MPC5554 target.
We will not be able to test it yet but you
29
We will not be able to test it yet, but you
should verify that the two LEDs flash and
toggle back and forth.
We are now ready to work on the plant.
HIL Simulations
30
Part 2: Implementing the Plant on
th S d t PC T t the Speedgoat xPC Target
639 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
16
Plant Model
In Lecture 10, we simulated the entire model
(plant and controller) using xPC Target.
Here we want to run just the plant on xPC
31
Here we want to run just the plant on xPC
target.
The same plant model was used for Lecture 10
and Lecture 10A.
Thus, we will use model Lecture 10 as a Thus, we will use model Lecture 10 as a
starting point.
Most of the settings used in lecture 10 will apply
here as well.
Lecture 10 Model 3
32
Resave this model as Resave this model as
Lecture15A_Plant.mdl
640 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
17
Plant Model
At the top level, delete the controller and
control inputs.
33
Plant Model
Inside the plant is a single xPC Target
Scope displaying the motor speed in rpm.
Add xPC Target scopes to display:
34
Add xPC Target scopes to display:
The Torque Request input to the plant.
The Number of Bulbs input to the plant.
The encoder output in volts.
641 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
18
Plant Model
35
xPC Target Scope
added here!
xPC Target Scope
added here!
Encoder Model
36
xPC Target Scope
added here!
642 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
19
Speedgoat target.
We are going to use the Speedgoat Target libraries
and I/O blocks to provide physical inputs and
outputs for out plant model.
W t fi t fi th h d th
37
We must first configure the hardware on the
Speedgoat PCM730 board.
We did this in Lecture 3A, but we will review it here.
Place a Simulink block named PMC730 5 located in
the xPC Target: Speedgoat I/O Driver Library /
IO101 lib i d l IO101 library in your model.
PMC730 Acromag Setup
This single block is used to setup all functions of
the PMC730 card.
Only 1 copy of this block is needed to set up the
38
y py p
analog I/O and digital I/O facilities of the card.
Double-click on the block to open it.
Note that the block will appear differently
depending on the parameter group selected.
The screen captures on the next page showthe The screen captures on the next page show the
same block with different Parameter groups
selected.
643 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
20
39
PMC730 5 Acromag Setup Bblock
We notice that the module identifier in all of the
screen captures on the previous slide was set to 1.
If a Speedgoat target has more than one PMC730
40
If a Speedgoat target has more than one PMC730
target, we can use this card to address each PMC730
individually.
Our targets have a single PMC730 installed, so the
module identifier will be specified as 1.
We will nowset the parameters on this block to have We will now set the parameters on this block to have
a single analog input and a single analog output.
644 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
21
PMC730 5 Acromag setup block
We fist must specify the Module setup.
Since we only have a single PMC730 module, we can
specify that xPC automatically determine in which slot
th PMC730 i i t ll d If h d th
41
the PMC730 is installed. If we had more than one
PMC730 installed, we would specify the slot
manually:
Module 1 specified.
Module setup specified. p p
Automatically determine which
slot the card is installed.
PMC730 5 Acromag setup block
We need to specify two channels for analog input:
42
Module 1 specified.
We are configuring the analog inputs We are configuring the analog inputs.
For multiple channels, start with
channel 1 as the first channel.
We will have 2 input channels.
Measure the input between the
channel input and ground.
Both analog inputs are always positive and
between 0 and 10.
645 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
22
PMC730 5 Acromag setup block
We need to specify one channel for analog output:
43
Module 1 specified.
We are configuring the analog inputs.
Specify channel 1 as the only
input.
Analog Output
Next, we will add an analog output block to the
plant output.
Place a block called PMC730 2 located in the
44
xPC Target: Speedgoat I/O Driver Library /
IO101 library in your model.
Connect it to the plant as shown:
646 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
23
Analog Output
The settings for the analog output block are:
45
We are using the analog output We are using the analog output
channel of the PMC730 identified
as module 1 in the setup block.
This is the same as the fixed time step
we will use in the simulation. If you
recall fromLecture 10 we needed a recall from Lecture 10, we needed a
fixed time step of 0.001 seconds for the
model to run correctly.
Analog Input
We will use an analog input channels to measure the torque
request and number of bulbs.
Place a block called PMC730 1 located in the xPC Target:
Speedgoat I/O Driver Library / IO101 library in your model.
46
After placing the block, if you type Ctrl-d, two inputs will be
shown on the block. This is because in the Acromag block, we
specified two analog input channels.
647 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
24
Analog Input
The properties of the analog input block
are:
47
This is the same as the fixed time step
ill i th i l ti If we will use in the simulation. If you
recall from Lecture 10, we needed a
fixed time step of 0.001 seconds for the
model to run correctly.
Plant Model
We are now done with the hardware setup
for the plant.
Since we copied this model fromthe xPC
48
Since we copied this model from the xPC
model developed in Lecture 10, the
simulation parameters should be set up
correctly.
However, just to make sure the settings
are correct, we will show the required
settings in the next two slides.
648 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
25
Simulation Parameters
49
Simulation Parameters
50
649 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
26
Plant Deployment
Build and download the plant model to the
Speedgoat xPC target.
Connect to the target
51
Connect to the target.
Remember to use the xPC Explorer
(xpcexplr) to specify the target IP address.
(Review lectures 3A and 10 if needed.)
Model Wiring
The last thing we need to do before running the
model is to identify the pin numbers for the
inputs and output
52
inputs and output.
Pin connections for the PMC730 are defined in
the users manual located on the website for
MBSD1.
We are using Analog Output 1.
We need to also find the ground reference for
this output.
The data sheet is shown on the next slide:
650 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
27
Analog Output Pin Connection
53
Pin connection information is
contained in table 2.2.
Analog output channels listed
here.
Analog Output Pin Connection
54
We specified the first analog output
channel. Thus, our output is pin 12.
We can use any of these common
connections as our ground reference.
651 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
28
Analog Input Pin Connection
55
We can use any of the common connections specified in
the previous slide as our ground reference.
We specified the two analog input channels.
Thus, our inputs are pins 34 and 33. Analog
In 0 is the first input and is the torque
request. Analog in 1 is the second input as
is the number of bulbs.
HIL Simulations
56
Part 3: Testing the Stand-Alone
Pl t Plant
652 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
29
Plant Test
We are now ready to test our plant.
As a first step, we will use two DC voltage sources
to test the inputs of the plant.
57
We will connect a 0 to 6 V DC voltage source to
the Bulb Load input (Analog input 1 pin 33).
We will connect a 0 to 1 V DC voltage source to
the Torque Requested input signal (Analog input 0
pins 34).
We will observe the rpm signal (channel Analog
out 0 pin 12) with a scope.
Note that ground is pin 18 (and others if needed).
Plant Test
58
Speedgoat
xPC Target
653 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
30
Plant Test
The Speedgoat Target is connected to the outside
world through a cable and a breakout connector:
59
Plant Test
The pin numbers on the breakout connector
match 1 to 1 with the pin numbers on the
Speedgoat target:
60
This connector This connector
allows easy
access to the
inputs through
screw terminals.
654 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
31
61
Pin numbers correspond 1 to 1
with the pin numbers on the
Speedgoat Target. This is pin 34.
Plant Test
For the first test, we will just connect the two DC
power supplies directly to the breakout box with
jumper wires and alligator clips.
62
655 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
32
Plant Test
Connect to the Speedgoat xPC target
R th d l
63
Run the model.
Bulb Load
As you change the DC input for the bulb
load, you should see the indicators change
as integer steps even though the DC
64
as integer steps even though the DC
source is an analog voltage and changes
continuously.
This is because we specified that these
indicators change in integer steps and are
limited to 0 to 6 volts.
Remember that we used a floor block in
our Simulink model for the bulb input.
656 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
33
Bulb Load
65
Torque Request
As you change the torque request from 0
to 1, the indicators should follow and
agree with the input voltage displayed on
66
agree with the input voltage displayed on
the DC source.
The stepped nature of the waveform
shown in the next slide is because the DC
source I am using is set to change its
( voltage in 0.1 V steps.(It has nothing to do
with how we set up the LabVIEW
indicators.)
657 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
34
67
This value is equal
to the DC input
voltage
This value is equal
to the DC input
voltage.
Plant Test
As we change the input torque request, we
see the motor RPM increase and
decrease in response to the changing
68
decrease in response to the changing
torque request and bulb load.
Verify that the RPM signal corresponds to
the analog output voltage of channel
Analog Output 0.
658 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
35
69 This should agree with
the voltage you measure
from Analog Output
channel 0.
Plant rpm response to
changes in the bulb load and
torque request.
70
Analog Output charnel 0
should be 2 V here.
Analog Output charnel 0
should be 6 V here.
659 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
36
Lecture 15A Demo 1
Plant Test
From previous simulations, you have a good
idea of how the plant should respond to changes
71
in the torque request and bulb load.
Test your plant for various inputs and verify that
it responds correctly.
If your plant passes all of the above tests, we
can now connect the plant to the controller and
test our system using a complete HIL setup.
Demo___________
HIL Simulations
72
Part 4: Interfacing the Controller to
th Pl t the Plant
660 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
37
HIL Simulation
We are now ready to connect our controller to the plant,
but we require one more modification.
The torque output of our controller is a 20 kHz, 0 to 5 V
PWMsignal and this is the signal expected by our motor
73
PWM signal, and this is the signal expected by our motor
controller. (The duty cycle will go between 0 to 100%
corresponding to 0 to max torque request.
The Plant expects an analog voltage from 0 to 1 volt
corresponding to 0 to max torque request.
(In future model improvements, we might design our
plant to use a PWMinput rather than an analog voltage plant to use a PWM input rather than an analog voltage
input. However, this would require that the plant use a
timer, which is not a facility available on our Speedgoat
hardware.)
HIL Simulation
The difference between the two signals requires
that we create a PWM to analog voltage
converter circuit.
W ill i i l filt ith
74
We will use an inexpensive low-pass filter with a
voltage divider.
We will choose the pole of the filter to be much
less than 20 kHz so that it filters out the 20 kHz
PWM frequency, but high enough so that the
delay of the filter is small compared to the delay of the filter is small compared to the
dynamic response of the plant.
Keep in mind that this filter will not be part of the
system when we control the physical plant.
661 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
38
HIL Simulation
Also not that this filter adds delay to the HIL
simulation that is not in the physical system nor
was it in our MIL and SIL simulations.
75
It is possible that we may see an instability in the
HIL simulation due to this added delay that is not
present in the physical realization nor our
previous simulations.
We will connect the MPC555x controller target to
the Speedgoat Plant target with the connections
shown on the next slide.
76
662 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
39
77
This filter will not be part of our
final implementation when we
connect the controller to the
physical plant. It is for the HIL
simulation only to convert the
PWM signal an analog signal.
Divides signal by a
factor of 5. Has a
cutoff frequency of
about 200 Hz.
78
This filter is part of the
controller and used to controller and used to
remove noise on the
RPM signal. It is an
actual circuit that we
will build on the
controller board.
663 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
40
Low-Pass Filter
Note that the filter we added to convert the PWM waveform
to an analog signal has a cutoff frequency of 200 Hz.
This frequency was chosen because it is a factor of 100
below the PWM frequency of 20 kHz.
79
q y
Since we have a first order filter that attenuates the signal at
20 dB per decade above the cutoff frequency, the 20 kHz
signal will be reduced by a factor of 100 (40 dB) by the filter.
This is good, but not great.
For a 5 V, 20 kHz PWM waveform input the filter, the filter
will have 50 mV of ripple at 20 kHz at the output will have 50 mV of ripple at 20 kHz at the output.
This ripple will cause a ripple on the torque output of the
motor.
Low-Pass Filter
The cutoff frequency of 200 Hz is close to
the bandwidth of the motor-generator
system
80
system.
This means that the delay added by the
filter will be significant and may make the
system unstable.
We will keep this in mind as we do our
testing.
664 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
41
HIL Setup
My setup is shown on the next two slides.
Note that the circuits to interface between
the controller and plant been hardwired on
81
the controller and plant been hardwired on
to the prototyping area of the
MPC555xEWB to keep the implementation
clean.
You may want to use a prototyping board
to construct the circuits needed for this lab
so that you can change the circuits and
filter constants easily.
82
665 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
42
83 I/O connector strip
for the plant target.
DC power supply
still being used for
light bulb load.
Interface circuits
between the plant and
controller. (Can be
easily disconnected
when not needed.)
Controller running
on a MPC555x
target.
84
666 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
43
85
Interface circuits
between the plant and
controller. (Can be
easily disconnected
when not needed.)
86
Plant running on
Speedgoat xPC
target.
Interface / wiring
harness.
667 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
44
HIL Simulations
87
Part 5: HIL Simulation
HIL Simulations
We are now ready to run our HIL
simulation.
Use the Simulink Plant model or the xPC
88
Use the Simulink Plant model or the xPC
Explorer to run your plant model on the
Speedgoat Target.
Download and run your controller model
on the MPC555x.
Monitor important signals on the MPC555x
using FreeMASTER or the RHIT ASCII
debug blocks.
668 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
45
HIL Simulations
The next slide shows my plant
performance for the following controller
settings:
89
settings:
Proportional Gain =1
Integral Gain =10
Fixed Step size =1 ms
PWM frequency is set to 20 kHz
The number of bulbs is set to 2.
Step response in rpm speed request. Bulb
load held constant at 2 bulbs.
90
Torque spikes even though
the rpm is constant.
Rpm constant here
and well controlled.
p
Torque spikes even though
the rpm is constant.
669 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
46
Constant speed request. Bulb load step
response.
91
Lecture 15A Demo 2
Demo of HIL simulation.
Proportional Gain =1
Integral Gain =10
92
Integral Gain =10
Fixed Step size =1 ms
PWM frequency is set to 20 kHz
Speed Step Response
Bulb Step Response Bulb Step Response
Demo___________
670 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
47
HIL Simulations
We notice that there is a lot of ringing in
the system response.
Fromprevious simulations we found that
93
From previous simulations, we found that
a proportional gain of 100 and an integral
gain of 10 worked well.
Change these gains, rebuild the controller,
download the controller model to the
MPC555x and then redo the previous
tests.
Step response in rpm speed request. Bulb
load held constant at 2 bulbs.
94
Looks clean.
Wild oscillation in the torque request.
671 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
48
Constant speed request. Bulb load step
response.
95
Rpm held constant even though we
have a change in the bulb load.
Wild oscillation in the torque request.
Lecture 15A Demo 3
Demo of HIL simulation.
Proportional Gain =100
Integral Gain =10
96
Integral Gain =10
Fixed Step size =1 ms
PWM frequency is set to 20 kHz
Speed Step Response
Bulb Step Response Bulb Step Response
Demo___________
672 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
49
HIL Simulations
The step response (RPM signal output)now looks
clean, but we see large oscillations in the torque
request signal.
Thi ld b f l
97
This could be for several reasons:
The filter we added for the PWM signal (which is not part of
the physical system) added extra delay.
The interface / wiring harness added noise and delay that
was not modeled earlier.
The PWM nature of the torque request signal is adding noise q q g g
to the system. (Because we only attenuate the 20 kHz signal
by a factor of 100.)
The gain is just too high, and caused the system to oscillate.
(Review earlier simulations and see if the selected gains
caused the system to be unstable.)
HIL Simulations
Note that we are not really sure that the wild
oscillations on the torque request signals are
actually there.
98
The signal is a PWM signal that is a square
wave that oscillates between 0 & 5 volts. We are
trying to use the average of that signal bu using
a low-pass filter.
The filter output contains 50 mV of 20 kHz ripple.
This ripple may be what is causing the
oscillations in the torque request.
673 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
50
HIL Simulations
We will try different gains to improve the
performance of the system while still
havinga stable system
99
having a stable system.
Unfortunately, we cannot change the
controller gains in real-time, so we will
have to modify the gains, rebuild the
model, and then download it to the
C MPC555x every time we make a change.
Next, try a proportional gain of 10 and an
integral gain of 10.
Step response in rpm speed request. Bulb
load held constant at 2 bulbs.
100
No so clean anymore.
Wild oscillation in the torque request.
674 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
51
Constant speed request. Bulb load step
response.
101
Rpm held constant even though we
have a change in the bulb load.
Wild oscillation in the torque request.
Lecture 15A Demo 4
Demo of HIL simulation.
Proportional Gain =10
Integral Gain =10
102
Integral Gain =10
Fixed Step size =1 ms
PWM frequency is set to 20 kHz
Speed Step Response
Bulb Step Response Bulb Step Response
Demo___________
675 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
52
HIL Simulations
The step response of the rpm signal looks clean, but we still
see large spikes on the torque request signal.
If we compare the response of the HIL simulations to our
previous simulations for the specified gains and the simulations
103
p p g
give different results, then we have learned something:
Our interface may have introduced something that was not previously
modeled. (We need to solve this.)
The controller running on the actual target with a discrete time step is
causing the problem. (We need to solve this.)
The HIL simulations have shown us something new and we
d t k dj t t l th i b f need to make adjustments or resolve the issues before we
deploy our controller on the physical plant.
HIL Simulations
It is also possible that the plant running on a discrete
target is causing the problem.
This not an issue in the real system because the
104
plant will be replaced by the actual physical system.
We do need to test this possibility and make changes
if it is the cause. (By say, decreasing the time step of
the plant if possible.)
Since we ran the entire system in real-time on an
xPC target with the same time step as used here and
we did not see the oscillations, the plant time step is
probably not the issue.
676 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
53
HIL Simulations
It is also possible that the filter we added
for the PWM signal is causing a problem.
This filter is not part of the physical system
105
This filter is not part of the physical system
or controller, and we should investigate to
see if this is causing the problem.
Noise:
Measure the output of the filter and make sure that
20 kH i l i t t th i l 20 kHz ripple is not present on the signal.
Delay:
Increase the PWM frequency (to say 200 kHz).
Increase the pole of the filter (to say 2 kHz).
HIL Simulations
The next slides show the system response for
proportional and integral gains of 10 (same as the
previous simulation).
The PWMfrequency was increased to 200 kHz and
106
The PWM frequency was increased to 200 kHz and
the filter cutoff frequency was changed to 2 kHz (a
much faster filter).
This filter will have the same 50 mV of ripple as the last filter
since the PWM frequency is 100 times higher than the
filters cutoff frequency.
Since the filters cutoff frequency has been increased to 2
kHz, (a factor of 10 higher) we have decreased the amount
of delay added by the filter by a factor of 10.
This experiment will test if the filter delay was the
cause of the problem.
677 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
54
Step response in rpm speed request. Bulb
load held constant at 2 bulbs.
107
Lecture 15A Demo 5
Demo of HIL simulation.
Proportional Gain =10
Integral Gain =10
108
Integral Gain =10
Fixed Step size =1 ms
PWM frequency is set to 200 kHz
Filter Cutoff frequency 2 kHz
Speed Step Response p p p
Bulb Step Response
Demo___________
678 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
55
HIL Simulations
The wild oscillations are still present in the
system.
Next we will keep the PWMfrequency at
109
Next, we will keep the PWM frequency at
200 kHz and then change the filter cutoff
frequency back to 200 Hz.
This will increase the filter delay, but
reduce the 200 kHz ripple at the filter by a
factor of 10. (The 200 kHz PWM frequency
will now be attenuated by a factor of
1000.)
Step response in rpm speed request. Bulb
load held constant at 2 bulbs.
110
Yuck.
We still have wild
oscillations.
679 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
56
HIL Simulations
Reducing the delay and reducing the ripple do not
seem to fix the problem.
We could test the hypothesis further that the
111
yp
oscillation is due to the filter and PWM ripple further by
eliminating the filter completely and using a plant
target that can measure the pulse-width directly.
Our hardware does not allow this test.
Next, we will see if reducing the gain fixes the , g g
problem. We will keep the filter cutoff frequency at 200
Hz and the PWM frequency at 200 kHz.
Step response in rpm speed request. Bulb
load held constant at 2 bulbs.
112
Stable
.
Oscillations.
Random spikes.
Oscillations.
680 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
57
Lecture 15A Demo 6
Demo of HIL simulation.
Proportional Gain =1
Integral Gain =10
113
Integral Gain =10
Fixed Step size =1 ms
PWM frequency is set to 200 kHz
Filter Cutoff frequency 200 Hz
Speed Step Response p p p
Bulb Step Response
Demo___________
Deja Vu
I know that I remember this system
working better before.
As a last step we will change the filter
114
As a last step, we will change the filter
back to having a cutoff frequency of 2 kHz.
We will keep everything else the same.
(PWM at 200 kHz, proportional gain = 1,
integral gain = 10).
This will reduce the delay of the added
filter.
681 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
58
Step response in rpm speed request. Bulb
load held constant at 2 bulbs.
115
Stable
Oscillations.
.
Random spikes mostly gone.
Oscillations.
Constant speed request. Bulb load step
response.
116
Rpm held constant even though we
have a change in the bulb load.
Torq e prett ell beha ed Torque pretty well behaved.
682 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
59
Lecture 15A Demo 7
Demo of HIL simulation.
Proportional Gain =1
Integral Gain =10
117
Integral Gain =10
Fixed Step size =1 ms
PWM frequency is set to 200 kHz
Filter Cutoff frequency 2 kHz
Speed Step Response p p p
Bulb Step Response
Demo___________
HIL Simulations - Conclusions
The HIL simulations give us some new results.
First, it appears that we need a proportional gain of 1 to make
the system stable. This is much lower than the gain we
determined in earlier systems.
118
We are not sure if the added filter is the cause of the reduced
gain and bad system behavior.
We should really eliminate the added filter as it is not part of the
physical plant and may be causing issues in the simulation.
The poor performance of the system in the HIL simulations
suggest that we need for work in improving the systems suggest that we need for work in improving the systems
performance before we deploy the controller on the physical
plant. Torque spikes can damage equipment.
(In this course, we do not have time to investigate the cause of
the observed problems.)
683 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
60
Controller Notes
Remember that we only increased the
PWM frequency to 200 kHz to try to
eliminate the effects of the filter and PWM
119
eliminate the effects of the filter and PWM
ripple.
When we deploy the controller on the
physical plant in the next lecture, we need
to use a frequency of 20 kHz as the plant
f hardware is designed for a PWM
frequency of 20 kHz.
684 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
1
Introduction to Model-Based
Systems Design
Lecture 16: Lecture 16:
Motor Controller Deployment
System Deployment
We have placed our control algorithm and controller hardware
through several levels of testing:
Model-in-the-Loop (MIL) where we tested the controller as a Simulink
model connectedto a Simulink model of the plant runningin the
2
model connected to a Simulink model of the plant running in the
Windows environment.
Real-Time simulations where we ran both the controller and plant in real
time on a single xPC target.
Software-in-the-Loop (SIL) where we compiled the controller into the
same code that would run on the hardware target an ran the model with
a fixed time step.
Hardware-in-the-Loop(HIL) simulations where we deployed the Hardware in the Loop (HIL) simulations where we deployed the
controller onto the target that will be used in the final implementation and
tested that controller by connecting it to another real-time-computer
running the plant model.
685 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
2
System Deployment
By going through all of these levels of simulation, we
gain confidence that when we hook the controller to
the physical plant:
The systemwill behave as expected
3
The system will behave as expected.
The system will operate in a safe manner.
We will not break anything mechanically.
We will not let the smoke out of any electrical components.
The only reason the system will fail is that our models
of the plant are not accurate: of the plant are not accurate:
This is always possible and we should always expect that
there are things we can do to improve the plant model.
One thing we did not do in this course is make exhaustive
measurements of the plant components, and then update
the plant model to reflect the measurements.
System Deployment
With the HIL simulations, we deployed the control
method on the target hardware that will be used in the
final realization.
4
We identified all of the inputs and outputs for the plant
and controller.
We hooked the controller inputs and outputs to a real-
time computer running a model of the physical plant,
not the physical plant itself.
The last step is to take that same controller and
connect it to the physical plant.
686 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
3
Connections
The controller has the following connections:
A PWM output for the motor torque. This is connected
directly to the PWM input of the plant and the motor is PWM
controlled. We do not need the low-pass filter that causes us
5
p
problems in the HIL simulation.
An analog input to measure the motor rpm. This is
connected to the rpm output of the plant. Note that a 2:1
voltage divider is included in the plant, but the filter capacitor
is not included. You will have to add the capacitor.
You will need to run one ground connection between the You will need to run one ground connection between the
plant and the controller
A wiring diagram is shown on the next slide.
Wiring Diagram
6
687 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
4
Physical Connections
7 Controller!
I/O Connections for I/O Connections for
the plant.
Plant I/O Connections
8
All of these ground
connections are
connected on the
PC board. You only
need to connect to
one of them.
rpm output signal.
PWM input signal.
688 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
5
Lecture 16 Demo 1
Once you have made all of the
connections:
Plug in your plant (Wear safety glasses!)
9
Demo___________
Plug in your plant. (Wear safety glasses!)
Verify that the motor speed follows the
desired speed specified by the POT on the
MPC555x demo board.
Display the desired speed and actual speed
using either the FreeMASTER tool or the using either the FreeMASTER tool or the
RHIT Debug Blocks.
Lecture 16 Demo 2
Show the step response of your system using
the FreeMASTER tool. The screen capture
belowshowthe step response with no load:
10
Demo___________
below show the step response with no load:
689 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
6
Lecture 16 Demo 3
For constant speed request, show the system
response as the bulb load is increased from no
bulbs to 6 bulbs:
11
Demo___________
bulbs to 6 bulbs:
Lecture 16 Demo 4
For constant speed request, show the system response as the
bulb load is decreased from 6 bulbs to 2 bulbs, and then from 2
bulbs to no load: (I only have 4 fingers. If you have more
fingers you can go from6 bulbs to no bulbs in one step )
12
Demo___________
fingers, you can go from 6 bulbs to no bulbs in one step.)
690 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
7
System Verification
Now that we have a working system, we
need to test the system and compare the
results to our simulations
13
results to our simulations.
If measured and simulated results do not
agree, we will need to determine the
discrepancy and update out plant models
if necessary.
We will start with steady state testing.
System Tests
We will be measuring the rpm on the next
few tests.
We can use a volt meter and measure the
14
We can use a volt meter and measure the
encoder output to determine the system
rpm.
Remember that the nameplate spec for
the encoder is 2.5 V per 1000 rpm.
691 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
8
System Tests
Although these are steady state tests, you
will learn a great deal about the system
transient response as you turn on an off
15
transient response as you turn on an off
light bulbs.
You will be able to see and hear overshoot
in the system rpm as you turn on and off
light bulbs.
Bulb Load Test, rpm = 1200 rpm
Set Integral Gain = 0. With No load, set
the rpm to 1200. Observe how the rpm
changes as the load changes from0 bulbs
16
changes as the load changes from 0 bulbs
to 6 bulbs. (Measure the rpm for various
gains and loads.)
P_Gain No
Bulbs
1 Bulb 2 Bulbs 3 Bulbs 4 Bulbs 5 Bulbs 6 Bulbs
1 1200
10 1200
100 1200
692 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
9
Bulb Load Test, rpm = 1800 rpm
Set Integral Gain = 0. With No load, set
the rpm to 1800. Observe how the rpm
changes as the load changes from0 bulbs
17
changes as the load changes from 0 bulbs
to 6 bulbs. (Measure the rpm for various
gains and loads.)
P_Gain No
Bulbs
1 Bulb 2 Bulbs 3 Bulbs 4 Bulbs 5 Bulbs 6 Bulbs
1 1800
10 1800
100 1800
Bulb Load Test, rpm = 2400 rpm
Set Integral Gain = 0. With No load, set
the rpm to 2400. Observe how the rpm
changes as the load changes from0 bulbs
18
changes as the load changes from 0 bulbs
to 6 bulbs. (Measure the rpm for various
gains and loads.)
P_Gain No
Bulbs
1 Bulb 2 Bulbs 3 Bulbs 4 Bulbs 5 Bulbs 6 Bulbs
1 2400
10 2400
100 2400
693 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
10
Integral Gain Tests
For the next tests, we will keep the rpm
constant at the 1800 rpm.
We will then specify a fixed proportional
19
We will then specify a fixed proportional
gain, and observe the system response for
varying values of integral gain.
Note that these are steady state
responses.
Integral Gain Test, rpm = 1800
Set Proportional Gain =1. With No load, set the
rpm to 1800. Observe how the rpm changes as
the load changes from 0 bulbs to 6 bulbs.
20
(Measure the steady state rpm for various
integral gains and loads.)
I_Gain No
Bulbs
1 Bulb 2 Bulbs 3 Bulbs 4 Bulbs 5 Bulbs 6 Bulbs
1
10
100
694 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
11
Integral Gain Test, rpm = 1800
Set Proportional Gain =10. With No load, set
the rpm to 1800. Observe how the rpm changes
as the load changes from 0 bulbs to 6 bulbs.
21
(Measure the steady state rpm for various
integral gains and loads.)
I_Gain No
Bulbs
1 Bulb 2 Bulbs 3 Bulbs 4 Bulbs 5 Bulbs 6 Bulbs
1
10
100
Integral Gain Test, rpm = 1800
Set Proportional Gain =100. With No load, set
the rpm to 1800. Observe how the rpm changes
as the load changes from 0 bulbs to 6 bulbs.
22
(Measure the steady state rpm for various
integral gains and loads.)
I_Gain No
Bulbs
1 Bulb 2 Bulbs 3 Bulbs 4 Bulbs 5 Bulbs 6 Bulbs
1
10
100
695 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
12
Fixed Step Size Test
For the next tests, we will keep the rpm
constant at the 1800 rpm.
Choose a values for the integral and
23
Choose a values for the integral and
proportional gains that give the system,
the best response.
We will keep these values constant in the
next set of tests and see the effect of
changing the fixed step size.
Controller Step Size Test
Set Proportional Gain =___. Set Integral Gain =
___. With No load, set the rpm to 1800. Observe
how the rpm changes as the load changes from
0 bulbs to 6 bulbs (Measure the steady state
24
0 bulbs to 6 bulbs. (Measure the steady state
rpm for various values of the system step size.)
Step
Size
(sec)
No
Bulbs
1 Bulb 2 Bulbs 3 Bulbs 4 Bulbs 5 Bulbs 6 Bulbs
0 1 0.1
0.01
0.001
0.00001
696 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
13
SIL Tests
We would like to compare the measured
results to the simulated results.
Repeat all of the above tests using the
25
Repeat all of the above tests using the
model from Lecture 10A Model 3.
(SIL) Bulb Load Test, rpm = 1200 rpm
Set Integral Gain = 0. With No load, set
the rpm to 1200. Observe how the rpm
changes as the load changes from0 bulbs
26
changes as the load changes from 0 bulbs
to 6 bulbs. (Measure the rpm for various
gains and loads.)
P_Gain No
Bulbs
1 Bulb 2 Bulbs 3 Bulbs 4 Bulbs 5 Bulbs 6 Bulbs
1 1200
10 1200
100 1200
697 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
14
(SIL) Bulb Load Test, rpm = 1800 rpm
Set Integral Gain = 0. With No load, set
the rpm to 1800. Observe how the rpm
changes as the load changes from0 bulbs
27
changes as the load changes from 0 bulbs
to 6 bulbs. (Measure the rpm for various
gains and loads.)
P_Gain No
Bulbs
1 Bulb 2 Bulbs 3 Bulbs 4 Bulbs 5 Bulbs 6 Bulbs
1 1800
10 1800
100 1800
(SIL) Bulb Load Test, rpm = 2400 rpm
Set Integral Gain = 0. With No load, set
the rpm to 2400. Observe how the rpm
changes as the load changes from0 bulbs
28
changes as the load changes from 0 bulbs
to 6 bulbs. (Measure the rpm for various
gains and loads.)
P_Gain No
Bulbs
1 Bulb 2 Bulbs 3 Bulbs 4 Bulbs 5 Bulbs 6 Bulbs
1 2400
10 2400
100 2400
698 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
15
(SIL)Integral Gain Test, rpm = 1800
Set Proportional Gain =1. With No load, set the
rpm to 1800. Observe how the rpm changes as
the load changes from 0 bulbs to 6 bulbs.
29
(Measure the steady state rpm for various
integral gains and loads.)
I_Gain No
Bulbs
1 Bulb 2 Bulbs 3 Bulbs 4 Bulbs 5 Bulbs 6 Bulbs
1
10
100
(SIL) Integral Gain Test, rpm = 1800
Set Proportional Gain =10. With No load, set
the rpm to 1800. Observe how the rpm changes
as the load changes from 0 bulbs to 6 bulbs.
30
(Measure the steady state rpm for various
integral gains and loads.)
I_Gain No
Bulbs
1 Bulb 2 Bulbs 3 Bulbs 4 Bulbs 5 Bulbs 6 Bulbs
1
10
100
699 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
16
(SIL) Integral Gain Test, rpm = 1800
Set Proportional Gain =100. With No load, set
the rpm to 1800. Observe how the rpm changes
as the load changes from 0 bulbs to 6 bulbs.
31
(Measure the steady state rpm for various
integral gains and loads.)
I_Gain No
Bulbs
1 Bulb 2 Bulbs 3 Bulbs 4 Bulbs 5 Bulbs 6 Bulbs
1
10
100
(SIL) Controller Step Size Test
Set Proportional Gain =___. Set Integral Gain =___.
With No load, set the rpm to 1800. Observe how the rpm
changes as the load changes from 0 bulbs to 6 bulbs.
(Measure the steady state rpm for various values of the
32
( y p
system step size. Use the same values of gain as we did
for the physical system in slide 25.)
Spec
Size
(sec)
No
Bulbs
1 Bulb 2 Bulbs 3 Bulbs 4 Bulbs 5 Bulbs 6 Bulbs
0 1 0.1
0.01
0.001
0.00001
700 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
17
Comparison of SIL and
Measured Results
U th t bl b l t th
33
Use the tables below to compare the
measured results to the simulated results.
No new measurements are needed.
J ust place both measured and simulated
results in the same table results in the same table.
Turn in the tables below.
Lecture 16 Comparison 1200 rpm
Compare SIL results to measured (act) results.
Set Integral Gain =0. With No load, set the rpm
to 1200. Observe how the rpm changes as the
load changes from0 b lbs to 6 b lbs
34
load changes from 0 bulbs to 6 bulbs.
P_Gain No
Bulbs
1 Bulb 2 Bulbs 3 Bulbs 4 Bulbs 5 Bulbs 6 Bulbs
SIL Act SIL Act SIL Act SIL Act SIL Act SIL Act SIL Act
1
1200 1200
10
1200 1200
100
1200 1200
701 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
18
Lecture 16 Comparison 1800 rpm
Compare SIL results to measured (act) results.
Set Integral Gain =0. With No load, set the rpm
to 1800. Observe how the rpm changes as the
35
p g
load changes from 0 bulbs to 6 bulbs.
P_Gain No
Bulbs
1 Bulb 2 Bulbs 3 Bulbs 4 Bulbs 5 Bulbs 6 Bulbs
SIL Act SIL Act SIL Act SIL Act SIL Act SIL Act SIL Act
1
1800 1800
10
1800 1800
100
1800 1800
Lecture 16 Comparison 2400 rpm
Compare SIL results to measured (act) results.
Set Integral Gain =0. With No load, set the rpm
to 2400. Observe how the rpm changes as the
36
p g
load changes from 0 bulbs to 6 bulbs.
P_Gain No
Bulbs
1 Bulb 2 Bulbs 3 Bulbs 4 Bulbs 5 Bulbs 6 Bulbs
SIL Act SIL Act SIL Act SIL Act SIL Act SIL Act SIL Act
1
2400 2400
10
2400 2400
100
2400 2400
702 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
19
Lecture 16 Comparison 1800 rpm
Compare SIL results to measured (act) results.
Set Proportional Gain =1. With No load, set the rpm to
1800. Observe how the rpm changes as the load
changes from 0 bulbs to 6 bulbs.
37
I_Gain No
Bulbs
1 Bulb 2 Bulbs 3 Bulbs 4 Bulbs 5 Bulbs 6 Bulbs
SIL Act SIL Act SIL Act SIL Act SIL Act SIL Act SIL Act
1800 1800
1
1800 1800
10
1800 1800
100
1800 1800
Lecture 16 Comparison 1800 rpm
Compare SIL results to measured (act) results.
Set Proportional Gain =10. With No load, set
the rpm to 1800. Observe how the rpm changes
38
p p g
as the load changes from 0 bulbs to 6 bulbs.
I_Gain No
Bulbs
1 Bulb 2 Bulbs 3 Bulbs 4 Bulbs 5 Bulbs 6 Bulbs
SIL Act SIL Act SIL Act SIL Act SIL Act SIL Act SIL Act
1
1800 1800
10
1800 1800
100
1800 1800
703 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
20
Lecture 16 Comparison 1800 rpm
Compare SIL results to measured (act) results.
Set Proportional Gain =100. With No load, set
the rpm to 1800. Observe how the rpm changes
39
p p g
as the load changes from 0 bulbs to 6 bulbs.
I_Gain No
Bulbs
1 Bulb 2 Bulbs 3 Bulbs 4 Bulbs 5 Bulbs 6 Bulbs
SIL Act SIL Act SIL Act SIL Act SIL Act SIL Act SIL Act
1
1800 1800
10
1800 1800
100
1800 1800
Lecture 16 Comparison Step Size Test
Compare SIL results to measured (act) results.
Set Proportional Gain =___ (optimum value). Set
integral Gain =___ (optimum value). With No load, set
the rpmto 1800. Observe howthe rpmchanges as the
40
the rpm to 1800. Observe how the rpm changes as the
load changes from 0 bulbs to 6 bulbs.
Spec
Size
(sec)
No
Bulbs
1 Bulb 2 Bulbs 3 Bulbs 4 Bulbs 5 Bulbs 6 Bulbs
SIL Act SIL Act SIL Act SIL Act SIL Act SIL Act SIL Act
0 1 0.1
0.01
0.001
0.00001
704 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
21
Questions?
705 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
1
Introduction to Model-Based
Systems Design
Lecture 17: Lecture 17:
Improved Bulb Model
Intro to Design of Experiments
Model Problems - Motor
When we first designed our plant, we
understood that the models we created
were very idealized:
2
were very idealized:
The motor model uses a fictitious a torque
curve.
The motor is 100% efficient.
The is no current limit on the motor. (For us,
this would be a limit on the DC power supply ) this would be a limit on the DC power supply.)
706 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
2
Model Problems - Generator
The generator has the same non-idealities as
the motor, plus a few more that we need to
consider:
3
For our load (generator combined with the light
bulbs), we assumed that the load torque was a
linear function of the rpm.
In reality, a bulb looks like a temperature
dependent resistance. The temperature
depends on the bulb voltage, which in turn
depends on the generator speed.
Generator Model
The experience we have gained by using
our motor-generator system has shown us
the following about the generator:
4
the following about the generator:
The output voltage is a function of the rpm.
The output voltage drops as we draw more
current from the generator.
We would like to create a model that
i l d b th f th ff t includes both of these effects.
(After we do the bulb model.)
707 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
3
Bulb Model
The bulb looks like a temperature
dependent resistor (with a large positive
temperature coefficient)
5
temperature coefficient).
As the temperature of the resistor goes up, its
resistance goes up.(Or so we think.)
The power drawn by the bulb is the voltage
squared divided by the bulb resistance.
The resistance is a function of the bulb power The resistance is a function of the bulb power,
since more bulb power heats up the bulb.
We will create a model that includes all of
these effects.
J ust as a reminder, the old generator and bulb load is
shown below:
Old Generator Load Model
6
In this model, the bulb resistance is constant and we
calculate the generator torque by dividing the generator
voltage by the bulb resistance.
708 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
4
We will use the following model for the generator that includes all of
the bulb effects:
New Generator Load Model
7
The generator will produce an output voltage based on the
t d d l d t generator speed and load current.
The bulb will draw a current that is dependent on the voltage across
it (thus including temperature effects).
The generator current is the number of bulbs times the current
through one bulb.
New Plant Model
We can measure the light bulb I-V characteristic
if we have a variable voltage power supply.
We will use the Model-Based Calibration toolbox
8
to:
Design a set of experiments.
Measure the bulb and generator characteristics with
the specified set of experiments.
Create a model for the measured data and export it to
Sim link Simulink.
We could also use the measured data to:
Create a look up table.
Implement a Simulink function.
709 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
5
Blub Model
We will first develop the model of the bulb.
The input to the model is the bulb voltage.
The output of the mode is the bulb current
9
The output of the mode is the bulb current.
We will use the Model-Based Calibration toolbox
to set up a set of experiments for us to measure
the bulb characteristic.
To start the Model-Based Calibration, type
mbcmodel at the Matlab command prompt: mbcmodel at the Matlab command prompt:
Model-Based Calibration Toolbox
All of the files we create will be saved in
the current working directory.
Select File and then New Test Plan from
10
Select File and then New Test Plan from
the Model Browser menus:
710 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
6
Model-Based Calibration Toolbox
11
Select a One-Stage model and click the
OK button.
Next, click on One-Stage to
select it.
Model-Based Calibration
12
One-Stage selected.
Double-click here.
711 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
7
Model-Based Calibration
13
This box allows us to specify the inputs to
our model and the ranges for those inputs.
We only have a single input for our model.
Fill in the dialog box as shown next:
Model-Based Calibration
14
Symbol: Voltage
Min: 0
Max: 15
Transform: None
We specified a range of 0 to 15 volts.
Note that the Signal field is a 3-character
abbreviation that you can use for the signal. abbreviation that you can use for the signal.
Click the OK button when done. Note that the
signal will be displayed on the block diagram.
712 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
8
Model-Based Calibration
15
Inputs listed here.
Next, double-click here.
Model-Based Calibration
16
This dialog box allows us to set up the type of
curve we think the will best fit our model. curve we think the will best fit our model.
A typical resistor has a straight line current-
voltage (I-V) characteristic (a first order
polynomial a straight line).
713 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
9
Model-Based Calibration
We know that the resistance of the bulb will
change with temperature.
Thus, the bulb I-V characteristic will deviate from
17
,
a straight line. (How much we dont know
weve never done this before.)
We will guess that it will deviate slightly from a
straight line so a 2
nd
or 3
rd
order polynomial
should be a good fit.
We can change the model later if the model we
pick does not fit the data very well.
We will choose a 3
rd
order polynomial model:
Model-Based Calibration
18
Polynomial spline
selected.
Order set to 3.
Minimize PRESS
selected.
Click the OK button when done.
714 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
10
Model-Based Calibration
19
Next, right-click here and
select Design
Experiment.
Model-Based Calibration
20
Next, select File and then New Design from the
Design Editor menus.
715 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
11
Model-Based Calibration
21
Model-Based Calibration
Select Design and then Optimal from the
Design Editor menus:
22
For a 3
rd
order polynomial fit, we For a 3 order polynomial fit, we
need a minimum of 4 points.
Since we are not really sure a 3
rd
order polynomial will work, we will
specify that we want a 16 additional
points.
More points will take more time to More points will take more time to
measure (and thus be more
expensive for your company), but it
will also help reduce the effects of
measurement error on our model.
716 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
12
Model-Based Calibration
23
After clicking the OK
button, the tool will
calculate the voltage
points for the model.
16 additional
points selected.
When complete, the selected points
will be displayed. (Shown on next
slide.)
Model-Based Calibration
24
20 t 20 measurement
points.
Click on here twice and
change the name to
20 measurement
points.
change the name to
Light Bulb Model.
717 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
13
Model-Based Calibration
25
Name changed.
Model-Based Calibration
The points for our experiment have been
created.
We will export themto an Excel
26
We will export them to an Excel
spreadsheet so that we can easily collect
data.
Select File and then Export Design from
the Design Editor menus:
718 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
14
Model-Based Calibration
Select a comma separated values format:
27
f O
CSV format selected.
After clicking the OK button, you can open
the file with Excel.
Model-Based Calibration
We are now ready to
run our experiment.
For the specified
28
p
voltages, we will
measure the bulb
current.
Note that we do not
have to use the exact
same voltages, but
we will try to come
close.
719 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
15
Measured Data
The data can be saved
in a standard Excel
format file
29
format file.
Model-Based Calibration
Close the Design Editor by selecting File
and then Close from the menus:
30
Switch to the Model Browser window.
720 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
16
Model-Based Calibration
Before we continue, select File and then
Save Project from the Model Browser
Windowto save our design
31
Window to save our design.
Save the file as Light_Bulb_Model.mat.
Select TestPlan and then New Data from
the menus:
32
Click here to open a
data file.
S l t th E l fil ith Select the Excel file with
the collected data.
Click the Next button.
Click the Finish button.
Columns in our
measured data.
721 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
17
33
Select this option
to match
measured data to
our model created
earlier.
Click the Next button.
Voltage signal in
our model
matched to
voltage signal in
the measured
Click the Next button.
data.
34
Responses are the
model outputs.
(1) Select Current.
(2) Click the Add button.
Current added as
an output.
Click the Finish button.
722 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
18
Data Editor
The Data Editor opens and displays the data.
35
This column contains NaN
values because the
column below Name
contained the text Units
and no data.
Data Editor
Select View, Current View, and then 2D Data
Plot from the menus:
36
723 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
19
Data Editor
To view the data, make the selections below
37
Select all tests.
Select current for
the y-axis
Select voltage for
the x-axis
Data Editor
We see that the current-voltage characteristic is
indeed not a straight line.
You can experiment with other views if you want
38
p y
to view the data differently. (For a one-
dimensional plot, there is not that much else to
look at.)
Select File and then Close to close the Data
Editor.
When you return to the Model Browser, you will
notice that there is now a response model for the
Current.
724 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
20
Model Browser
39
Select this response. p
We will zoom in to view the fit a little better.
Measured data and the 3
rd
order
polynomial model.
Model Browser
40
This point is an outlier
the model does not go
through this point!
725 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
21
Model Browser
Suppose that we want to try a different fit to our
data.
41
Select One-Stage here.
Right-click here and select
New Response Model
New Response Model
42
Click here to create a new model for
the measured Current output.
Our first model was a cubic
polynomial. Click here to select
a different type of model.
Select a 2
nd
order
polynomial and click
the OK button twice.
726 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
22
New Response Model
43
New model listed here.
Click on the text to
change the names of the
models.
New Response Model
44
Models renamed here.
You can display the plots for each fit by
clicking on the name of the model.
727 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
23
3
rd
Order Response Model
45
3
rd
Order
model
selected.
2
nd
Order Response Model
46
2
nd
Order
model
selected.
728 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
24
The Two Models are Slightly Different
47
2
nd
Order Fit.
Note that neither model matches too well at zero volts.
3
rd
Order Fit.
Models
You can experiment with more models.
An 8
th
order polynomial comes pretty close
to modeling the bulb at lowvoltages
48
to modeling the bulb at low voltages.
An 8
th
order poly is much more expensive
to calculate than a 3
rd
order polynomial
8
th
Order Fit.
729 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
25
Model Export
Once we are happy with the model, we
can export it to Simulink.
We have several different models so we
49
We have several different models, so we
need to select the model we want to
export.
3
rd
order
model
selected.
Select File and then Export Models from
the Model Browser menus.
Model Exporter
Click the OK
50
Select Simulink here.
Note the file name.
Click the OK
button.
Simulink will start
and display the
model.
Resize the model
to see the ports.
730 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
26
Export Model
51
We can now copy this block and use it in
our motor-generator model.
Export Model
You should probably add a saturation
block to limit the input voltage range of the
model
52
model.
The accuracy of the model outside the
range of measured data will be
questionable.
731 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
27
Model Evaluation
Next, we will look at a tool for evaluating
our model.
Select one of your models:
53
y
Select Model, Evaluate, and then Fit
Model selected.
, ,
Data from the Model Browser menus:
Model Evaluation
54
This view gives us a good view of how
well the model fits the measured data.
From this view, we see that it is not that
good of a fit at lower voltages.
732 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
28
Model Evaluation
Select View and then Response Surface.
55
Plot selected Plot selected.
Model Evaluation
56
Table selected.
Points from
model fit.
V lt
We can copy this data
and paste it into a 1-D
Simulink look up table.
Voltage
points from
model.
This would be another
method to implement the
model.
733 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
29
Simulink Look-Up Table
To create a look up table in Simulink:
57
Highlight and copy this.
Paste it into the input values
field of a 1-D look-up table
Simulink Look-Up Table
To create a look up table in Simulink:
58
Highlight and copy this.
Paste it into the Table data field
of a 1-D look-up table.
Do not forget to add brackets
around the data.
734 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
30
Simulink Look-Up Table
Select a Lookup method of Interpolation-Use
End Values so that we only use the table for the
values that we actually measured.
59
Interpolation-Use End Values
method selected.
Simulink Look-up Table
When you click the OK button on the
Look-Up table dialog box, the curve should
be shown on the block:
60
be shown on the block:
735 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
31
New Bulb Model
You can use either the look-up table
model or one of the models that we
exportedfromthe MCBModel tool
61
exported from the MCBModel tool.
One note is that with the models
generated by MCBModel, none of the
ones we created had zero current when
the bulb voltage was zero.
This is unphysical and will cause the
generator to apply a negative torque when
the generator is not spinning.
New Bulb Model
This negative torque will tend to cause the
motor-generator system to spin backwards
whenthe motor-generator systemshould be
62
when the motor generator system should be
at rest and no motor torque is applied.
We probably will not notice anything because
this torque might be small compared to the
rotational friction we added.
To avoid this problem, we will use the look-
up table for our model.
736 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
32
New Generator Model
63
Lookup table added here. Input is
voltage, the output is current.
New Generator Model
64
This limiter has limits of 0 and 15to This limiter has limits of 0 and 15 to
limit the input voltage to the table. This
limit is redundant since we selected
the Interpolation-Use End Values
method for the lookup table.
737 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
33
Lecture 17
Generator Model With Bulb
Demo your working model with the New
Bulb Load
65
Bulb Load
Demo___________
Lecture 17
Start Lecture 17 MBC Project
66
738 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
1
Introduction to Model-Based
Systems Design
Lecture 18: Lecture 18:
Verification and Validation
MathWorks SystemTest
Verification and Validation
As we develop our model, we will make periodic
changes.
Every time we make a change, we need to verify
2
y g , y
that our system passes a rigorous set of tests.
Ideally, we would have a predefined set of tests,
and run all of the tests each time we make a
change.
We would then analyze the results of the tests y
an determine if our system meets the required
specifications.
739 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
2
Verification and Validation
Ideally, we would set up a battery of tests
at several levels in the Model-Based-
SystemDesign process:
3
System Design process:
Simulations (SIL)
Real-Time Simulations (xPC)
Hardware in the Loop Simulations
We want to create a set of tests that
thoroughly test the system, and then run
all of the tests automatically.
Verification and Validation
Proving that a set of tests completely
covers a design is a challenge and will not
be discussedhere
4
be discussed here.
Instead, we will demonstrate a tool that:
Allows us to create a set of tests
Run the tests automatically
Perform data analysis on the results
Evaluate the results against performance
specifications.
740 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
3
Verification and Validation
We will use a MathWorks tool called
SystemTest and use it to verify the step
response of our system
5
response of our system.
We will start with model Lecture17_Model3.
Save the model as Lecture18_Model1.
We will need to make a few changes to the
model. model.
Changes to the top level are shown next:
Motor-Generator
Model
6
Slider and constant
replaced by step input.
Slider removed.
741 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
4
Model Changes
We are going to need to collect some data
from our model when it runs.
We will do this using the To Workspace
7
We will do this using the To Workspace
part located in the Simulink / Sinks
library.
This part writes data from the Simulink
simulation to a MATLAB variable in the
workspace.
Place one in the controller subsystem and
connect as shown:
Controller Subsystem
8
To Workspace part
added.
742 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
5
Controller Subsystem
Change the parameters of the To
Workspace block as shown:
9
Name of the MATLAB
variable where the data is
saved.
Do not limit the size of the
array Scaled_RPM_Signal
where the data is saved.
A decimation value of 3 would take
every 3
rd
point. A decimation of 1 takes
every point every point.
Sample_Time was defined in the init file
as 0.001 seconds. Dave a data point
every 0.001 seconds.
Store data as an array.
Controller Subsystem
10
After clicking the OK button, the
name of the MATLAB variable
where the data is stored is
displayed here.
743 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
6
Controller Subsystem
11
Add another To Workspace here
with the same settings except a
different variable name.
Controller Subsystem
12
Add another To Workspace here
with the same settings except a
diff t i bl
This block is called Clock and is in
the Simulink / Sources library.
This block outputs the current
simulation time.
different variable name.
744 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
7
Model Changes
Next, change the simulation ending time to
1 second:
13
Changed to 1 Changed to 1.
Init File
We do not need to make any changes to
the Init_File for our model.
The SystemTest tool will run our Simulink
14
The SystemTest tool will run our Simulink
model a large number of times.
The contents of the Init_File never change
during the test and we never need to
change the values of the variables defined
in the Init_File during the series of tests.
745 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
8
Init File
We only need to run the init file once, then
we can run our model through the series
of tests
15
of tests.
Instead of using a Callback to have
Simulink run the init file, we will use the
Pre Test function in SystemTest to
initialize the needed parameters once.
We will change the CallBack function in
Simulink so that it does not ruin our
Init_File.
Init_File
Right-click somewhere on the motor-
generator Simulink model and select
Model Properties fromthe menu:
16
Model Properties from the menu:
746 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
9
Init_File
Select the Callbacks tab and select the
InitFcn selection
17
InitFcn selected.
Callbacks tab
selected.
Delete this, click the
OK button and Save OK button, and Save
your mdoel.
Post Processing File
The test we are going to run is to observe
the step response of our motor-generator
systemand calculate the rise time
18
system and calculate the rise time.
We will then determine if the system
passes the step response specification.
We need to create a MATLAB script that
calculates the rise time from the measured
data:
747 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
10
Rise Time MATLAB Script
%Find the rise time.
%Calculate the Rise Time
19
% Define the rise time as the amount of time it takes the
% output got go from 10% of the final value to 90%
% of the final value.
Ten_Pct_Value =0.1*Speed_Step;
Ninety_Pct_Value =0.9*Speed_Step;
Ten_Pct_Time =0;
Ninety_Pct_Time =0;
Rise Time MATLAB Script
%Find the time of the 10% Point.
for i =1: (length(time)-1)
if (Scaled_RPM_Signal (i) <=Ten_Pct_Value) &&...
(Scaled RPM Signal (i+1) >=Ten Pct Value)
20
(Scaled_RPM_Signal (i 1) Ten_Pct_Value)
Ten_Pct_Time=time(i);
end
%Find the time of the 90% Point.
if (Scaled_RPM_Signal (i) <=Ninety_Pct_Value) &&...
(Scaled_RPM_Signal (i+1) >=Ninety_Pct_Value)
Ninety_Pct_Time=time(i);
end
end
748 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
11
Rise Time MATLAB Script
% Calculate the rise time as the difference between the
% 10% and 90% points. If a rise time is not found, set the
% Rise_Time to infinity.
21
if (Ten_Pct_Time >0) && (Ninety_Pct_Time >0)
Rise_Time =Ninety_Pct_Time-Ten_Pct_Time;
else
Rise_Time =inf;
end
SystemTest
We will now use MathWorks System test
to run the model at various speeds and
measure the step response for different
22
measure the step response for different
loads.
Type systemtest at the MATLAB
command prompt to run the tool.
749 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
12
SystemTest
23
SystemTest
Select File and then Save As from the
System Test menus
Change the dircetory to your MATLAB
24
Change the dircetory to your MATLAB
working directory
Save the file as Motor_Generator.test
The tree will change as shown:
750 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
13
25
Test file named
here.
Pre Test
The pretest section allows us to initialize
variables that we could use in our test.
This is done once even though multiple
26
This is done once even though multiple
tests will be run.
We would like to use the Pre Test section
to initialize the workspace constants that
we use in our model.
Select the Pre Test leaf of the tree:
751 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
14
Pre Test
27
Pre Test selected.
Pre Test
28
Next, click here to add a
New Test Element to the
pretest Section.
Pre Test selected.
752 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
15
Pre Test
29
Select MATLAB to create a
MATLAB script that will
execute once before all of
the tests are run.
Pre Test
30
New MATLAB script.
D l h Delete the comments
shown here, copy the
contents of file Init_File.m,
and paste them in this
window.
753 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
16
31
Main Test
The remainder of our elements will go in
the Main Test Section.
Select the section as shown:
32
Select the section as shown:
Main Test selected.
754 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
17
Test Vectors
Test vectors are MATLAB row vectors
whose values are used as inputs to our
tests
33
tests.
If we have a test vector with the values [1,
3, 5,8,10], a test will be run for the value 1,
the value 5, the value 8, and the value 10.
We can assign the values of the test
vectors to parts of our Simulink model.
Test Vectors
For each magnitude of step, we would like
to measure the rise time for different bulb
loads
34
loads.
We will set the bulb load test vector to [0,
1, 2, 3, 4, 5,6].
We will call this test vector ST_Bulb_Load.
We will have a total of 35 tests. We will have a total of 35 tests.
We now need to define these test vectors.
755 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
18
35
Main Test selected.
Test Vectors Test Vectors
selected.
Click the New button.
Test Vectors
36
Test Vectors name.
Test Vectors values.
After clicking the OK After clicking the OK
button, the values will be
displayed in the
SystemTest window
756 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
19
37
Values will be displayed in Values will be displayed in
the SystemTest window.
Repeat the procedure to
add a test vector called
ST_Bulb_Load with the
values [0, 1, 2, 3, 4, 5, 6].
38
Notice we have 35 tests defined:
Step 0 to 0.1: Bulb loads of 0, 1, 2, 3, 4, 5, 6.
Step 0 to 0.2: Bulb loads of 0, 1, 2, 3, 4, 5, 6. p
Step 0 to 0.3: Bulb loads of 0, 1, 2, 3, 4, 5, 6.
Step 0 to 0.4: Bulb loads of 0, 1, 2, 3, 4, 5, 6.
Step 0 to 0.5: Bulb loads of 0, 1, 2, 3, 4, 5, 6.
New test vector defined.
757 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
20
Main Test
Next we will define the Main Test Section.
In this section, for each iteration in the test
vectors we want to:
39
vectors, we want to:
Run our Simulink model
Calculate the Rise Time
Plot the desired and measured rpm response.
Determine if the response meets a
performance criteria.
Init_File
Before adding your Simulink Model to the
test plan, manually run the Init_File to
define workspace parameters for the
40
define workspace parameters for the
model.
The Pre_Test function will not run until we
start the test, so some model parameters
are not known and will generate an error
message.
758 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
21
41
Main Test selected.
Select Simulink.
42
Click here and browse for
model Lecture18_Model1.
Simulink will start and
open the model.
759 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
22
43
Model loaded.
Next, we need to map our
test vectors to Simulink test vectors to Simulink
blocks. Click the New
Mapping button.
44
Select Select Block to Add to associate
a test vector with a Simulink block Your a test vector with a Simulink block. Your
Simulink model will pop up and you can
click on a block.
760 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
23
Simulink Model
45
Select this block.
When you switch back to SystemTest,
the block will be listed.
46
Step Block
listed here.
The Step block has several
parameters for which we can
specify a value. Click here to
see the list. see the list.
761 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
24
47
The step occurs at time Step time. We set this time to 0.1 seconds
in the block. At time zero, the step has a value specified by parameter
Initial value. We set this value to 0 in the block. At the step time, the
bl k t t f th i iti l l t th Fi l l d h ld block output goes from the initial value to the Final value, and holds
at the final value for the remainder of the simulation.
We want the value Final Value to be set by the test vector so select
it.
48
Next, click here to associate
the Simulink block parameter
with a test vector Choose test with a test vector. Choose test
vector ST_Desired_Speed.
762 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
25
49
Step Block parameter takes on
the values of test vector
ST Desired Speed ST_Desired_Speed.
50
Repeat the procedure to associate constant
block Number of Bulbs to test vector
ST_Bulb_Load.
763 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
26
Simulink Output
For our reports, we would like to include a
plot of the desired and measured step
response
51
response.
To do this, we need to get the data from
the MATLAB workspace to System Test.
In our Simulink model, we added three To
Workspace blocks so that we would save
the desired data in the workspace.
We now need to take that data and save it
as a test variable.
52
Select New Mapping and
the To Workspace Block.
764 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
27
53
Select Block To Workspace.
In my model, this was signal
Scaled RPM Signal Scaled_RPM_Signal.
54
Since we havent defines any
test variables, select New
Test Variable and then name Test Variable and then name
it ST_Scaled_RPM_Signal.
765 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
28
55
Test Variables tab selected.
New variable listed here.
New variable listed here.
Simulink Output
Repeat the procedure for the other Two
Workspace Blocks:
To Workspace ST Desired RPM
56
To Workspace ST_Desired_RPM
To Workspace2 ST_time
766 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
29
57
Plots
After each Simulink simulation, we want to
plot the desired and measured response.
First, make sure that Simulink is selected in
58
the tree:
Simulink
selected.
767 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
30
59
Select New Test Element
and then Vector Plot. Fill in
the Vector plot as shown
next.
60
ST_time specified for
the XAxis.
ST_Desired_RPMplotted ST_Scaled_RPM_Signal
in red on the Y Axis.
_ _ _ g
plotted in blue on the Y
Axis.
768 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
31
Rise Time
Next, we have to evaluate the data in the
workspace and calculate the Rise Time.
To do this we need to add a MATLAB
61
To do this we need to add a MATLAB
script to the test plan.
Make sure that the Vector Plot is selected.
Vector Plot
Selected.
62
Select New Test Element
and then Matlab. In the
MATLAB window, past in the
rise time script we created rise time script we created
earlier.
769 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
32
63
Script to calculate
the Rise Time.
64
Change these two lines
because the magnitude of
our step input is specified
by the test vector
ST Desired Speed. ST_Desired_Speed.
770 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
33
Rise Time
We are going to use the value of
Rise_Time calculated in the script to
evaluate against a constraint in
65
evaluate against a constraint in
System_Test.
We will need to define Rise_Time as a
Test Variable.
66
(1) Test Variables
selected.
(2) Click the new (2) Click the new
button.
Name the variable Rise_Time. An
initial value is not necessary. Click
the OK button.
771 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
34
Test Variables
Repeat the process to add a variable
called Rise_Time_limit.
Give this variable an Initial Value of 0.4.
67
This variable will be used as a constraint
where we will check to see that the
measured rise time is less than or equal to
this limit.
68
Rise_Time added with no
initial value.
Rise_Time_limit added
with an initial value of 0.4.
772 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
35
Constraints
Next we need to add our constraints to
verify the performance of our system.
We can add several constraints and then
69
We can add several constraints and then
measure what proportion of our tests pass
the constraints.
For this example, we will only have a
single constraint.
Constraints
We would like to check the constraint after
we run the MATLAB script that calculates
the rise time
70
the rise time.
Select MATLAB from the tree:
MATLAB leaf selected.
773 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
36
71
Select Limit Check from
the menu.
72
General Check tab
selected.
Click the New button to
create a new limit check
(Constraint).
774 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
37
73
Select Rise_Time
here.
Select <=
here.
Select
Rise_Time_limit
here.
Leave these at their
default.
74
To pass a test, the
simulation must pass all of
the conditions we created.
If a test fails, we go on to
the next test because we
want to see how many tests
pass.
775 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
38
After Test Runs
We are now finished setting up our test.
We would like to create a report that we
canviewafter all 35 tests run
75
can view after all 35 tests run.
Select the Motor_Generator leaf.
Motor_Generator leaf
selected. selected.
76
This option as we are not
saving any of the data saving any of the data
from the run.
Select this option to create
an HTML report.
776 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
39
Running the Test
Select Run from the SystemTest menus or
click the Play button.
A plot should display after each test
77
A plot should display after each test
showing the desired and measured step
response.
78
Plot from iteration 2.
Progress of all tests being
run.
777 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
40
79
M lt h th t l Cli k h t i th My results show that only
12 of the 35 tests passed
the 0.4 second rise time
condition.
Click here to view the
results in a web browser.
The next three screens
show part of my report.
80
778 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
41
81
Test 1 passed with a rise time
of 0.048 seconds. However, ,
this test had a load of 0 bulbs.
82
Test 4 failed with a rise time of
0.8894 seconds. The desired
step was 0.1 and we had a 3
bulb load.
Big delta due to
proportional gain.
Slow rise due to
small integral gain.
779 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
42
New Test
The controller model in the previous test
had a proportional gain of 5 and an
integral gain of 10
83
integral gain of 10.
Lets try increasing the integral gain to
reduce the rise time.
Run the test again and measure the
results.
84
M lt h th t l Cli k h t i th My results show that only
34 of the 35 tests passed
the 0.4 second rise time
condition.
Click here to view the
results in a web browser.
The next two screens
show part of my report.
780 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
43
85
Test 7 passed with a rise time
of 0.135 seconds. The desired
step was 0 1 and we had a 6 step was 0.1 and we had a 6
bulb load.
86
The increased integral
gain does cause
overshoot.
781 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
44
Lecture 18 Demo 1
We notice that we now have overshoot.
Add a second test that verifies that the
overshoot is less than 5%
87
overshoot is less than 5%.
You need to check to see how many tests
pass both the rise time specification and
the overshoot specification.
Demo___________
Lecture 18 Exercise 1
Verify summary of results showing that 34
of 35 runs passed the specification.
88
Demo___________
782 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.
45
Lecture 18 Project 3
Start Project 3.
89
783 of 783
Copyright (c) 2013 by Marc E. Herniter and Zac Chambers.
This work is made available under the terms of the Creative Commons Attribution-ShareAlike 3.0 license,
http://creativecommons.org/licenses/by-sa/3.0/.