+ All Categories
Home > Documents > StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and...

StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and...

Date post: 08-Jul-2018
Category:
Upload: vuongliem
View: 246 times
Download: 1 times
Share this document with a friend
51
Transcript
Page 1: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith
Page 2: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

StateFlowHands‐On Tutorial

HS/PDEEC 2010‐03‐04

José Pinto – [email protected]

Page 3: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

Session Outline

Simulink and Stateflow

Numerical Simulation of ODEs• Initial Value Problem (Hands‐on)

• ODEs with resets (Hands‐on)

Finite State Machines• FSMs in Stateflow (Hands‐on)

Discrete Event Systems• DESs in Stateflow (Hands‐on)

Hybrid Automata• Hybrid Systems in Stateflow (Hands‐on)

Page 4: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

Simulink and Stateflow1.

Page 5: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

Simulink

Can be used to model and simulate dynamical systems in a comprehensive and graphical way

Models are described as block diagrams (boxes with inputs/outputs)

Page 6: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

Simulink (2)

Models are composed hierarchically allowing:• Modeling of complex systems in a modular and organized way

• Different detail perspectives over the same model at design and simulation time

Page 7: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

Simulink and Stateflow

Simulink includes several built‐inblock types (Model Library)

Additionally, extensions to thislibrary can be created by usersand companies (toolboxes)

Stateflow is one such toolbox

Stateflow can be used to model the behaviour of FSMs

Page 8: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

Numerical Simulation of ODEs2.

Page 9: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

The Initial Value Problem

Example:

?)(2)0(

1

txx

xx=+−=&

[Hespanha, J. P. 05]

Page 10: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

ODE Numerical Simulation ‐ Euler method

[Hespanha, J. P. 05]

Page 11: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

ODE Simulation ‐ Range‐Kutta method

[Hespanha, J. P. 05]

Page 12: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

ODE Simulation – Variable‐step methods

[Hespanha, J. P. 05]

Page 13: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

Solving the IVP in Simulink

Simulink has an inbuilt ODE solver (Integrator)• Different integration methods (including variable step)

Example:

2)0(1 =+−= xxx&

(Integrator toolbox accepts initial value)

Page 14: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

ODEs with resets

x1: speedx2: accelerationg: gravity forcec: ball elasticity constant

Page 15: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

Integrator Block in Simulink

Integrator block accepts a reset port

Whenever a reset is triggered, its new value will be taken from the initial value (x0) port

State port holds previous value of x

State can be used to determine if the integrator needs to be reset (x‐)

Page 16: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

ODEs with resets in Simulink

Page 17: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

ODEs with resets in Simulink (3)

Simulink ODE solver detects zero‐crossing behaviour

When a reset is detected, the solver goes “back intime” to determine where the reset occurred

(zero-crossing detection disabled)

(with zero-crossing detection enabled)

Page 18: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

Finite State Machines3.

Page 19: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

Finite State Machines (FSMs)

Model of systems whose behavior can be modeled as a set of states and transitions between states. This systems are sometimes called reactive systems.

Finite number of states

Systems modeled by FSMs:• Pattern recognition

• ATMs

• Computational processes

• Human intelligence? 

t t

t

Page 20: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

Mathematical Model of FSMs

ε ε

ε

A FSM is a quintuple (Σ,S,s0,δ,F), where:• Σ is an input alphabet (finite set of symbols)

• S is a finite, non‐empty, set of states

• S0 is the initial state, where S0 ∈ S

• δ is a state‐transition function:   δ: S x Σ→ S• F is a finite, (possibly empty) set of final states

Σ = [ε]S = [green, yellow, red]S0 = greenδ = [green/ε→ yellow, yellow/ε→ red, red/ε→ green]F = [red]

Page 21: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

Simulation of FSMs ‐ StateFlow

Simulink block (toolbox) for modeling Finite State Machines

Stateflow charts receive inputs from Simulink and provide outputs (signals, events)

Simulation advances with time

Hybrid state machine model that combines the semantics of Mealy and Moore charts with the extended Stateflow chart semantics. 

Page 22: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

StateFlow – States

Page 23: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

StateFlow – Transitions

Page 24: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

StateFlow – Initial State

Page 25: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

StateFlow – Transition Conditions

Page 26: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

StateFlow – State Actions

entry: Quando entra no estado, during: enquanto está no estado, exit: quando sai do estado

Page 27: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

StateFlow – Transition Actions

Page 28: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

StateFlow – Final States

Page 29: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

Stateflow integration with Simulink

User defines variables to be used inside Stateflowchart

Variable types are important!

Variables may be: • Inputs from Simulink

• Outputs to Simulink

• Local, Constant, …

To define variables use Model Explorer (Ctrl‐R)

Page 30: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

Simulink/Stateflow Hands‐on

Create a stateflow chart that calculates the factorial of a number (uint32), given as input

Page 31: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

Stateflow Debugger

Use “step” to execute the FSM step‐by‐step

Use “browse data” to monitor variable changes

Page 32: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

Discrete Event Systems4.

Page 33: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

Discrete Event Systems

Discrete and qualitative changes 

State transitions caused by occurrence of asynchronous discrete events

Parallel execution of multiple systems

Synchronization by event‐passing

Page 34: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

DES Example

S1

S2

S1

S3

S2evA?

evA?

evB? x<=10 / evA!

x>10 / evB

!

Synchronization through eventsParallel executionreceive? / broadcast!

Page 35: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

Machine composition in Stateflow

Grouped: Inner states are visible

Subcharted: Creates a sub‐chart

Default behavior: sub‐chart is executed

Page 36: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

Parallel composition in Stateflow

Page 37: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

[even(x)] and [~even(x)] are now valid conditions{actions} are called condition actions and are evaluated even when destination (state) is not valid

Composition: Graphical functions

Page 38: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

Event passing in Stateflow

Use Model Explorer to add Event data typesEvents used both as conditions and actions

Page 39: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

DES in Stateflow Hands‐on

Create a stateflow chart that receives 2 inputs (uint32) and sums the number of 1 digits in their binary representation

Use event passing to count all the 1 digits

Page 40: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

Hybrid Automata4.

Page 41: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

Hybrid Automata

[Hespanha, J. P. 05]

Page 42: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

Bouncing Ball re‐revisited

2ℜ=ℜn

q1

}:00,{),,(

}00,{),,(

}:,:{),,(

}{

2221121

121121

221121

1

xcxxxqxxq

qxxqxxq

gxxxqxxqf

qQ

×−=⎯→⎯<∧≤=

⎯→⎯<∧≤=

−==⎯→⎯=

=

ρ

ϕ

&&

Page 43: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

Simulation of Hybrid Automata

[Hespanha, J. P. 05]

Page 44: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

Bouncing Ball in StateFlow

Page 45: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

Bouncing Ball in Stateflow ‐ SIMPLER

Go to “File‐>Chart properties”…

Select “Continuous” update method

Page 46: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

Bouncing Ball in Stateflow ‐ SIMPLER

In Model Explorer you can now local variables oftype double as continuous variables (updatemethod)

Page 47: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

Bouncing Ball in Stateflow ‐ SIMPLER

For each continuous local variable “x”…

stateflow automaticallydefines “x_dot”…

which is derivative of “x”

Page 48: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

Exercise 1: Thermostat Hybrid System

1. Define the HS formally2. Simulate Hybrid System

[Hespanha, J. P. 05]

Page 49: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

Exercise 2: Tank Hybrid System

[Hespanha, J. P. 05]

Page 50: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

Exercise 3: Billiard Hybrid System

Ball inside a 10x10 box

Ball starts at unknown position (x,y) and with unknown velocity vector (vx,vy)

Ball bounces in any of the 4 walls

Constant energy dissipation factor between 0 and 110

Page 51: StateFlow Hands On Tutorial - UPjtasso/stateflowtutorial.pdf · Session Outline Simulink and Stateflow Numerical Simulation of ODEs • Initial Value Problem (Hands‐on) • ODEswith

END

References:• http://www.ece.ucsb.edu/~hespanha/ece229/• http://www.mathworks.com/access/helpdesk/help/pdf_doc/stateflow/sf_ug.pdf


Recommended