Exercise 6: State-space models...

13
EE4107 - Cybernetics Advanced Faculty of Technology, Postboks 203, Kjølnes ring 56, N-3901 Porsgrunn, Norway. Tel: +47 35 57 50 00 Fax: +47 35 57 54 01 Exercise 6: State-space models (Solutions) A state-space model is a structured form or representation of a set of differential equations. State- space models are very useful in Control theory and design. The differential equations are converted in matrices and vectors, which is the basic elements in MathScript. Assume we have the following differential equations: ̇ ̇ This gives on vector form: [ ̇ ̇ ̇ ] ̇ [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] A general linear State-space model may be written on the following general form: ̇ MathScript has several functions for creating state-space models: Function Description Example ss Constructs a model in state-space form. You also can use this function to convert transfer function models to state-space form. >A = [1 2; 3 4] >B = [0; 1] >C = B' >ssmodel = ss(A, B, C) Sys_order1 Constructs the components of a first-order system model based on a gain, time constant, and delay that you specify. You can use this function to create either a state-space model or a transfer function model, depending on the output parameters you specify. >K = 1; >T = 1; >H = sys_order1(K, T) Sys_order2 Constructs the components of a second-order system model >dr = 0.5 >wn = 20

Transcript of Exercise 6: State-space models...

EE4107 - Cybernetics Advanced

Faculty of Technology, Postboks 203, Kjølnes ring 56, N-3901 Porsgrunn, Norway. Tel: +47 35 57 50 00 Fax: +47 35 57 54 01

Exercise 6: State-space models (Solutions)

A state-space model is a structured form or representation of a set of differential equations. State-

space models are very useful in Control theory and design. The differential equations are converted

in matrices and vectors, which is the basic elements in MathScript.

Assume we have the following differential equations:

This gives on vector form:

[

]

[

]⏟

[

]

[

]⏟

[

]

[

]

[

]⏟

[

]

[

]⏟

[

]

A general linear State-space model may be written on the following general form:

MathScript has several functions for creating state-space models:

Function Description Example

ss Constructs a model in state-space form. You also can use this function to convert transfer function models to state-space form.

>A = [1 2; 3 4]

>B = [0; 1]

>C = B'

>ssmodel = ss(A, B, C)

Sys_order1 Constructs the components of a first-order system model based on a gain, time constant, and delay that you specify. You can use this function to create either a state-space model or a transfer function model, depending on the output parameters you specify.

>K = 1;

>T = 1;

>H = sys_order1(K, T)

Sys_order2 Constructs the components of a second-order system model >dr = 0.5

>wn = 20

2

EE4107 - Cybernetics Advanced

based on a damping ratio and natural frequency you specify. You can use this function to create either a state-space model or a transfer function model, depending on the output parameters you specify.

>[A, B, C, D] = sys_order2(wn,

dr)

>ssmodel = ss(A, B, C, D)

step Creates a step response plot of the system model. You also can use this function to return the step response of the model outputs. If the model is in state-space form, you also can use this function to return the step response of the model states. This function assumes the initial model states are zero. If you do not specify an output, this function creates a plot.

>num=[1,1];

>den=[1,-1,3];

>H=tf(num,den);

>t=[0:0.01:10];

>step(H,t);

lsim Creates the linear simulation plot of a system model. This function calculates the output of a system model when a set of inputs excite the model, using discrete simulation. If you do not specify an output, this function creates a plot.

>t = [0:0.1:10]

>u = sin(0.1*pi*t)'

>lsim(SysIn, u, t)

Example:

Given the following state-space model:

[ ] [

] [ ] [

]

[ ] [ ]

The MathScript code for implementing the model is:

% Creates a state-space model

A = [1 2; 3 4];

B = [0; 1];

C = [1, 0];

D = [0];

model = ss(A, B, C, D)

Task 1: State-space models

Task 1.1

Given the following system:

Set the system on the following state-space form:

Solutions:

State-space model:

3

EE4107 - Cybernetics Advanced

[ ] [

]⏟

[ ] [

]

[ ]⏟

[ ] [ ]⏟

Task 1.2

Given the following system:

Set the system on the following state-space form:

Solution:

The state-space model becomes:

[

] [

]⏟

[

] [

]

[ ] [

]⏟

[

]

Task 1.3

Given the following system:

Set the system on the following state-space form:

4

EE4107 - Cybernetics Advanced

Solutions:

State-space model:

[ ] [

]⏟

[ ] [

]⏟

[ ]

[ ]⏟

[ ] [ ]⏟

[ ]

Task 2: Mass-spring-damper system

Given a mass-spring-damper system:

Using Newtons 2. law:

The model of the system can be described as:

( )

Where

– position, – speed/velocity, – acceleration

- damping constant, - mass, - spring constant, – force

Task 2.1

Set the system on the following state-space form:

5

EE4107 - Cybernetics Advanced

Assuming the control signal is equal to the force and that we only measure the position.

Solution:

We set:

This gives:

Finally:

Where the control signal is equal to the force

We only measure the position , i.e.:

The state-space model for the system then becomes:

[ ] [

] [ ] [

]

[ ] [ ]

i.e.:

[

]

[

]

[ ]

Task 2.2

Define the state-space model above using the ss function in MathScript.

Apply a step in u and use the step function in MathScript to simulate the result.

6

EE4107 - Cybernetics Advanced

Start with , , , then explore with other values.

Solution:

MathScript Code:

clear

clc

% Define Parameters in State-space model

c = 1;

k = 1;

m = 1;

% Define State-space model

A = [0, 1; -(k/m), -(c/m)];

B = [0; 1/m];

C = [1, 0];

D = [0];

ss_model = ss(A,B,C,D)

step(ss_model)

This gives:

Task 2.3

Convert the state-space model defined in the previous task to a transfer function ( ) ( )

( ) using

MathScript code.

7

EE4107 - Cybernetics Advanced

Use , , .

Do the same using “pen and paper” and Laplace. Do you get the same answer?

Solution:

MathScript:

In MathScript we can simple use the tf function in order to convert the state-space model to a

transfer function.

H = tf(ss_model)

This gives:

( ) ( )

( )

“Pen and paper”:

We have the equations:

We set , , :

Laplace gives:

Further (setting eq. 1 into eq. 2):

This gives:

or:

8

EE4107 - Cybernetics Advanced

( )

Which gives:

and gives:

( ) ( )

( )

Alternative metod:

The state-space model with , , :

[

] [ ] [

]

[ ] [ ]

Given the state-space model on the form:

We can use the following formula to find the transfer functions:

( ) ( )

( ) ( )

where:

[

] [ ] [ ] [ ]

This gives:

( ) [ ] ([

] [

])

[ ]

Where:

[

] [

] [

]

( ) [

]

( ) [

] [

]

9

EE4107 - Cybernetics Advanced

( ) [ ] [

] [

]

( ) [

] [ ]

This means:

( ) ( )

( ) ( )

, which is the same answer.

Task 3: Block Diagram

Given the following system:

Task 3.1

Find the state-space model from the block diagram.

Note! and .

Solution:

We get the following state-space model from the block diagram:

10

EE4107 - Cybernetics Advanced

This gives:

[ ] [

]⏟

[ ] [

]

[ ]⏟

[ ]

Task 3.2

Implement the state-space model in MathScript and simulate the system using the step function in

MathScript.

Set

And ,

Solution:

Task 4: State-space model to Transfer functions

Given the following system:

11

EE4107 - Cybernetics Advanced

Task 4.1

Find the state-space model on the form (pen and paper):

Solution:

First we do:

This gives:

[ ] [

]⏟

[ ] [

]⏟

[ ]

[ ]⏟

[ ] [ ]⏟

[ ]

Task 4.2

Define the state-space model in MathScript and find the step response for the system. Discuss the

results.

Solution:

MathScript code:

clear,clc

A = [0 1; -1 -3];

B = [0 0; 2 4];

C = [5 6];

D = [7 0];

ssmodel = ss(A,B,C,D)

step(ssmodel)

Step response:

12

EE4107 - Cybernetics Advanced

As you see we get 2 transfer functions because this is a so-called MISO system (Multiple Input, Single

Output).

Task 4.3

Find the following transfer functions:

( ) ( )

( )

( ) ( )

( )

Solution:

In MathScript we can simple do as follows:

H = tf(ssmodel)

This gives the following):

Transfer Function

Input:1 Output:1

7,000s^2+33,000s+17,000

-----------------------

13

EE4107 - Cybernetics Advanced

1,000s^2+3,000s+1,000

Input:2 Output:1

24,000s+20,000

---------------------

1,000s^2+3,000s+1,000

As you see we get 2 transfer functions because this is a so-called MISO system (Multiple Input, Single

Output):

( ) ( )

( )

( ) ( )

( )

Additional Resources

http://home.hit.no/~hansha/?lab=mathscript

Here you will find tutorials, additional exercises, etc.