Filter löschen
Filter löschen

(Need Help) How to generate state-space model in Matlab?

2 Ansichten (letzte 30 Tage)
Changwoo Lee
Changwoo Lee am 31 Okt. 2021
Kommentiert: Paul am 31 Okt. 2021
I have a below state-space equation.
--- eq. (1)
where A,B,C,D is coefficient, x is control variable, u is control input, and y is control output.
I want to generate the state-space model from the above equation (1).
For this reason, I tried to convert the equation (1) to state-space model using the matlab command ('ss').
However, It seems that the matlab command ('ss') can be only applied the following form.
--- eq. (2)
(The coefficient A to D in Eqs. (1) and (2) are different values. It was just used for the explanation)
How to generate state-space model of Eq. (1)?

Akzeptierte Antwort

Paul
Paul am 31 Okt. 2021
The output in eq (2) should be:
y = C*x + D*u
i.e., D multiplies the input. It's not a constant in the output.
To your question, the short answer is, no you can't, at least with the built-in functionality of the Control System Toolbox. The system as shown is (in general) not LTI, which is a key property of systems that toolbox is intended to be used for.
However, is it possible a term is missing from eq (1)? That is, should C multiply another input vector, maybe something like:
xdot = A*x + B*u + C*w ?
  2 Kommentare
Changwoo Lee
Changwoo Lee am 31 Okt. 2021
Bearbeitet: Changwoo Lee am 31 Okt. 2021
First of all, thank you for your reply.
1) In Eq. (2), as like your answer, the corret form is y=C*x+D*u. It was my mistake.
2) In Eq. (1), C is constant matrix, and the form (xdot=A*x+B*u+C) is corret.
Refeclting your valuable comment, if assume that w=1, the equation (xdot=A*x+B*u+C*w) might be equal to (xdot=A*x+B*u+C), but I'm not sure that this procedure is corret.
With w=1 and your comment (xdot=A*x+B*u+C*w), could I generate the LTI (lineary time invariant) model in Matlab? It seems that the matlab command ('ss') not provide the disturbance term (w).
If there is no proper command in Control System Toolbox, how to generate the user-defined model manually?
Paul
Paul am 31 Okt. 2021
It really depends on what you're going to do with your model. You could do something like this:
sys = ss(A,[B C],D,0);
which creates a new input vector unew = [u ; w] where u is the "real" input that can be anything and w is ficitious input that is always w = ones(size(C,2),1). Depending on what the use case is, you might be able always account for the fact that w is always fixed in all of your analysis. I guess it depends on what you're going to do with sys.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu MATLAB finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by