How can I set the initial value for the output, "y[1]", when using the LSIM function in Control Systems Toolbox 8.1 (R2008a)?

5 visualizaciones (últimos 30 días)
I am using the function LSIM with a transfer function model. The following code produces an output that initializes at zero even when the x0 argument is set to three:
t = linspace(0,100*pi,1024);
u = 3 + sin(t);
H = tf([1 1],[1 3 3 2]);
lsim(H,u,t,3,'foh')

Respuesta aceptada

MathWorks Support Team
MathWorks Support Team el 27 de Jun. de 2009
When using a transfer function system model, the ability to set an initial value for the output is not available in Control System Toolbox 8.1 (R2008a).
To work around this issue, use a state-space system model. Set the initial state "x0" so that your initial output takes the desired value based on the following state-space equation:
y[0] = C*x[0] + D*u[0]
Consider the following example:
t = linspace(0,100*pi,1024);
u = 3 + sin(t);
H = tf([1 1],[1 3 3 2]);
sys = ss(H)
The model "sys" has vales [0 0.5 0.5] for "C" and zero for "D". To achieve an initial output of "3", you can use an initial state of [0;3;3].
lsim(H,u,t,[0;3;3],'foh')
  1 comentario
Alberto Mora
Alberto Mora el 5 de Feb. de 2020
Editada: Alberto Mora el 5 de Feb. de 2020
How do you define the initial condition of the states?
According to your example, the initial value state could be also [0; 12; -6].
I think that there are infinity combination of the initial value of the states that gives y(0)=3.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Control System Toolbox en Help Center y File Exchange.

Etiquetas

Productos


Versión

R2008a

Community Treasure Hunt

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

Start Hunting!

Translated by