Effacer les filtres
Effacer les filtres

control system toolbox - state space model containing constant vectors

14 vues (au cours des 30 derniers jours)
Abhishek Murthy
Abhishek Murthy le 11 Août 2011
I am trying to create a state space model using ss. My system has the following format:
dx/dt = Ax + Bu + f
y = Cx + Du
(x,y and u are states, outputs and inputs resp)
f is a constant real valued vector.
How can I create such models in control toolbox?
After this, I would like to obtain the discrete time equivalent.
Please help.
Abhishek

Réponses (2)

Rajiv Singh
Rajiv Singh le 11 Août 2011
One way is to add a new state to the system whose derivative is zero.
Let X = [x; x2] where x2 is a single variable if f is a scalar.
dX/dt = [A 1; 0 0] X + [B; 0] u
y = [C 0] X + Du
X(0) = [x(0); f]
  1 commentaire
Abhishek Murthy
Abhishek Murthy le 12 Août 2011
Thanks for the reply!
These linear systems are actually "pieces" of a PWA non-linear system. So the initially condition one piece is the final condition of the previous "piece".
I will revert back once I understand how your suggestion will affect this process.
Abhishek

Connectez-vous pour commenter.


Fangjun Jiang
Fangjun Jiang le 12 Août 2011
That means your input has an offset. For example Define New_u=u+Offset, so u=New_u-Offset and put it in your equation.
dx/dt=Ax+B(New_u-Offset)+f;
y=Cx+D(New_u-Offset)
And solve: B*Offset=f for the value of Offset. All shall be proper size matrix.
And you don't need to worry about the constant term at y=Cx+D*New_u-D*Offset because it is just a constant term at your output.
  2 commentaires
Abhishek Murthy
Abhishek Murthy le 12 Août 2011
Thanks for the reply. I want to make sure, I understand your answer completely:
Are you suggesting that the new system will look this?
dx/dt = Ax + B(New_u)
y = Cx + D(New_u)
After the designing the controller with the above state space equations, during operation,
the actual input u to the system will be New_u-offset and output from the system will be be shifted by D*offset ?
Thanks again.
Fangjun Jiang
Fangjun Jiang le 12 Août 2011
Yes. That's what I remembered. After using ss() to solve your problem, your original input and output are just off by a constant term.

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by