Find non singular transformation matrix
3 views (last 30 days)
Show older comments
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 Comments
Paul
on 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?
Accepted Answer
Paul
on 17 Nov 2021
Edited: Paul
on 17 Nov 2021
T1 = [0 0 0 0 0 0 1 0 1 0];
T = [T1;null(T1).'];
4 Comments
Paul
on 22 Dec 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
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
More Answers (0)
See Also
Categories
Find more on Matrix Indexing in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!