자동제어 | 변환행렬 구하기 |
페이지 정보
작성자 cemtool 작성일14-09-24 11:01 조회7,864회 댓글0건본문
앞의 예제 7.3과 같은 tape 구동 시스템에서 표현식을 modal canonical form으로 유지하되, 크기를 증가시키기 위하여 pole들이 에 나타나도록 하는 state 변환행렬을 구하시오. 그리고 이때 새로운 state 행렬 set A,B,C,D를 구하시오.
- ex7_10.cem
/* Exercise 7.10(b)*/ del *; "**************************" "** **" "** Exercise 7.10(b) **" "** **" "**************************" " " sleep(2); F = [0 2 0 0 0 -0.1 -0.35 0.1 0.1 0.75 0 0 0 2 0 0.4 0.4 -0.4 -1.4 0 0 -0.03 0 0 -1]; G = [0 0 0 0 1]'; H2 = [0.0 0.0 1.0 0.0 0.0]; H3 = [0.5 0 0.5 0 0]; HT = [-0.2 -0.2 0.2 0.2 0]; J = 0; /* [Am, Bm, Cm, Dm, TI] = canon(F,G,H3,J,"modal"); T = inv(TI)*/ // 위에서 error가 나서 임시로......T = [-0.1748 0.1420 0.7071 -0.4871 0.58870.0083 -0.1035 -0.0000 0.1236 -0.28500.8284 0.2960 0.7071 -0.8379 0.6360-0.3626 0.1820 0.0000 0.2126 -0.30790.0034 0.0022 -0.0000 -0.0075 0.2697]; "Calculation of eigen values" " " "CEMTool>> P = eig(F)" " " sleep(2); P = eig(F)" " sleep(2); "문제의 조건을 만족시키기 위해서 eig val을 sort후 그 순서로 T를 재배치" " " sleep(2); "CEMTool>> [f,indices] = sort(abs(P));" "CEMTool>> T2 = T(:,indices);" " " sleep(2); [f,indices] = sort(abs(P)); T2 = T(:,indices); "Transformation matrix T3의 계산" " " sleep(2); "CEMTool>> n = T2\\\G;" "CEMTool>> T3 = T2*diag(n)" " " sleep(2); n = T2\G; T3 = T2*diag(n)" " sleep(2); "Am, Bm 게산 --> 문제의 조건을 확인" " " "CEMTool>> Am2 = T3\F*T3" " " sleep(2); Am2 = T3\F*T3 " " "===> Am에 나타나는 pole이 음의 방향으로 증가하는 순서로 배치되어 있음!" " " sleep(2); "CEMTool>> Bm2 = T3\\\G" " " sleep(2); Bm2 = T3\G " " "===> Bm = [1 1 1 1 1]' 임을 확인!!" " " sleep(2); "Cm과 Dm의 계산" " " sleep(2); "CEMTool>> Cm2 = H3*T3" "CEMTool>> Dm2 = 0" " " sleep(2); Cm2 = H3*T3 Dm2 = 0
댓글목록
등록된 댓글이 없습니다.