Find non singular transformation matrix

2 Ansichten (letzte 30 Tage)
RJS
RJS am 17 Nov. 2021
Kommentiert: Paul am 22 Dez. 2021
I am working on state space system in matlab script. here C =[0 0 0 0 0 0 1 0 1 0] but I want to observe 1st state i.e. required Cr = [1 0 0 0 0 0 0 0 0 0]. So to get this C I am using transformation matrix T = Cr/C.....but here i am getting singular T matrix
I want nonsingular T matrix
  2 Kommentare
Paul
Paul am 17 Nov. 2021
To make sure we're clear on the question:
You have a model
xdot = A*x + B*u
y = C*x + D*u
where C = [0 0 0 0 0 0 1 0 1 0]
The goal is find the similarity tranformation matrix T that defines a new state vector, z, so that
zdot = Anew*z + Bnew*u
y = Cnew*z + Dnew*u
where Cnew = [1 0 0 0 0 0 0 0 0 0]
Is my understanding correct?
RJS
RJS am 18 Nov. 2021
yes

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Paul
Paul am 17 Nov. 2021
Bearbeitet: Paul am 17 Nov. 2021
Assuming the goal is as described in this comment, one solution would be:
T1 = [0 0 0 0 0 0 1 0 1 0];
T = [T1;null(T1).'];
See this Answer thread for much more discussion and other approaches.
  4 Kommentare
RJS
RJS am 22 Dez. 2021
If the required C vector is [0 0 0 0 1 0 0 0 0 0], then how to find this transformation
Paul
Paul am 22 Dez. 2021
Follow the same approach, but put the C vector from plant in the fifth row of T instead of the first. Here's an example:
sys = rss(10); % random system for example
sys.c
ans = 1×10
-0.2270 -1.7085 0 -1.4590 0.2800 0.3869 1.1516 -0.3147 0 -0.6773
N = null(sys.c).';
T = [N(1:4,:); sys.c; N(5:end,:)]; % sys.c in the fifth row, distribute N across the others
sysnew = ss2ss(sys,T);
sysnew.c % verify desired result
ans = 1×10
0 0 0 0 1 0 0 0 0 0

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by