Simulink ®
Simulink ®
Simulink ®
R2016b
www.mathworks.com
www.mathworks.com/sales_and_services
User community:
www.mathworks.com/matlabcentral
Technical support:
www.mathworks.com/support/contact_us
Phone:
508-647-7000
Trademarks
MATLAB and Simulink are registered trademarks of The MathWorks, Inc. See
www.mathworks.com/trademarks for a list of additional trademarks. Other product or brand
names may be trademarks or registered trademarks of their respective holders.
Patents
MathWorks products are protected by one or more U.S. patents. Please see
www.mathworks.com/patents for more information.
Revision History
September 2005
March 2006
September 2006
March 2007
September 2007
March 2008
October 2008
March 2009
September 2009
March 2010
September 2010
April 2011
September 2011
March 2012
September 2012
March 2013
September 2013
March 2014
October 2014
March 2015
September 2015
October 2015
Online only
Online only
Online only
First printing
Second printing
Third printing
Fourth printing
Fifth printing
Online only
Online only
Online only
Online only
Sixth printing
Seventh printing
Eighth printing
Ninth printing
Tenth printing
Eleventh printing
Twelfth printing
Thirteenth printing
Fourteenth printing
Online only
March 2016
September 2016
Fifteenth printing
Sixteenth printing
Contents
Introduction
Simulink Product Description . . . . . . . . . . . . . . . . . . . . . . . . .
Key Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1-2
1-2
Model-Based Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
What Is Model-Based Design? . . . . . . . . . . . . . . . . . . . . . . . .
Modeling, Simulation, and Analysis with Simulink . . . . . . . .
Interaction with MATLAB Environment . . . . . . . . . . . . . . . .
1-3
1-3
1-4
1-5
1-6
1-6
1-9
1-11
1-13
1-13
1-15
1-17
1-17
1-18
1-19
2-2
2-2
2-3
2-5
Contents
3-2
3-2
3-2
3-7
3-24
vi
2-7
2-8
2-10
2-11
2-11
2-14
2-16
2-17
2-17
4-2
4-2
4-3
4-5
1
Introduction
Simulink Product Description on page 1-2
Model-Based Design on page 1-3
Basic Modeling Workflow on page 1-6
Basic Simulation Workflow on page 1-13
Documentation and Resources on page 1-17
Introduction
Key Features
Graphical editor for building and managing hierarchical block diagrams
Libraries of predefined blocks for modeling continuous-time and discrete-time systems
Simulation engine with fixed-step and variable-step ODE solvers
Scopes and data displays for viewing simulation results
Project and data management tools for managing model files and data
Model analysis tools for refining model architecture and increasing simulation speed
MATLAB Function block for importing MATLAB algorithms into models
Legacy Code Tool for importing C and C++ code into models
1-2
Model-Based Design
Model-Based Design
In this section...
What Is Model-Based Design? on page 1-3
Modeling, Simulation, and Analysis with Simulink on page 1-4
Interaction with MATLAB Environment on page 1-5
1-3
Introduction
1-4
Model-Based Design
More About
1-5
Introduction
Define System
Identify the components of a system, determine physical characteristics, and define
dynamic behavior with equations. You perform these steps outside of the Simulink
software environment and before you begin building your model.
1-6
1-7
Introduction
For discrete systems, difference equations describe the rate of change for variables,
but the equations are defined only at specific times. For example, the control signal
from a discrete propositional-derivative controller is given by the difference equation
It = Ia + Ib.
1-8
Model System
Build individual model components that implement the system equations, and define the
interfaces for passing data between components.
Introduction
Model Component
Some questions to ask before you begin to model a component:
What are the constants for each component and the values that do not change unless
you change them?
What are the variables for each component and the values that change over time?
How many state variables does a component have?
After you create the top-level structure for your model, you can begin to model the
individual components.
Use the system equations to create a Simulink model.
Add Simulink blocks in the Simulink Editor. Blocks represent coefficients and
variables from the equations. Connect blocks to other blocks. Lines connecting blocks
represent data transfer.
Build the model for each component separately. The most effective way to build a
model of a system is to consider components independently.
Start by building simple models using approximations of the system. Identify
assumptions that can affect the accuracy of your model. Iteratively add detail until
the level of complexity satisfies the modeling and accuracy requirements.
Simulate Component
After you build a model component, you can simulate to validate the design.
Predict the expected output of the integrated model components.
Add blocks to approximate actual input and control values. Add sink blocks to record
and visualize results.
Validate the model design by comparing the simulation output to your expected
output.
If the result does not match your prediction, change your model to improve the
accuracy of your prediction. Changes include model structure and parameters.
1-10
Integrate Model
Connect component models and simulate the model response over time to validate the
design.
1-11
Introduction
More About
1-12
1-13
Introduction
1-14
Import Data
Simulink enables you to import data into your model.
Use the Signal Builder block to import input signals from a Microsoft Excel file
(XLSX, XLS) or a comma-separated value file (CSV). Simulink saves data imported
from an Excel file using a Signal Builder block with the model and loads the data into
memory when you open the model.
For large data sets, use a MATLAB MAT-file with an Inport block.
Run Simulation
Using measured input data, run a simulation and save results.
1-15
Introduction
Evaluate Result
Evaluate the differences between simulated output and measured output data. Use the
evaluation to verify the accuracy of your model and how well it represents the system
behavior. Decide if the accuracy of your model adequately represents the dynamic system
you are modeling.
Change Model
Determine the changes to improve your model. Model changes include:
Parameters Some parameters were initially estimated and approximated. Optimize
and update parameters.
Adding structure Some parts or details of the system were not modeled. Add
missing details.
More About
1-16
From the Simulink Library Browser toolbar, select the Help button
From the Simulink Editor menu, select Help > Simulink > Simulink Help.
Right-click a Simulink block, and then select Help.
From the model Configuration Parameters dialog box or a block parameters dialog
box, right-click a parameter label, then select Whats This?
1-17
Introduction
Simulink Examples
Simulink provides example models that illustrate key modeling concepts and Simulink
features. To view a list of examples:
From the Simulink Editor menu, select Help > Simulink > Examples.
From the Help browser, open the Simulink product page, and then click Examples at
the top right.
To open the Simulink model for an example, click the Open Model button.
1-18
Website Resources
You can access additional Simulink resources on the MathWorks website, including a
description of capabilities, technical articles, tutorials, and hardware support.
http://www.mathworks.com/products/simulink
Related Examples
1-19
2
Simple Simulink Model
2-2
Simulating this model integrates a sine wave signal to a cosine signal and then displays
the result, along with the original signal, in a Scope window.
Start MATLAB. From the MATLAB Toolstrip, click the Simulink button
2-3
Click the Blank Model template, and then click the Create Model button.
The Simulink Editor opens with a new block diagram.
2-4
Select File > Save as. In the File name text box, enter a name for your model, For
example, simple_model.slx. Click Save.
From the Simulink Editor toolbar, click the Simulink Library button
2-5
2-6
Set the Library Browser to stay on top of the other desktop windows. On the Library
Browser toolbar, select the Stay on top button
.
Search for a Sine Wave block. In the search box on the browser toolbar, enter sine,
and then press the Enter key. Simulink searches the libraries for blocks with sine
in their name or description, and then displays the blocks.
Get detailed information about a block. Right-click a block, and then select Help for
the <block name>. The Help browser opens with the reference page for the block.
View block parameters. Right-click a block, and then select Block Parameters. The
block parameters dialog box opens.
2-7
2-8
In the left pane of Simulink Library Browser, select the Sources library.
Drag the Sine Wave block to the Simulink Editor. A copy of the Sine Wave block
appears in your model.
After the search icon appears, type scope, and then from the list, select Scope.
Add the following blocks to your model using one of the approaches you used to add
the Sine Wave and Scope blocks.
Library
Block
Continuous
Integrator
Signal Routing
Bus Creator
Your model should now have the blocks you need for the simple model.
2-9
Move the Scope block after the Bus Creator block output. You can either:
Click and drag the block.
Select the block, and then press the arrow keys on your keyboard.
2-10
Move the blocks until your model looks similar to the following figure.
Block Connections
Most blocks have angle brackets on one or both sides. These angle brackets represent
input and output ports:
The > symbol pointing into a block is an input port.
The > symbol pointing out of a block is an output port.
You connect block output ports to input ports with lines. The lines represent signals with
time-varying values.
2-11
Position the cursor over the output port on the right side of the Sine Wave block.
The pointer changes to a cross hair (+).
Click, and then drag a line from the output port to the top input port of the Bus
Creator block.
While holding down the mouse button, the connecting line appears as a red dotted
arrow.
Release the mouse button when the pointer is over the output port.
Simulink connects the blocks with a line and an arrow indicating the direction of
signal flow.
2-12
Connect the output port of the Integrator block to the bottom input port on the Bus
Creator block using a Ctrl key shortcut:
a
The Integrator block connects to the Bus Creator block with a signal line.
5
Connect the Bus Creator block to the Scope block by aligning ports:
a
Click and drag the Scope block until its input port is aligned with the Bus
Creator output port. A light blue line appears between the ports when the blocks
line up horizontally.
2-13
Click the end of the blue arrow. The arrow changes to a black signal line
connecting the blocks.
2-14
Position the cursor where you want to start a branch line. Click, and then drag the
cursor away from the line to form a dotted-red line segment.
Drag the cursor to the Integrator input port, and then release the mouse button.
The new line, called a branch line, carries the same signal that passes from the Sine
Wave block to the Bus Creator block.
Drag line segments to straighten and align with blocks. Your model is now complete.
2-15
From the Simulink Editor menu, select Simulation > Model Configuration
Parameters. The Configuration Parameters dialog box opens to the Solver pane.
Tip Alternatively, you can open the Model Configuration Parameters dialog box by
clicking the parameters button
2-16
In the Stop time field, enter 20. In the Max step size field, enter 0.2. With the
Solver parameter set to auto, Simulink determines the best numerical solver for
simulating your model.
Click OK.
Run Simulation
After you define the configuration parameters, you are ready to simulate your model.
1
From the Simulink Editor menu bar, select Simulation > Run.
The simulation runs, and then stops when it reaches the stop time specified in the
Model Configuration Parameters dialog box.
Tip Alternatively, you can control a simulation by clicking the Run simulation
button
2-17
2-18
Change the appearance of the display. For example, select white for the display color
and axes background color (icons with a pitcher).
Select black for the ticks, labels, and grid colors (icon with a paintbrush).
Change signal line colors for the Sine Wave to blue and the Integrator to red. To see
your changes, click OK or Apply.
2-19
Related Examples
2-20
3
Model a Dynamic System
or click ex_househeat_modeling to open and review the model you will build.
The model for this system includes three components: heater, thermostat, and room.
3-3
dmheaterair
cair (Theater - Troom ).
dt
Since the mass of air per unit time from the heater is constant, replace dmheaterair / dt with
a constant M heaterair and simplify the equation to
dQgain
dt
3-4
kA(Troom - Toutside )t
.
D
(Troom - Toutside )
R
dQgain dQloss
dTroom
1
=
dt
mroomair cair dt
dt
Collect Data
Most of the parameter values needed for the house heating model are published in
standard property tables. The flow rate for the heater is from a manufacturer data sheet.
List the variables and coefficients from your equations and check for dimensional
consistency between the units. Since the unit of time for the model is hours, convert
published values for the thermal property of materials from units of seconds to hours.
Equation Variables and Constants
You can use the constant names and values in this table when building the model.
Equation
Variable or
Coefficient
Description
Units
square meter
meter
Equation
Variable or
Coefficient
Description
Units
joule
dQ/dt
joule/hour
k_fiberglass = 136.8,
k_glass = 2808
r
r = 1/k
R
Thermal resistance
hour degree/joule
kilogram
m_room_air = 1470
The mass of the heater
m_heater_air is not needed for
this model.
dm/dt
3-6
kilogram/hour
Equation
Variable or
Coefficient
Description
Units
kilogram/hour
M_heater_air = 3600
Specific heat capacity
joule/kilogram degree
c_air = 1005.4
Theater
degree Celsius
T_heater = 50
Troom
degree Celsius
, or in the Command
Window, enter
simulink
Click the Blank Model template, and then click the Create Model button.
From the Simulink Editor toolbar, click the Library Browser button
.
3-7
Add Subsystem blocks. Drag three Subsystem blocks from the Ports & Subsystems
library to the new model in the Simulink Editor.
Each new Subsystem block contains one Inport (In1) and one Outport (Out1) block.
These blocks define the subsystem interface with the next higher level in a model
hierarchy.
Each Inport block creates an input port on the Subsystem block, and each Outport
block creates an output port. Add more blocks for additional input and output
signals.
6
3-8
dQgain
dt
The temperature difference is the current room temperature subtracted from the
constant temperature of the heater (T_heater). See Equation Variables and Constants
on page 3-5.
1
In the Heater subsystem, type Sum to display a list of blocks with Sum in the name.
Double-click the Sum block on the list. When prompted for a list of signs, type |-+ to
place - and + input ports on the block, and press Enter.
Add a Constant block to model the constant air temperature from the heater. Set
the block Constant value parameter to T_heater. You will define the value of
T_heater in the Model Workspace.
Add an Inport block to connect the room temperature signal to another part of your
model.
Add labels to the signal lines to help trace model components to the equations and
model requirements. Double-click above a signal line and enter a label.
3-9
The heat gain per degree is the constant rate of mass from the heater (M_heater_air)
multiplied by the specific heat capacity of air (c_air). See Equation Variables and
Constants on page 3-5.
1
Add a Gain block to the Heater subsystem. Set the Gain parameter to
M_heater_air*c_air. You will define the values of these variables in the Model
Workspace.
Connect the output of the Sum block to the input of the Gain block.
The thermostat sends an on/off signal equal to 1 (on) or 0 (off) to the heater. Because the
input signal is binary, you can use a Multiplier block to model a switch.
3-10
Remove the connection between the In1 and Out1 blocks. Select the line and press
Delete.
Add a Product block. Resize the block vertically to align the block in your diagram.
Connect the In1 block to the first block input and the block output to the Out1 block.
Rename the blocks as shown.
Connect the output from the Gain block to the second input. Move all the connected
blocks together. Draw a selection box around the blocks you want to move, and then
drag them to the new location.
The Inport and Outport blocks create ports that connect this subsystem to other
subsystems in your model.
3-11
You can define variables in the MATLAB Workspace and then enter their names in the
block parameter dialog boxes. However, a more robust method is to use the Simulink
Model Workspace because variable values are saved with the model.
1
In the Simulink Editor, select View > Model Explorer > Model Workspace.
In Model Explorer, select Add > MATLAB Variable. In the middle pane, click
the new variable Var and enter the variable name for a block parameter. For this
example, enter T_heater.
In the right pane, in the Value box, enter the value of the variable. For this
example, enter 50 degrees. Click Apply.
Using the same approach, add the variable M_heater_air with a value of 3600
kilogram/hour and c_air with a value of 1005.4 joule/kilogram degree.
Set up the heater model for simulation. Think about the expected behavior and how you
can test that behavior with a simulation. When the thermostat output is 1, the expected
output from the gain is (50 25) x 3600 1005.3 = 9.05 107.
1
3-12
Notice the Heater block has a second input port and that each port corresponds to an
Inport block or Outport block in the subsystem.
2
Add a Constant block to represent the room temperature, and set the value to 25
(degrees Celsius). Add a Step block for a temporary Heater (on/off) signal. Set Step
time to 4.
Add a Scope block and connect it to the Heat Flow output. Connect the rest of the
blocks as shown.
Open the Configuration Parameters dialog box. In the Simulink Editor, select
Simulation > Model Configuration Parameters.
Verify that Stop time is set to 10, Type is set to Variable-step, and Solver to
ode45.
Simulate the model. Select Simulation > Run, or click the Run button
View the scope trace. Right-click the y-axis and select Configuration Properties
properties. On the Display tab, set Y-limits (Minimum) to -2e7 and Y-limits
(Maximum) to 12e7.
3-13
3-14
If the set room temperature is warmer than the room temperature, the thermostat
model sends an on signal to the heater model. To determine if this is the case, begin by
subtracting the room temperature from the set temperature.
1
Open the Thermostat subsystem. Add a Sum block to it. Set the List of signs
parameter to |+ to place + and input ports on the block.
Connect the Inport block to the + input of the Sum block. The Inport block sets the
room temperature.
Add a second Inport block and connect it to the input of the Sum block. This second
Inport block is the current room temperature from the room subsystem. Move the
output port to the top of the block. Right-click the block and select Rotate & Flip >
Counterclockwise. If you want, you can reshape the block as shown in the figure
by dragging the handles.
Model the signal from the thermostat with a hysteresis value of 2 s Celsius.
1
In the Thermostat subsystem, add a Relay block. Set the Switch on point
parameter to 2, and the Switch off point parameter to -2.
3-15
Prepare the Thermostat subsystem for simulation. Think about the expected behavior
of the thermostat and how you can test that behavior with a simulation. When the room
temperature rises above the thermostat setting by 2 degrees, the thermostat output is
0. When the room temperature moves below the thermostat setting by 2 degrees, the
thermostat output is 1.
1
Notice the Thermostat subsystem now has a second input port. Each input port
corresponds to an Inport block in the subsystem.
3-16
Add a Constant block for setting the room temperature. Set the Constant parameter
to 25 (degrees Celsius).
Add a Sine Wave block to represent the changing room temperature. Set the
Amplitude parameter to 10, the Bias to 20, and the Frequency to 0.5. These
parameters give a variation above and below the temperature set point of 25.
Double-click the Floating Scope. From the toolbar, click the Signal Selector button
.
In the Signal Selector dialog box, select the Constant, Sine Wave, and
Thermostat check boxes, and then click Close.
Open the Configuration Parameters dialog box. In the Simulink Editor, select
Simulation > Model Configuration Parameters. Verify Stop time is set to 10,
Type to Variable-step, and Solver to ode45.
Simulate the model. As the simulation runs, the Floating Scope plots the results.
Open the Floating Scope to view the scope trace. Right-click the display and
select Configuration Properties. Select the Display tab, and then set Y-limits
(Minimum) to -2 and Y-limits (Maximum) to 35.
3-17
The rate of temperature change in the room (dTroom/dt) is defined by the equation
dQgain dQloss
dTroom
1
=
dt
mroomair cair dt
dt
3-18
Open the Room subsystem block. In the Room subsystem, add a Sum block. Set the
List of signs parameter to |+.
Connect In1 to the + input. The input is the heat gain (dQgain/dt) from the heater
component. The input connects to the heat loss (dQloss/dt) from the room.
Add a Gain block. Set the Gain parameter to 1/(m_room_air*c_air). Connect the
output of the Sum block to the input of the Gain block. Label signals as shown in the
figure. Dotted signal lines are signals you will connect later.
The output of the Gain block is the change in room temperature (dTroom/dt). To get the
current room temperature (Troom), integrate the signal.
1
This equation is the rate of thermal energy loss through the walls and windows:
3-19
In the Room subsystem, add a Sum block. Set the List of signs parameter to |+.
Right-click the block and select Rotate & Flip > Flip Block.
Click the signal line for Troom, press Ctrl, and then click and drag a branch signal
line. Connect the line to the + input on the Sum block.
Add another Inport block and connect it to the input of the Sum block. Rename it
to Outside Temperature.
Add another Gain block. Set the Gain parameter to 1/R_equivalent. Right-click
the block and select Rotate & Flip > Flip Block.
You can define parameters in the MATLAB Workspace and then enter their names in
the block parameter dialog boxes. However, a more robust method is to use the Simulink
Model Workspace, which saves parameter values.
3-20
In the Simulink Editor, select View > Model Explorer > Model Workspace.
In the middle pane, click the new variable Var and enter the name m_room_air. In
the right pane, enter the value 1470 (kilograms).
Click Apply.
Prepare the Room subsystem for simulation. Think about the expected behavior and how
you can test that behavior with a simulation. When the heater is off (Heat Gain = 0) and
the initial temperature of the room (20) is above the outside temperature (10), heat loss
should continue until the room temperature is equal to the outside temperature.
1
The Room block now has a second input port. Each inport port corresponds to an
Inport block in the subsystem.
2
Add a Constant block and connect it to the Heat Gain input. Set the Constant
value parameter to 0 (degrees Celsius) to mean that the heater is turned off.
Add another Constant block and connect it to the Outside Temperature input. Set
the Constant value parameter to 10 (degrees Celsius).
Add and connect a Scope block to view the changing room temperature.
3-21
The room temperature starts at the initial room temperature set in the Integrator
block. Because the heat gain is 0, the signal decays to the outside temperature (10).
The simulation validates the expected behavior.
Prepare Room Model for Second Simulation
Set the constant outside temperature to a value above the initial room temperature (20).
1
3-22
In the Constant block that is connected to the Outside Temperature input, set
Constant value to 30 (degrees Celsius).
Room temperature starts at the initially set temperature of 20, but with the heater
off (heat gain = 0) the room temperature rises to the outside temperature.
This result was unexpected because you didnt explicitly model this behavior.
However, the equation that models the heat loss also models the heat gain when the
outside temperature is above the inside room temperature.
3-23
3-24
Open your model with the completed subsystems. Remove any blocks you added to
test the separate components.
Open the Room subsystem. Double-click the Inport block labeled Heat Gain. In the
Inport dialog box, set Port number to 2. The Heat Gain port moves to the bottom of
the Room subsystem.
Connect the Heater (on/off) signal from the Thermostat subsystem output to the
Heater subsystem input.
Add a Constant block to set the thermostat room temperature. Set Constant value
to 20 (degrees Celsius).
Add a Sine Wave block to represent the changing room temperature. Set the
parameters Amplitude to 10 (degrees Celsius), Bias to 15, and Frequency to 0.5.
Add a Floating Scope block and connect the blocks as shown in the figure.
click the Layout button. Select two boxes. A second empty graph appears below the
first.
8
In the Signal Selector dialog box, and from the Select signals for object drop-down
list, select Axes 1. Select the Heater check box.
10 From the Select signals for object drop-down list, select Axes 2. Select the
Constant and Sine Wave check boxes.
11 In the Floating Scope window, right-click the top display and select Configuration
Properties. Set Y-limits (Minimum) to 0 and Y-limits (Maximum) to 20e7.
12 Right-click the bottom display and select Configuration Properties. Set Y-limits
(Minimum) to 0 and Y-limits (Maximum) to 35.
Simulate Model and Evaluate Results
Simulate the model using the default stop time of 10 and the default solver ode45.
1
Open the Floating Scope and view the simulation results. The top graph is the heater
gain while the lower graph shows the changing room temperature modeled with a
sine wave.
3-25
Note: If you get an error indicating Simulink cannot display a signal due to block
reduction optimization, clear the Block reduction check box in the Configuration
Parameters dialog box.
3-26
Open your model with completed subsystems. Remove any blocks you added to test
the separate components.
3-27
3-28
Add a Constant block for setting the room temperature. Set Constant value
parameter to 20 (degrees Celsius).
Add a Sine Wave block to represent the changing outside temperature. Set Bias to
12, Amplitude to 5, Frequency to 2*pi/24, and Phase to 180.
In the Floating Scope, right-click the graph and select Configuration Properties.
Set Y-limits (Minimum) to 5 and Y-limits (Maximum) to 25.
3-29
With Simulink models, you can interactively change model parameters and then observe
changes in the behavior of your model. This approach allows you to evaluate your model
quickly and validate your design.
Change the outside temperature in the Sine Wave block so that upper values are above
the thermostat temperature.
3-30
In the Sine Wave dialog box, set Bias to 19 and Amplitude to 5. These settings
show what happens when outside temperature is higher than inside temperature.
3-31
After validating the model design, verify the correctness of the model by comparing
simulations with real system data. See Simulate a Dynamic System on page 4-2.
More About
3-32
4
Basic Simulation Workflow
Before preparing a model for simulation, build the model and validate the model design.
See Model a Dynamic System on page 3-2.
4-2
Prepare Simulation
Add interfaces to input measured data, add control signals, and update model
parameters. See Basic Simulation Workflow: Prepare for Simulation on page 1-13.
Determine Simulation Goals
Before simulating a model, consider your goals and requirements. For the house heating
system, these are the goals:
Verify that the simulation represents the behavior of the modeled system.
Improve the accuracy of the model by optimizing parameters.
Collect and Plot System Data
Measure parameters for an actual house heating system. You will use the measured data
with model simulations to verify the behavior and accuracy of your model.
1
Measure the outside and inside temperatures of a house every 6 minutes for 24
hours.
Enter the measured data into a Microsoft Excel worksheet. You can open and
example spreadsheet at matlabroot\help\toolbox\simulink\examples
\ex_househeat_measured_data.xls.
4-3
Plot the measured data in a chart. The inside temperature data shows temperature
spikes when the hot air heater turns on. This pattern is typical for a hot air heating
system.
4-4
Replace the In1 block with a Signal Builder block. The Signal Builder block imports
data from a Microsoft Excel worksheet.
Replace the In2 block with a Constant block and set the value to 20. The Constant
block sets the thermostat temperature.
4-5
In the Signal Builder, select File > Import from File. Browse to and
select the file matlabroot\help\toolbox\simulink\examples
\ex_househeat_measured_data.xls or use your data file.
Expand the Sheet1 node to view the data columns. Select the Sheet1 check box,
which also selects the contents.
The Data to Import pane shows:
Excel file name
Worksheet in the file
Columns of data in the worksheet
4-6
From the Placement for Selected Data list, select Replace existing dataset.
Click Confirm Selection. Click OK.
Respond to the message that appears. Select No, import without saving.
View imported signals in the Signal Builder window. The figure shows the signal
group as it appears in the Signal Builder plots.
Select Group > Rename and enter a group name. For example, enter Measured
Data. Close the Signal Builder.
The Signal Builder block now has two output ports, one for each column of data
imported from the worksheet.
4-7
In the model, reconnect the Outside Temperature port from the Signal Builder block
to the signal line.
10 Add an Outport block above the Out1 block. Connect the Inside Temperature output
from the Signal Builder block to this block.
Configure your model to save (log) signal data during a simulation. You can view logged
signals from each simulation using the Simulink Data Inspector.
1
In the model, select Simulation > Model Configuration Parameters. In the left
pane, select Data Import/Export.
The data logging parameters appear in the right pane.
4-8
Select the Record logged workspace data in Simulation Data Inspector check
box.
Identify signals to display in the Simulink Data Inspector, name the signals if they do
not have a name, and set the logging parameters.
1
Right-click the Inside Temperature signal from the Signal Builder block and select
Properties.
In the Signal name box, enter Measured Room Temperature. Select the Log
signal data check box. A logging badge
appears above the signal line.
Signal name
Room Temperature
Run Simulation
After importing data and enabling logging of data for the signals, you can run a
simulation.
1
In the model, open the Configuration Parameters dialog box and select the Solver
pane. Set Stop time to 24 (hours), Type to Variable-step, and Solver to ode45.
The model simulation runs from 0.0 to 24.00 hours using the outside temperature
data from the Signal Builder block as input.
Compare Simulation Results with Measured System Data
Use the Simulink Data Inspector to compare the simulated output signals with measured
data.
4-9
In the Simulink Editor toolbar, click the Simulation Data Inspector button
A run appears in the Runs pane each time you simulate the model.
2
In the Simulink Data Inspector, select each signal check box. Selecting a signal plots
the signal in the graph.
The top signal is the measured inside (room) temperature. The middle signal
is the simulated room temperature. The bottom signal is the measured outside
temperature.
Determine Changes to Model
One obvious change to the model is the hysteresis of the thermostat. The simulated room
temperature oscillates between 18 and 22 degrees around the temperature set point of 20
degrees. The measured room temperature oscillates between 20 and 25 degrees with the
same set point.
4-10
Change Switch on point from 2 to 0 because the difference between the room
temperature and set point is 0.
Change Switch off point from -2 to -5. When the room temperature is 5 degrees
above the set point, you want to turn the heater off. The set point is 5 degrees below
the room temperature.
Expand the list of logged signals by selecting the arrow to the left of logsout. Select
Run1 check boxes for Measured Outside Temperature and Measured Room
Temperature. Select the Run2 check box for Room Temperature.
Review the signals. The minimum and maximum values for the simulated room
temperature now match the measured room temperature values.
4-11
4-12
In the Create Report dialog box, select Inspect Signals. Click Create Report. The
report opens in a web browser.
4-13
In the Simulation Data Inspector, click Send to Figure. A plot of the simulated
signals opens in a MATLAB figure window.
More About
4-14