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

36 views (last 30 days)
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')

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 27 Jun 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 Comment
Alberto Mora
Alberto Mora on 5 Feb 2020
Edited: Alberto Mora on 5 Feb 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.

Sign in to comment.

More Answers (0)

Tags

Products


Release

R2008a

Community Treasure Hunt

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

Start Hunting!