1 / 27

제어설계기법 실습 #10

제어설계기법 실습 #10. Time Response of Digital Control System. 실험실습 #10 안내서. 실험실습 번호 : #10 실험실습 일시 : 2011. . . 담당교수 :  담당조교 : , . 목적 : Digital Control System 의 시간영역에서의 해석법 에대하여 익힘 제목 : Time Response of Digital Control System 실습에 필요한 기초지식 : 슬라이드 유인물 참조

harken
Download Presentation

제어설계기법 실습 #10

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 제어설계기법 실습 #10 Time Response of Digital Control System

  2. 실험실습 #10 안내서 • 실험실습 번호 : #10 • 실험실습 일시: 2011. . . • 담당교수 :  • 담당조교 : ,  목적 : Digital Control System의시간영역에서의 해석법에대하여익힘 제목 : Time Response of Digital Control System 실습에 필요한 기초지식 : 슬라이드 유인물 참조 실습절차 : 슬라이드 유인물 참조

  3. Matlab제어공학 실습 • 다음과 같은 전달함수를 갖는 이산 시간 시스템을 생각해 보자. • 시간응답을 구하는 방법은 여러 가지가 있다. 1) 직접 전달함수를 state-space 모델로 바꿔서 A,B,C,D, 파라미터를 이용하여 for 문을작성하는 방법 2) dimpulse 혹은 dstep 명령어를 이용하여 시간 응답을 구하는 방법 3) MATLAB에서 제공하는 simulink 를 이용하여 가상의 시스템을 만들고, 샘플링 주기를 넣어 시뮬레이션으로 구하는 방법

  4. 방법 (1) : state-space 모델 이용 • 앞 페이지에서 제시한 전달함수에 대해 num=[0 1 3]; den=[1 3 2]; [A,B,C,D]=dtf2ss(num,den); 을사용하여, state-space로 바꾼다. • MATLAB 버전에따라 다소 차이가 있지만, 리턴된 A matrix는 Controllable Canonical form으로 표현된다.

  5. 방법 (1) : state-space 모델 이용 • dtf2ss를 사용하여 아래와같은 이산 방정식을 얻을 수 있다. • MATLABProgram [A,B,C,D]=dtf2ss(num,den); xo=[0; 0]; u=1; % 입력이 step-input 이라고 가정함. for k = 1:50, x(:,k)=A*xo+ B*u; y (k)= C*xo; xo=x(:,k); end; • 앞의 결과를 plot 해보면, 발산함을 알 수 있는데, 이것은 A 행렬의 eigenvalue가 1보다 큰 값을 가지므로 불안정시스템이기 때문이다.

  6. 방법 (2) : ‘dstep’ 명령어를이용 • 시간 응답을 구하는 두 번째 방법으로는 ‘dstep’ 명령어를 이용하는 방법이다. num=[0 1 3]; den=[1 3 2]; Y=dstep(num,den,100);

  7. 방법 (3) : Simulink를 이용 • 주어진 전달함수를 dtf2ss를 이용하여 아래와 같은 state-equation을구했다고 하면, • MATLAB에서 제공하는 Simulink 프로그램을 이용하여 상태공간 방정식에 따라 가상의 시뮬레이션 환경을 만든다. • 만드는 방법(함수 이용)은 다소 차이가 있으며, 다음 페이지에서 보여주는 것은 한 예이다.

  8. 방법 (3) : Simulink를 이용 • Simulink 파일 작성 예 • 주의할 점은 To Wokspace 부분에서 Array 형태로 지정해야 한다. • 또는 state-space equation을 이용해서 아래와 같이 작성해도 된다.

  9. 실습:Time Response for Discrete System • 실습 # 1: 아래와 같은 상태 공간 방정식에 대해 앞페이지에서 소개한 방법 (1) 을 이용하여, 범위의 출력 y(k)를구하고, plot 하시오. • 실습 # 2: 앞 페이지에서 소개한 방법 (2)를 이용하여, 범위의 출력 y(k)를구하고, plot 하시오.

  10. 실습:Time Response for Discrete System • 실습 # 3: 앞 페이지에서 소개한 방법 (3) Simulink를 이용하여, 범위의 출력 y(k)를구하고, plot 하시오.(Simulink 파일은 전달함수혹은 상태공간 방정식 중 어느 하나를 사용해도 무방함.)

  11. 실습:Open-Loop Continuous-Time System • 다음과 같은 전달함수를 갖는 연속 시간 시스템을 생각해 보자. • 실습 # 1: MATLAB Command 중에서 tf2ss를 사용하여, state-equation 으로 표현해보시오.

  12. 실습:Open-Loop Continuous-Time System • 실습 # 1에서 구한, 상태방정식을 이용하여 Simulink 파일을 작성한다. Simulink 프로그램은 시뮬레이션에 필요한 system construction & analysis 의 기능을 갖고있다. MATLAB 프로그램에서 simulink를 타이핑한 후, 실행하면 된다.

  13. 실습:Open-Loop Continuous-Time System • 실습 # 2: 실습 # 1에서 구한 상태공간 방정식을 이용하여 simulink 파일을 작성하시오. • 실습 # 3: 실습 # 2에서 구한 simulink 파일을 이용하여, 입력이 unit-step function (u(t)=1, t≥0)일 때, 출력 y(t)를구하시오.

  14. 실습:Open-Loop Discrete-Time System • 연속 시간 시스템을 이산 시간 시스템으로 바꾸는 방법은 아래와 같다. • 실습 # 4: 윗 식을 이용하여 이산 시간 상태 방정식을 구하고, 해를 MATLAB command, ‘c2d’, ‘d2c’를이용하여 확인하시오.

  15. 실습:Open-Loop Discrete-Time System • 실습 #4에 대한 힌트: (1) sys=tf(num,den); sys_d=c2d(sys,0.1), 또는 (2) sys=ss(A,B,C,D); sys_d=c2d(sys,0.1), 또는 (3) [Ad,Bd]=c2d(A,B,0.1) 이때 C, D matrix는 변함이 없다. 따라서 [nd,dd]=ss2tf(Ad,Bd,C,D) 로 변환해도 된다. • 실습 # 5: 실습 # 4에서 구한 이산 시간 상태 공간 방정식을 이용하여 Simulink파일을 작성하시오.

  16. 실습:Open-Loop Discrete-Time System • 실습 # 6: 실습 # 5에서 작성한 simulink 파일을 이용하여, 입력이 unit-step function (u(k)=1, k≥0)일 때, 출력 y(k)를구하시오. 또한실습 # 3의 결과와 비교하고, 차이를 설명하시오.

  17. 실습: Closed-Loop Continuous-Time System • 이번 실습에서는 폐회로 구조를 갖는 연속/이산 시간 시스템 해석에 대해 알아본다. • Feedback 구조를갖는 아래와 같은 Closed-loop 디지털제어 시스템을 생각한다.

  18. 실습: Closed-Loop Continuous-Time System • 이 시스템은 다시 아래의 그림과 같이 구현될 수 있다. 즉 A/D Converter는 T 초의 샘플링 주기를 갖는 스위치로, Digital Controller는 D(z), D/A Converter는 Z.O.H. 로 각각 바뀔 수 있다. • 이 때 전달 함수를 구하면 아래와 같다.

  19. 실습: Closed-Loop Continuous-Time System • 실습 # 1: 전달 함수가 이 됨을 증명하시오. • 다음과 같은 plant에 대해 G(z)를 구해보면, with T=0.1 sec. num=[0 0 10]; den=[1 1 0]; [A,B,C,D]=tf2ss(num,den); [DA,DB]=c2d(A,B,0.1); [numG,denG]=ss2tf(DA,DB,C,D);

  20. 실습: Closed-Loop Continuous-Time System • 따라서, G(z)에 관한 식은 아래와 같이 구해질 것이다. • 다음으로 디지털 필터에 관한 식 D(z)를 아래와 같이 가정하자. • 실습 # 2: 앞페이지에서 구한 전달함수 식을 따라 Closed-loop에대한 전달함수를 구하시오.

  21. 실습: Closed-Loop Continuous-Time System • 실습 # 3: 실습 # 2의 결과를 이용하여, 입력이 unit-step function일때 출력을 구하시오. (hint: MatlabCommand, ‘dstep’ 이용)

  22. 실습: Closed-Loop System Analysis • 이번 실습에서는 MATLAB Command, ‘feedback’을이용하여 보다 간단하게 폐회로 시스템에 대해 여러 시간 응답을 구하는 방법에 대해 알아본다. • Feedback 구조를갖는 아래와 같은 Closed-loop 디지털제어 시스템을 생각한다.

  23. 실습: Closed-Loop System Analysis • 이 시스템은 다시 아래의 그림과 같이 구현될 수 있다. 즉 A/D Converter는 T 초의 샘플링 주기를 갖는 스위치로, Digital Controller는 D(z), D/A Converter는 Z.O.H. 로 각각 바뀔 수 있다. • 이 때 전달 함수를 구하면 아래와 같다.

  24. 실습: Closed-Loop System Analysis • 먼저 plant를 아래와 같이 주어졌다고 가정하면, T=1; numC=[0 0 1]; denC=[1 1 0]; sysC=tf(numC,denC); 와같이 Continuous-time system에대해 system 구현이가능하다. • 다음으로 를샘플링 주기, T를 이용하여 discrete-time system, 으로 바꾼다. sysG=c2d(sysC,T);

  25. 실습: Closed-Loop System Analysis • MATLAB 명령어, tfdata를이용하여앞에서 구한 sysG를 다시 전달함수 (numG, denG)로 분해한다. 즉, [numG,denG,T]=tfdata(sysG); • 실습 # 1: 설계실습 #5 에서 ss2tf를 이용하여 구한 결과(numG,denG)과 비교하여보시오. 만약, 결과가 다르다면 그 이유를 설명하시오. • Closed-loop에대한 시스템 해석은 MATLAB 명령어 feedback을이용하여 보다 쉽게 해석할 수 있다.

  26. 실습: Closed-Loop System Analysis • 예를 들어 feedback gain을 H(s)=1로 가정하고, 디지털 필터에 관한 식을 로 가정하자. 즉, numD=[0.9 -0.8]; denD=[1 -0.9]; numG=[0.0484 0.0468]; denG=[1 -1.9050 0.9050]; sys1=tf(numD,denD) * tf(numG,denG); sysCL=feedback(sys1,1); dstep(sysCL); • 여기서 sys1은 D(z)*G(z)를 의미하며, sysCL은 closed-loop를 의미한다.

  27. 실습: Closed-Loop System Analysis • 실습 # 2: sysCL을 tfdata를 이용하여 전체 전달함수로 다시 분해한 후, 전달함수 식 으로 구한 결과와 비교하시오. • 실습 # 3: 입력이 impulse-function일때, impulse response를 구하시오. (Hint: Matlab command, ‘impulse’를이용할 것.)

More Related