120 likes | 554 Views
제어설계기법 실습 #9. Digital Control System. 실험실습 #9 안내서. 실험실습 번호 : #9 실험실습 일시 : 2011. . . 담당교수 : 담당조교 : , . 목적 : Digital Control System 의 Matlab 해석 방법에대하여 익힘 제목 : Digital Control System 실습에 필요한 기초지식 : 슬라이드 유인물 참조 실습절차 : 슬라이드 유인물 참조. Matlab Discrete Commands.
E N D
제어설계기법 실습 #9 Digital Control System
실험실습 #9 안내서 • 실험실습 번호 : #9 • 실험실습 일시: 2011. . . • 담당교수 : • 담당조교 : , 목적 : Digital Control System의Matlab해석 방법에대하여익힘 제목 : Digital Control System 실습에 필요한 기초지식 : 슬라이드 유인물 참조 실습절차 : 슬라이드 유인물 참조
MatlabDiscrete Commands • Discrete Step Response >> [y, x] = dstep(a, b, c, d, ui, n) %ui: input channel specified >> [y, x] = dstep(num, den, n) %n : number of samples • Discretization >> [ad, bd] = c2d(a, b, ts) %ZOH discretization >> [ad, bd, cd, dd] = c2dm(a, b, c, d, ts, ‘method’) >> [numz, denz] = c2dm(num, den, ts, ‘method’)
MatlabDiscrete Commands • Frequency Responses for Discrete Systems >> [mag, phase] = dbode(a, b, c, d, ts, ui, w) >> [mag, phase] = dbode(num, den, ts, w) • Time Responses for Discrete Systems >> stairs(y) or stairs(x, y) >> [xs, ys] = stairs(y) or stairs(x, y)
Matlab제어공학 실습 >>nc=10; dc=[1 7 10]; ts=0.1; >>[n_zoh,d_zoh]=c2dm(nc,dc,ts) >>i=[0:35]'; time=i*ts; >>yc=step(nc,dc,time); >>g_zoh=dstep(n_zoh,d_zoh,36); >>stairs(time,g_zoh), hold, plot(time,yc), grid
Matlab제어공학 실습 • 다음과 같은 이산 시간 시스템을 생각해 보자. • 위의 그림은 아래와 같은 discrete-time 방정식으로 표현 가능하다. m(k) = e(k) – e(k-1) – m(k-1), k ≥0
Matlab제어공학 실습 • MATLAB 프로그램을 이용하면, 0≤ k ≤20 사이의 m(k)를구할 수 있다. mkminus1 = 0; ekminus1=0; ek = 1; for k=0:20; mk = ek – ekminus1 – mkminus1; [k, mk]; mkminus1 = mk; ekminus1 = ek; ek = 1 – ek; end; • 실습 #1: 위에서 구한 결과를 plot 해보고, 몇 지점에서 예상결과와 비교하시오.
Matlab제어공학 실습 • 시스템을 해석하는 방법으로 아래의 MATLABcommand 를이용해보자. • 아래와 같은 discrete-time 방정식에 대해 고유치 (eigenvalue)를 구해보자. A= [0.8 1; 0 0.9]; [V,D]=eig(A); • [V,D]에서 각각의 의미를 알아보자.
Matlab제어공학 실습 • 상태공간방정식과 전달함수는 아래의 MATLAB 함수를 이용하여 쉽게 상호변환이 가능하다. A = [1.35 0.55; -0.45 0.35]; B = [0.5; 0.5]; C = [1 -1]; D = 0; [n, d] = ss2tf(A, B, C, D); • 또한 tf2ss, tf2zp, zp2tf 에 대하여 살펴보고, 결과를 확인해보자.
Matlab제어공학 실습 • 아래와같은 이산 방정식의 출력을 MATLAB을 이용하여 직접 구해보자. • MATLABProgram A = [0 1; -2 -3]; B = [0 ; 1]; C=[3 1]; x=[0; 0]; u=1; for k = 0:5, x1=A*x + B*u; y = C*x x=x1; end;
Matlab제어공학 실습 • 아래와 같이 주어진전달함수에 대해 • 실습 #2: (a) 상태공간방정식을 구하시오. (tf2ss 이용) (b) (a)에서 구한 상태공간방정식을 이용하여, y(k), 0≤ k ≤20의값을 구하시오.
Matlab제어공학 실습 • Inverse z-변환을 구하기 위해 부분분수로 주어진 전달함수를 바꾸고, 다시 MATLAB 을 이용하여 각각의 계수와 pole의 위치를 구하는 방법에 대해 알아보자. • 주어진 함수가 아래와 같을 때 Inverse z-변환을 이용하여 y(k)를 구해보자. • MATLAB 함수 residue를 참조할 것. num = [0 0 -3.894]; %윗 식의 분자를 z로 미리 나눈 결과임 den = [1 0 0.6065]; [r,p,k] = residue(num, den); • 실습 #3:위에서 구한 [r,p,k] 를 이용하여 y(k)를구하시오.