Initial condition in state-space block in Simulink

Hi!
I have a very basic problem with Simulink's state-space block. I'm simulating a very basic first order dynamics with time constant T=0.35s. I made a transfer function for the system and also converted it to a state-space representation because this form is the only one where I can give an initial condition for the system. However, it seems that the initial condition does not work correctly. The simulated system is shown below:
I have the transfer function model and the state-space block parallel in Simulink and I feed a constant input signal to both of them (constant block value = 10). First when I simulate the blocks such that the initial condition for the system is 0 (automatically for tf-representation and ss-block). The outputs of the both systems are identical as expected. See the correct results below:
Next I simulate again with the same input signal (constant = 10). However I change the initial condition to -20 for the state-space system. The results are shown below:
As we can see, both system's approach the reference value (10) but the state-space system starts from somewhere else than from -20. This bothers me. As seen in the first simulation, the initial condition 0 (default) works fine. The system starts from zero really. But with -20 the system starts from somewhere near to -55. What is happening? What I do wrong when setting the initial condition?

Respuestas (2)

Sebastian Castro
Sebastian Castro el 16 de Sept. de 2015
Remember that the initial conditions affect the states x and not the outputs y.
My guess is that your C matrix has some scaling factor such that the initial output is -55 and not -20?
Also, there are Transfer Function blocks that allow you specify initial conditions. You can find these under Simulink Extras > Additional Linear.
- Sebastian
Sergio Tamayo
Sergio Tamayo el 24 de Feb. de 2017
Hey Joonas Sainio!
You must identify clearly your state variables, I mean which is x1, x2,..., xn, because the initial conditions works as a vector that affect each state variable that you want. E.g. I have 2 state variables of an inverted pendulum (\theta, \dot{theta}), I want to start the system in pi/36 rad (i.e. 5°). To reach this I write in initial conditions: [pi/36 0], where pi/36 affect my \theta and \dot{theta} (my angular velocity) is kept 0.

2 comentarios

@Sebastian Castro, sir i want simulate a model for 4 input and 4 output the system, i does i can give inputs values such as u1, u2,u3,u4 to the state space model in matlab simulink
how*

Iniciar sesión para comentar.

Categorías

Productos

Preguntada:

el 15 de Sept. de 2015

Comentada:

el 11 de Oct. de 2021

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by