how can i properly place the poles of the observer. I recieved the following error.The "place" command could not place the poles at the specified locations. Probable causes in
1 view (last 30 days)
Show older comments
I am working on an Unknown input Observer to estimate the states and the faults of my system, I faced a problem with pole placement, i tried separating the poles since it said they might be too close ,but, it did not work.
if rank(D_aug)~=rank(C_aug*D_aug) %check the first condition of existance
disp('the UIO does not exist')
else
disp('the UIO exists')
H_e = D_aug*inv((C_aug*D_aug)'*(C_aug*D_aug))*(C_aug*D_aug)' %calculate the matrix H
T_e = eye(7)-H_e*C_aug %Calculate the matrix T
A1_e = T_e*A_aug %calculate the matrix A1
rank(obsv(A1_e,C_aug)) %check the second condition of existance
disp('the matrix is obeservable')
K1_e = place(A_aug',C_aug',[-0.03+0.03j, -0.03-0.03j,-1 , -1,-3,-3,-5])' %chose the position of poles
F_obs_e = A1_e-K1_e*C_aug %calculate the matrix F
K_e = K1_e + F_obs_e*H_e %calculate the matrix K
end
xe0 = [0.3 0.1 0.2 0 0 0 0]*1e-2; %chose the initial condition
0 Comments
Answers (0)
See Also
Categories
Find more on Predictive Maintenance Toolbox 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!