UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE …

Download Report

Transcript UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE …

Introduction to Simulink

Presentation Outline

What is Simulink?

Basic operations with Simulink

Examples

Exercise

What is Simulink?

Simulink is an interactive tool for modeling, simulating and analyzing dynamic systems.

Simulink integrates seamlessly with MATLAB, providing immediate access to an extensive range of analysis and design tools.

Simulating a dynamic system is a two-step process with Simulink:

create a model of the system to be simulated using Simulink’s model editor (BLOCK DIAGRAM)

use Simulink to simulate the behavior of the system for a specified time span

Launch Simulink

• •

First launch MATLAB.

To open Simulink, type on the MATLAB toolbar.

simulink at the MATLAB command window or click on the Simulink icon

Simulink Block Libraries Simulink provides a library browser that allows you to select blocks from libraries of standard blocks:

Continuous -

blocks that describe linear functions 

Discrete

describe components

-

blocks that discrete-time  

Functions & Tables

general functions and table look-up operations -

Math -

blocks that describe general mathematics functions

Simulink Block Libraries

    

Nonlinear

- blocks that describe nonlinear functions

Signal & systems

- blocks that allow multiplexing, de-multiplexing, implement external input/output, pass data to other parts of the model, create subsystems and perform other functions

Sinks

- blocks that display or write block output

Sources

- blocks that generate signals

Blocksets and toolboxes

of specialized blocks - the extras block library

Creating a New Model

 

Click the model icon in the upper left corner to start a new Simulink file new Select the model the Simulink icon to obtain elements of

Your Workspace Library of elements Model is created in this window Show/hide Library Browser

Block Diagram A Simulink block diagram is a pictorial model of a dynamic system.

It consists of blocks interconnected by lines.

Blocks represent elementary dynamical systems that Simulink knows how to simulate. A block comprises one or more of the following:

A set of inputs.

A set of states.

A set of outputs.

To introduce blocks in your model, choose the block from the library, click on it and drag it in your model. Double clicking on the block will allow you to change the block parameters.

Model Execution Phase In this phase Simulink successively computes the states and the outputs of the system at intervals from the simulation start time to the stop time, using information provided by the model.

Time steps - successive time points at which the states and the outputs are computed.

Step size - the length of time between steps. It depends on the type of solver:

Fixed-step - a smaller step size produces a more accurate simulation but results in a longer execution time.

Model Execution Phase

Variable step - depending on the application, it can produce more accurate results without sacrificing execution speed.

Parameters set up: Simulation > Simulation parameters … Simulink simulates a system when you choose start from the model editor’s simulation menu.

Example 1: a Simple Model

Build a Simulink model that solves the differential equation

x

  3 sin 

Initial condition

x

( 0 )   1 .

First, sketch a simulation diagram of this mathematical model (equation) (3 min.)

Simulation Diagram

 

Input is the forcing function 3sin(2 t ) Output is the solution of the differential equation x(t) x (0) = -1 3sin(2t) (input) x .

1 s integrator x x(t) (output)

Now build this model in Simulink

Select in Input Block Drag a Sine Wave from the Sources block library to the model window

Select an Operator Block Drag an from the Integrator block window Continuous library to the model

Select an Output Block Drag a the Scope Sinks block from library to the model window

Connect Blocks with Signals

Place your cursor on the output port (>) of the block sine wave

Drag from the wave output to the integrator sine input

Drag from the integrator the scope output to input Arrows indicate the direction of the signal flow.

Select Simulation Parameters Double-click on the Sine Wave block to set amplitude = 3 and freq = 2 This produces the desired input of 3sin(2 t )

Select Simulation Parameters Double-click on the Integrator block to set initial condition = -1 This sets our IC x (0) = -1.

Run the Simulation In the model window, from the Simulation pull-down menu, select Start Double-click on the Scope view the simulation results to

Simulation Results To verify that this plot represents the solution to the problem, solve the equation analytically.

The analytical result,

x

(

t

)  1 2  3 2 cos  

matches the plot (the simulation result) exactly.

Example 2

Build a Simulink model that solves the following differential equation

m

x

 

c x

 

kx

f

(

t

) – – – – –

2nd-order mass-spring-damper system Zero ICs Input f(t) is a step with magnitude 3 Parameters: m = 0.25, c = 0.5, k = 1 m ->mass; constant c ->damping factor; k ->spring

Example 2 k m x f (t) c

Create the Simulink Diagram

On the following slides:

The simulation diagram for solving the ODE is created step by step.

After each step, elements are added to the Simulink model.

Optional exercise: first, sketch the complete diagram (5 min.).

Create the Block Diagram

First, solve for the term with highest order derivative

m

x

 

f

(

t

) 

c x

 

kx

Make the left-hand side of this equation the output of a summing block summing block

Drag a Sum block from the Math library Double-click to change the block parameters to rectangular and + - -

Create the Block Diagram

Add a gain (multiplier) the highest-derivative alone block to eliminate the coefficient and produce summing block 1 m

Drag a Gain block from the Math library Double-click to change the block parameters.

Add a title.

The gain is 4 since 1/ m = 4.

Create the Block Diagram

Add integrators to obtain the desired output variable summing block

m

x

 1

m

x

 1

s x

 1

s x

Drag the Integrator Continuous blocks from library ICs on the integrators are zero.

Add a scope from the Sinks library.

Connect output ports to input ports.

Label the signals by double-clicking on the leader line.

Create the Block Diagram

Connect to the integrated signals with gain blocks to create the terms on the right-hand side of the equation summing block

m

x

 1

m

x

 1

s c x

kx

c k

x

 1

s x

  

Double-click on gain blocks to set parameters Connect from the gain block input backwards up to the branch point.

Re-title the gain blocks.

Drag new from the Gain Math blocks library To flip the gain block, select it and choose Flip Block in the Format pull down menu or double-clock on it.

c = 0.5

K = 1.0

Complete the Model

 

Bring all the signals and inputs to the summing block.

Check signs on the summer.

f(t)

input + -

m

x

 1

m

x

c x

kx

1

s c x

x

 1

s k x x x(t)

output

Drag the Source Step library function from the

Double-click on to set parameters. For a step input of magnitude 3, set Final value Step to 3 block

Final Simulink Model

Run the Simulation

Results Underdamped response.

Overshoot of 0.5.

Final value of 3.

Is this expected?

Checking Results

Standard form

x

k m

c k x

 

x

 1

k f

(

t

) 

Natural frequency

n

k m

 2 .

0 

Damping ratio

Static gain

2  

n

c k

   0 .

5

K

 1

k

 1

Checking Results

Damping ratio of 0.5 is less than 1:

– – Expect the system to be underdamped.

Expect to see overshoot.

Static gain is 1:

– – Expect output magnitude to equal input magnitude.

Input has magnitude 3, so does output.

Simulation results conform to expectations

Saving to Workspace Drag the To Workspace block from the Sink library

Saving to Workspace Double click on the Workspace block change the parameters.

To to Check on MATLAB workspace if the variable is there.

Example: plot (tout, x) ; y = sqrt ( x )

Inserting a S-Function Drag a S-Function from the Tables library block Functions &

Inserting a S-Function Double click on the Function block to change the S-Function name and include S additional parameters.

Use the template that comes with Simulink.

Change the template based on your project.

Inserting a S-Function

• • •

Type sfundemos command line.

Double click on Double click on at M-files the MATLAB M-file S-Function Template Save the file in another folder and with another name Change the function name: function [sys,x0,str,ts]= sfungains (t,x,u,flag)

Inserting a S-Function

Change the S-Function size parameters: sizes = simsizes; sizes.NumContStates = 0; sizes.NumDiscStates = 0; sizes.NumOutputs

= 2 ; sizes.NumInputs

= 0 ; sizes.DirFeedthrough = 0; sizes.NumSampleTimes = 1; % at least one sample time is needed sys = simsizes(sizes);

Inserting a S-Function

Edit the mdlOutputs m accordance to your project: function in function sys=mdlOutputs(t,x,u) K1 = 50; K2 = 20; sys = [ K1 K2 ];

Inserting a S-Function Drag a the library Demux block from Signals & Systems

Inserting a S-Function Drag the Display blocks from Sink library Run your project

Exercise Given the following block diagram: u K 1 + + _ K 3

K 2 K 5 K 4 + + y

Exercise 1) Show the correspondence of this block diagram with the RC circuit simulated in Assignment #1 (analytically).

2) Find K 1 , K 2 , K 3 , K 4 and K 5 in accordance to the parameters of Assignment #1.

3) Implement the system in Simulink. Use MATLAB to enter your parameters through a M file.

4) Simulate your system in Simulink and compare the response with your expected results.

5) K 3 is related to the initial conditions.

Incorporate I.C. in your integrator block.