1. 서론본 프로젝트의 목적은 강의 시간에 배웠던 기저대역 등가 모형을 이용하여 BPSK 통신 시스템을 MATLAB 소프트웨어를 이용하여 설계하고, AWGN(Additive White Gaussian Noise) 환경에서의 비트오류율을 계산하는 것이다. 우선, PSK란 Phase Shift Keying의 줄임말로서, 위상편이 변조방식이라고 한다. 디지털 신호에 대응하여 반송파의 위상을 각각 다르게 하여 전송하는 변조방식으로서, 0과 1의 디지털 신호를 m개의 비트로 묶어 M=2m개의 위상으로 분할시킨다. 위상편이 변조 방식은 이 M값에 따라서 2진, 4진, 8진 PSK 등으로 구분되어 사용된다.이번 프로젝트에는 2진 위상편이 변조 방식인 BPSK(Binary PSK)방식을 이용하여 진행하게 되었다.2진 PSK 방식은, 디지털 신호의 정보 내용에 따라 반송파의 위상을 베이스 밴드 신호의 0과 1에 따라 0°와 180°로 대응시키는 기법이다. 아래 그림에 송신기와 수신기의 블록도가 나타나 있다.(a) BPSK 송신기의 블록 다이어그램(b) BPSK 수신기의 블록 다이어그램그림1-1. BPSK 송?수신기의 블록 다이어그램(a)의 송신기에서 입력 2진 시퀀스를 일정한 진폭레벨 ±Eb를 갖도록 NRZ 부호화기를 사용하여 부호화 한다. 극 형태로 전환된 2진 신호와 정현 반송파는 곱 변조기로 입력되어 변조가 되며, 송신기의 Band-pass filter는 일정한 대역폭의 주파수 성분만을 통과시키게 된다.(b)의 수신기에서 정보가 반송파의 위상에 포함되어 있으므로 동기 검파 방식만 사용하며, 2진 시퀀스 검출을 위해 수신신호와 기준신호가 상관기로 인가된다. 상관기 출력은 수신된 신호의 값을 결정하기 위한 결정 변수의 역할을 하며, Decision device는 Low-pass filter의 출력 신호를 0을 기준으로 (+)와 (-)로 판정한다. 즉, 수신된 신호는이면 1,이면 0으로 판정되는 것이다.PSK는 동일한 SNR에서 ASK보다 양호한 오류특성을 가진다. 또한 일정한 진폭을 갖는 파형이므로 레벨 변동 등의 영향이 적다. 이러한 특징들로 인해 고속의 데이터 통신용 모뎀으로 사용된다.2. 본론우선, coherent 와 non-coherent 수신기에 대해 통신시스템 교재 및 강의안을 통해 그 특징을 살펴보고, 5장에 나왔던 기저함수 및 signal space representation 부분도 공부를 하였다. 또한, 수업시간에 배웠던 BER(Bit Error Rate)를 복습하여 익힌 후, 본 프로젝트에 주어진 수식을 이용하여 계산하였다. 이론적으로 도출된 BER과 본 프로젝트에서 MATLAB 소프트웨어로 구현해야 하는, 모의 실험에서의 BER을 비교해 볼 것이다.프로젝트 관련 모의 실험 구현에 앞서 수기로 문제들을 풀어보았다. 자세한 풀이는 아래에 기술되어 있다.* 1-1. 그림 1-1의 블록도를 보고, 아래의 내용에 답하시오(a) 일반적인 coherent / non-coherent receiver의 차이점에 대하여 간략히 서술하시오.coherent 와 non-coherent receiver는 수신기가 위상복구회로를 갖추고 있는지 없는지에 의존하게 된다. coherent receiver에 위상복구회로가 존재한다. coherent receiver에서 이 위상복구 회로는 수신단에서 생성된 반송파 공급 발진기가 전송단에서 입력 데이터를 변조하는데 사용되는 반송파의 위상, 시간, 주파수가 모두 동기가 맞도록 해준다. 또한 복잡하지만, 성능이 매우 좋아서, PSK, QAM, FSK 변조에 주로 이용된다.반면, non-coherent receiver는 시간, 주파수를 동기화하며, 위상복구회로가 존재하지 않는다. 따라서 회로가 상대적으로 간단하지만, 성능은 coherent receiver에 비하여 떨어지는 단점이 있다. DPSK, FSK 변조에 주로 이용된다.(b)의 역할을 간단히 설명하시오.는 기저함수로 Signal Space로 표현을 할 수 있다. 또한, 수신된 신호와 곱할 경우 해당 번째 상관기의 출력으로 쓰이며, threshold를 기준으로 에러를 계산하는데에 쓰이게 된다. 본 프로젝트에서는가 cosine함수를 포함하고 있다. cosine함수는 푸리에 변환을 하여 전력 스펙트럼 밀도를 구해보면, ±만큼 주파수 기준축을 이동하게 된다. 즉, 이 프로젝트에서는 baseband signal인 송신 신호를 passband signal로 변화시켜 대역폭의 증가를 꾀하게 되는 것이다.* 1-3. 그림 1-2는 BPSK 시스템 모의 실험을 위한 블록도를 나타낸다.그림1-2. BPSK 시스템 모의실험을 위한 블록도3. 설계 및 실험 결과* 설계시 사용한 파라미터 소개bit = round(rand(1000000,1)); % 100만개의 임의의 bit 생성k=1.38*10^-23; % 볼츠만상수T= 300; % 27도에서의 절대온도N_0=k*T; % 잡음의 정의var_N0=0.5*N_0; % 잡음의 분산w_t=randn(1000000,1)*sqrt(var_N0); % Additive White Gaussian NoiseSNR =[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15]; % 신호 대 잡음비NRZ_sig= bit*2-1; % Polar NRZ 코드의 정의s_t= NRZ_sig.*sqrt(E_b); % s(t)의 정의x_t=s_t+w_t; % AWGN이 포함된 수신 신호output = (x_t+1)./2; % Polar NRZ 신호를 0과 1의 비트로 표현decision_dev= xor(output , bit); % 수신비트와 송신비트비교(같으면0 다르면1)error= sum(decision_dev)/1000000; % decision_device의 합(다른bit의개수)/보낸bits수BER(a)=error; % SNR이 0~15일때 각각의 에러확률을 BER 행렬에 대입시뮬레이션 시 사용한 파라미터 들* 작동방법100만개의 임의의 비트열을 생성한 후, for 문을 통하여 0부터 15까지의 SNR변화에 따른 비트 오류율을 구한다. decision device에서 수신 신호가 0보다 크면 1, 작으면 -1로 판단한다. 이 신호를 0과 1의 비트열로 변환한 후, xor과 sum함수를 이용하여 에러가 난 비트의 개수를 찾아내고, 합쳐서 BER을 구한다. 그 후 그래프로 이론값과 시뮬레이션 값을 상호 비교해본다.* 설계 결과 화면그림2 - 설계 결과 화면* 분석곡선으로 표시된 이론값과 o로 표시된 시뮬레이션 값이 거의 일치하는 것을 알 수 있었다. SNR이 8, 9, 10일 경우에는 약간 그래프가 어긋나는 것을 관찰 할 수 있으나, 이는 y축이 log scale이며, 해당하는 값이처럼 매우 작은 값이므로 거의 무시 가능한 오차라고 사료된다. 또한, SNR이 15에 해당하는 비트의 수까지 표현하여 정확도와 신뢰도를 좀 더 높이려 하였으나, MATLAB 소프트웨어에서 1000만 단위의 비트열도 처리하여 그래프로 나타내는데 시간이 무척이나 오래 걸렸고, 1억개의 비트열부터는 메모리 오류가 떠서 조금 더 정확한 시뮬레이션을 진행할 수 없었다. 하지만, 시뮬레이션을 돌릴 수 있었어도 이론값과 거의 오차가 없었을 것으로 추측된다.4. 결론본 프로젝트는 BPSK 변조를 구현하며, 비트오류율의 이론과 시뮬레이션 값에 대해 확인해 보는 프로젝트 였다. 그림2의 결과로 볼 때, 랜덤 비트열에 의한 미세한 차이를 제외하고 이론적인 비트오류율과 시뮬레이션을 통한 비트오류율이 거의 일치하는 것을 볼 수 있었다. 평소에 공식에 의해서 머리로 계산한 것과는 달리, 설계할 때는 MATLAB의 기능도 잘 숙지하지 못했고, 생각했던 것과 다르게 오류 메시지가 떠서 애를 많이 먹었다. 특히 함수끼리 곱할 때 점(.)을 찍지 않고 그냥 함수끼리 곱하다보니 계속 오류가 떴었다. 처음에는 왜 오류가 났는지 알지 못하였는데, 다른 교재 및 MATLAB참고서를 살펴보니 함수끼리 곱하거나 나눌 때는 *나 / 앞에 .을 붙여야 오류가 나지 않는다는 사실을 알게 되었다.또한, 잡음생성함수를 구현하는데 있어서, randn함수의 사용법을 잘 몰라서 많은 어려움을 겪었다. MATLAB에서 help 명령어를 입력하여 randn 함수의 사용 용도를 파악한 후에야 문제점을 해결할 수 있었다.이렇듯, 수많은 시행착오를 통해 설계를 완성하고 나니, 머리로만 이해하고 있었던, 그것도 자세히 이해하지 못하고 있었던 BPSK에 대해 한층 더 이해할 수 있었다. 비록 MATLAB 소프트웨어 자체의 메모리 한계로 인해 좀 더 정확한 프로젝트 결과값을 도출해내지는 못했지만, 이론으로만 배웠던 BPSK 시스템을 실제로 구현해 볼 수 있었던 좋은 기회였다. 앞으로도 흥미를 갖고 열심히 공부해서 QPSK 같은 것도 스스로 구현해 보아야 겠다.
1. 서론본 프로젝트의 목적은 강의 시간에 배웠던 기저대역 등가 모형을 이용하여 BFSK Non-coherent 통신 시스템을 MATLAB 소프트웨어를 이용하여 설계하고, AWGN(Additive White Gaussian Noise) 환경에서 SNR의 변화에 따른 비트오류율을 계산하는 것이다. 우선, FSK란 Frequency Shift Keying의 줄임말로서, 주파수편이 변조방식이라고 한다. 디지털 신호의 0과1의 값에 따라 반송파의 주파수를 다르게 하는 방식으로써, 데이터 신호의 0은 주파수, 1은 낮은 주파수를 할당해 데이터를 전송하며, 주파수는 0과 1에 대응하여 변화하지만 진폭은 항상 일정하다.일정 진폭의 반송파주파수를 두 가지로 정하여 데이터가 0과 1로 변함에 따라서 두 개의 주파수 중에서 할당된 주파수를 수신측에 보내고 수신측에서는 이를 약속된 원래의 0과 1의 상태로 환원시키는 변조 방식이다.간단히 FSK 방식의 장단점을 알아보자.* 장점- FSK는 포락선이 일정한 변조 방식이므로 채널에서 진폭(이득) 변화에 둔감하며, 비선형 송신과 수신 시스템에도 사용될 수 있다.- FSK의 검파는 심벌 상태들 사이의 상대 주파수 변화에 기초하므로 채널에서 정확한 절대 주파수가 요구되지 않는다.- FSK는 상대적으로 국부 발진 주파수의 흔들림이나 도플러 편이에 크게 영향을 받지 않는다.- 동기검파, 비동기 검사에 사용 가능하다.* 단점- FSK는 ASK나 PSK방식에 비해 대역폭 효율이 다소 떨어진다.- FSK의 BER 성능은 PSK보다 나쁘다.- 선형 함수이므로 등화기의 사용이 어렵다.- 비선형 변조이므로 선형변조방식에 비해 신호분석이 어렵다.아래 그림1은 BFSK 송신기와 , 동기 수신기와, 비동기 수신기의 블록 다이어그램을 나타낸다.(a) BFSK Transmitter(b) Coherent BFSK receiver(c) Non-coherent FSK demodulator그림1. BFSK 송?수신기의 블록 다이어그램Coherent receiver는 수신 신호의 위상과 주파수를 동시에 고려하는 방식으로, FSK의 입력은 대역통과필터에 의해 각각 분리되고 수신단이 가지고 있는 발진기의 주파수와 곱해져서 위상의 차이를 검출하게 된다. 검출된 위상 차이는 전압으로 변환되며 임계치를 결정하여 2진으로 출력된다.Non-Coherent reciever는 위상을 무시하고 주파수만 고려하는 방식으로, 서로 FM 과 FS 의 주파수를 가지는 두개의 대역 통과 필터를 이용하여 실행 할 수 있다. envelop detector 는 대역 통과 필터의 출력을 DC전압인 VA 와 VB 으로 바꾼다. 이것은 신호의 크기에 비례한다.이 두 전압 DC 전압을 빼서 그 차(VA-VB)는 decision 회로에 보내진다.2. 본론MATLAB 코딩과 본 프로젝트 안내서에 주어진 문제를 풀기 위해, coherent 와 non-coherent 수신기에 대해 통신시스템 교재 및 강의안을 통해 그 특징을 살펴보고, 5장에 나왔던 기저함수 및 signal space representation 부분도 공부를 하였다. 또한, 수업시간에 배웠던 BER(Bit Error Rate)를 복습하여 익힌 후, 본 프로젝트에 주어진 수식을 이용하여 계산하였다. 이론적으로 도출된 BER과 본 프로젝트에서 MATLAB 소프트웨어로 구현해야 하는, 모의 실험에서의 BER을 비교해 볼 것이다.프로젝트 관련 모의 실험 구현에 앞서 수기로 문제들을 풀어보았다. 자세한 풀이는 아래에 기술되어 있다.3. 설계 및 실험 결과* 설계시 사용한 함수 및 파라미터 소개randint(1,N) : 1행 N열의 Random Binary Integer(0, 1)을 생성.maxEbNo = 15 : 최대 SNR을 15로 지정.bp_noise=randn*cos(2*pi*(k-1)/Nm(m)) - randn*sin(2*pi*(k-1)/Nm(m)): m=1일 때의 Random Gaussian Noise 생성bp_noise=randn*cos(2*pi*(k-1)/Nm(m))-randn*sin(2*pi*(k-1)/Nm(m)): m=2일 때의 Random Gaussian Noise 생성SNRbdBt=0:.1:maxEbNo; SNRbt = 10.^(SNRbdBt/10): 0~15까지 SNR을 표현, dB단위와 단순 ratio로 표현nonco_pobet=exp(-SNRbt/2)/2 : non-coherent receiver의 이론적 bit error rate프로젝트에 사용된 함수 및 파라미터들* 작동방법500개의 임의의 비트열을 생성하고 임의의 random gaussian noise를 생성하여 수신신호를 설정한 후, for 문을 통하여 0부터 15까지의 SNR변화에 따른 비트 오류율을 구한다. 그 후 그래프로 이론값과 시뮬레이션 값을 상호 비교해본다.* 설계 결과 화면그림2 - 설계 결과 화면* 분석곡선으로 표시된 이론값과 o로 표시된 시뮬레이션 값이 어느정도 일치하는 것을 알 수 있었다. SNR이 8, 9, 10일 경우에는 약간 그래프가 어긋나는 것을 관찰 할 수 있으나, 이는 y축이 log scale이며, 해당하는 값이처럼 작은 값이므로 통신 시스템 상에서는 거의 무시 가능한 오차라고 사료된다. 그리고 시뮬레이션 함수 자체가 랜덤 함수이기 때문에 시뮬레이션을 돌릴 때마다 파형이 조금씩 다르게 나타났다.4. 결론본 프로젝트는 BFSK 변조를 구현하며, 비트오류율의 이론과 시뮬레이션 값에 대해 확인해 보는 프로젝트 였다. 그림2의 결과로 볼 때, 랜덤 비트열에 의한 미세한 차이를 제외하고 이론적인 비트오류율과 시뮬레이션을 통한 비트오류율이 거의 일치하는 것을 볼 수 있었다. 지난 번 BPSK 변조 프로젝트 때보다는 MATLAB 함수도 잘 이해하고 사용하였다. 다만, 이번 프로젝트 자체가 약간 난이도가 높은 감이 있어서 MATLAB을 이용한 코딩은 같이 수업을 듣는 학우와 공동으로 코딩을 하였다. 중간중간에 FSK시스템의 구현이 미숙하여 수많은 시행착오를 냈지만 머리를 맞대고 상의해 본 결과 프로젝트를 완성할 수 있었다.코딩을 완성하고 그래프로 확인하고 지난 프로젝트와 비교해 본 결과 아까 본 프로젝트 보고서 1번 항목에 나열한 FSK 장단점을 확인해볼 수 있었다. 이렇듯, 수많은 시행착오를 통해 설계를 완성하고 나니, 머리로만 이해하고 있었던, 그것도 자세히 이해하지 못하고 있었던 BFSK에 대해 한층 더 이해할 수 있었다. 이론으로만 배웠던 BFSK 시스템을 실제로 구현해 볼 수 있었던 좋은 기회였다. 곧 있을 최종 프로젝트도 열심히 하여 좋은 성과를 내야 겠다.5. 프로그램 소스코드% 변수에 값 설정N=500;N_f = 2;bps = 1;b = log2(N_f);tb = 1/bps;M = 40;T = 1/M;data = randint(1,N); % 1행 N(500)열의 Random Binary Integer을 생성(여기서는 500개의 bit생성)Nn = length(data);m = 1:N_f;f = 2*m;Ts = log2(N_f)*bps;sqTs = sqrt(Ts);Es=1;maxEbNo = 15; %최대 SNR을 15로 지정.Ac = sqrt(2*Es)/sqTs;Pm = f(m)./bps;Nm = M./Pm;% s_m(t)를 설정. m=1,2일 때의 함수 지정. 강의안의 Notation으로는 s_i(t)임.for m = 1:N_f;for i = 1:M;u_s(m,i) = Ac*cos(2*pi*(i-1)/(Nm(m)));sc(m,i) = sqrt(2)/sqTs*cos(2*pi*(i-1)/Nm(m));ss(m,i) = sqrt(2)/sqTs*sin(2*pi*(i-1)/Nm(m));endendfor ebno = 1:maxEbNo;co_noe = 0; non_noe = 0;for i = 1:N,SNRbdB(ebno)=ebno;SNRb = 10^(SNRbdB(ebno)/10);NO=(Es/b)/SNRb; sigma2=NO/2; sigmaT=sqrt(sigma2/T);switch data(i)case 0,m=1;for k=1:M,% Random Gaussian Noise 생성bp_noise=randn*cos(2*pi*(k-1)/Nm(m)) - randn*sin(2*pi*(k-1)/Nm(m));% Noise가 가미된 수신 신호 설정r(k)=u_s(1,k) + sigmaT*bp_noise;tmp_r(k)=u_s(1,k);endcase 1,m=2;for k=1:M,bp_noise=randn*cos(2*pi*(k-1)/Nm(m))-randn*sin(2*pi*(k-1)/Nm(m));
제어설계 실습 결과 보고서실험실습 아라고 진자 시스템의 수학적 모델링 및 파라미터 추정성 명학 번조?담당조교실험내용 개략(목적 및 방법 간추림)* 실험 목적① 물리 방정식을 이용한 아라고 진자 시스템의 수학적 모델 유도 과정 이해.② 직류 전동기의 수학적 모델 이해하고, 파라미터 값을 실험적으로 구한다.③ 진자 시스템의 수학적 모델링 프로그램을 작성한다.④ 실험을 통한 진자 시스템의 파라미터 값을 추정한다.* 실험 내용- 실험 2에서 작성된 프로그램에 진자의 응답을 저장하기 위하여 ‘측정파일에 쓰기’블럭을 이용하여 프로그램을 수정한다. 또한 아라고 진자의 모델로부터 파라미터를 추정하기 위하여 시뮬레이션 루프와 식노드 등을 사용하여, 프로그램을 구성한 후, ‘측정파일로부터 읽기’ 블록을 사용하여 앞의 프로그램에 연결해준다.- 모델링된 프로그램에서 전기 파라미터 및 기계 파라미터를 수정하면서 응답 결과를 관찰하고, 특정 파라미터만 변경하여 응답 변화 추이를 살펴본다. 또한 시뮬레이션과 실제 실험에서의 출력이 가장 비슷한 응답을 찾은 후 파라미터를 추정한다. 추정된 파라미터를 이용하여 k1 ~ k9까지의 값을 계산해낸다.결과 및 검토(특이사항 등)1) 모터의 전기 파라미터와 기계 파라미터를 수정하여 보고, 어떠한 결과를 나타내는지 관찰하고 그 이유를 설명하시오.그림1 - 초기 파라미터 값과 그 파형(흰색선)우선, 초기 파라미터 값에 따른 파형이 위의 그림1에 나타나 있다. 여기서 빨간 선은 실제 시스템의 응답이고, 하얀 선은 파라미터간의 관계에 기인한 응답이다. 현재 그래프로 보면, 진자가 원 시스템보다 약간 느린 속도와 더 큰 폭으로 회전하는 것을 알 수 있다.=> 전기자 저항을 상승시키면 진폭이 감소하고, 과도상태 응답속도가 약간 빨라졌다. 또한, 정상상태 응답 값이 작아지는 것을 관찰 할 수 있다. 이는 정상상태응답 최종치 공식인와 전달함수 공식인에서값을 증가 시킴으로서 알 수 있다.그림2 - 전기자저항()을 증가시켰을 때 파형 비교=> 전기자 저항을 감소시키면, 전체적인 응답 속도가 빨라졌다 초기에는 진자가 좌우로 크게 진동하다가 시간이 흐르면서 점차 안정되어 정상상태에 빠르게 돌입한 것을 알 수 있다. 또한, 정상상태 응답치가 증가함을 알 수 있다. 이는 정상상태응답 최종치 공식인와 전달함수 공식인에서값을 감소 시킴으로서 알 수 있다.그림3 - 전기자저항()을 감소시켰을 때 파형 비교=> 토크 상수를 증가시키면, 과도상태 응답속도가 빨라졌다. 처음에는 진자가 크게 진동하다가 점차 시간이 흐르면서 진폭이 작아지면서 안정화되어 정상상태 응답에 그림1보다 빨리 접어드는 것을 알 수 있다. 또한 정상상태 응답 최종값이 증가한 것을 알 수 있다. 이는 정상상태응답 최종치 공식인와 전달함수 공식인에서값을 증가 시킴으로서 알 수 있다.그림4 - 토크상수()를 증가시켰을 때 파형 비교=> 토크상수를 감소시키면 과도 상태 응답 속도는 빨라졌으나 진폭이 감소하였다. 처음부터 진자가 작은 폭으로 진동하다가 점차 폭이 미세하게 작아지면서 정상상태에 돌입하게 된다. 또한 정상상태 응답 최종치가 낮아짐을 알 수 있다. 이는 정상상태응답 최종치 공식인와 전달함수 공식인에서값을 감소 시킴으로서 알 수 있다.그림5 - 토크상수()를 감소시켰을 때의 파형 비교=> 과도응답 속도가 빨라졌으나, 진폭의 변화는 없었다. 또한 정상상태 응답 최종값은 큰 차이가 없었다. 이는 정상상태응답 최종치 공식인와 전달함수 공식인에서값을 증가 시킴으로서 알 수 있는데 10의 -5제곱 항 때문에 미세 한 값의 변화를 나타내므로 정상상태 응답 값에서 큰 차이는 보이지 않았던 것 같다.그림6 - 관성모멘트 값()을 증가시켰을 때의 파형 비교=> 과도응답 속도가 더욱 빨라졌으나, 진폭의 변화는 없었다. 또한 정상상태 응답 최종값 또한 큰 차이가 없었다. 이는 정상상태응답 최종치 공식인와 전달함수 공식인에서값을 감소 시킴으로서 알 수 있는데 10의 -5제곱 항 때문에 미세 한 값의 변화를 나타내므로 정상상태 응답 값에서 큰 차이는 보이지 않았던 것 같다.그림7 - 관성모멘트 값()을 감소시켰을 때의 파형 비교=> 과도응답 속도가 현저하게 빨라진 것을 알 수 있었다. 진폭은 변하지 않았다. 또한 정상상태 최종 응답치도 변하지 않았다. 이는 정상상태응답 최종치 공식인와 전달함수 공식인에서값을 증가 시킴으로서 알 수 있다.그림8 - 전기자 인덕턴스()를 증가시켰을 때의 파형 비교=> => 과도응답 속도가 현저하게 느려진 것을 알 수 있었다. 진폭은 변하지 않았다. 또한 정상상태 최종 응답치도 변하지 않았다. 이는 정상상태응답 최종치 공식인와 전달함수 공식인에서값을 감소 시킴으로서 알 수 있다.그림9 - 전기자 인덕턴스()를 감소시켰을 때의 파형 비교=> 과도상태 응답 속도가 빨라졌으며, 진폭이 감소하였음을 알 수 있다. 또한 정상상태 최종치가 감소하였음을 알 수 있다. 이는 정상상태응답 최종치 공식인와 전달함수 공식인에서값을 증가 시킴으로서 알 수 있다.그림10 - 회전마찰계수()를 증가시켰을 때의 파형 비교=> 과도상태 응답 속도가 빨라졌으며, 진폭이 증가하였음을 알 수 있다. 또한 정상상태 최종치가 증가하였음을 알 수 있다. 이는 정상상태응답 최종치 공식인와 전달함수 공식인에서값을 감소 시킴으로서 알 수 있다.그림11 - 회전마찰계수()를 감소시켰을 때의 파형 비교=> 과도상태 응답 속도가 빨라졌고 진폭이 증가하였으며, 정상상태 응답에서의 최종치가 증가하였음을 알 수 있다. 이는 정상상태응답 최종치 공식인와 전동기 속도 공식인에서값을 증가시킴으로서 알 수 있다그림12 - 입력전압()을 증가시켰을 때의 파형 비교=> 과도상태 응답 속도가 빨라졌고 진폭이 감소하였으며, 정상상태 응답에서의 최종치가 감소하였음을 알 수 있다. 이는 정상상태응답 최종치 공식인와 전동기 속도 공식인에서값을 감소시킴으로서 알 수 있다그림13 - 입력전압()을 감소시켰을 때의 파형 비교=> 과도상태 응답 속도가 빨라졌으며, 진폭이 상당히 감소하였다. 또한 정상상태에서의 최종치 또한 큰 폭으로 감소하였음을 알 수 있다. 이는 정상상태응답 최종치 공식인와 전동기 속도 공식인에서값을 감소시킴으로서 알 수 있다그림14 - 역기전력 상수()를 증가시켰을 때의 파형 비교=> 과도상태 응답 속도가 빨라졌으며, 진폭이 증가하였다. 또한 정상 상태에서의 최종치가 증가하였다. 이는 정상상태응답 최종치 공식인와 전동기 속도 공식인에서값을 증가시킴으로서 알 수 있다그림15 - 역기전력 상수()를 감소시켰을 때의 파형 비교=> 과도상태 응답 속도가 증가하였으며, 진폭이 현저하게 감소하였다. 또한 정상상태 최종 응답값 마찬가지로 작은 값을 나타냈다. 이는 마찰 저항이 커짐으로 전동기가 더 작은 힘을 받기 때문에 진자의 진폭이 더 작게 나타나며, 저항이 있음으로 정상상태 응답 최종값이 작아지게 되는 것이다.그림16 - 운동마찰저항을 증가 시켰을 때의 파형 비교=> 과도상태 응답 속도가 증가하였으며, 진폭이 증가하였다. 또한 정상상태 최종 응답값이 증가하였다. 이는 마찰 저항이 작아짐으로 전동기가 더 큰 힘을 받기 때문에 진자의 진폭이 더 크게 나타나며, 저항이 줄어듦으로 정상상태 응답 최종값이 커지게 되는 것이다.그림17 - 운동마찰저항을 감소 시켰을 때의 파형 비교2) 진자의 운동은 동일한 회전토크가 인가될 때,에 의하여 응답특성이 달라지게 되는데, 파라미터를 적절히 수정하여 응답특성을 관찰하고, 각 파라미터가 어떠한 물리적인 특성을 가지는지 설명하시오.=> 과도상태 응답 속도가 빨라졌으며, 진폭이 증가하였다. 또한 정상상태 응답 최종치가 증가하였음을 알 수 있다.가 커지면 진자로 전달되는 회전력이 커지게 된다.그림18 - 자석의 자속상수()를 증가시켰을 때의 파형 비교=> 과도 응답 속도가 증가하였으며, 진폭이 감소하였다. 또한 정상상태 응답 최종치가 감소하였음을 알 수 있다.가 작아지면 진자로 전달되는 회전력이 작아지게 된다.그림18 - 자석의 자속상수()를 감소시켰을 때의 파형 비교=> 과도응답 속도가 증가하였으며, 과도응답 시간이 현저하게 줄어들었다. 진폭은 감소하였다. 또한, 정상상태 응답 최종치는 변하지 않았다.그림19 - 회전막대의 마찰계수()를 증가시켰을 때의 파형 비교=> 과도응답 속도가 증가하였으며, 과도응답 시간이 현저하게 증가하였다. 진폭은 증가하였다. 또한 정상상태 응답 최종치는 변하지 않았다.그림20 - 회전막대의 마찰계수()를 감소시켰을 때의 파형 비교=> 과도 응답 시간이 현저하게 증가하였고, 진폭은 증가하였다.가 커지면 과도상태 응답 시간이 길어진다는 것을 알 수 있다.그림21 - 회전자속막대의 관성모멘트()를 증가시켰을 때의 파형 비교=> 과도 응답 시간이 현저하게 감소하였고, 진폭도 감소하였다.
1. 실험 제목- 아라고 진자 시스템의 PI 및 PID 제어기 설계2. 실험 목적- PI 및 PID 제어기를 설계하여 아라고 진자의 위치제어를 수행하고 응답성능을 관찰한다.- PI 및 PID 제어기의 특징을 파악하고 PD 제어기와의 차이점을 관찰한다.- Ziegler-Nichols 방식을 적용한 PID 제어기 설계를 실험한다.3. 실험 이론1) PI(Proportional and Integral) 제어기그림1 - PI 제어기를 이용한 피드백 시스템PI 제어는 오차신호를 적분하여 제어신호를 만들어 내는 방법으로 그림1과 같이 적분 제어기가 비례제어기와 병렬로 구성된다. PI 제어기의 전달함수는와 같이 표시할 수 있으며 여기서는 비례계수,는 적분계수이다. 제어기의 출력신호를 s-domain이 아닌 time-domain에서 나타내면와 같다.PI 제어기는 개루프 전달함수에의 영점과 원점의 극점을 추가하게 되는데, 극점을 추가함으로서, system의 type이 증가하여 정상상태 오차인값을 개선할 수 있다. 하지만 Bandwidth가 감소하여 rise time이 증가하게 되어, 시스템의 반응이 PD 제어기에 비해 느려지게 된다. 또한 unstable경향이 증가하게 된다. 여기서 보완책이 있는데,값을 0에 가깝게 조절하여 1/s항 소거 효과를 거두어 보완할 수 있다.2) PID(Proportional, Integral and Derivative) 제어기그림2 - PID 제어기를 이용한 피드백 시스템PD제어기와 PI제어기의 장점을 취한 제어기이며, 구조가 간단하고 제어 성능이 우수하며, 시스템의 복잡한 수학적 모델 없이 제어이득을 결정할 수 있기 때문에, 산업현장에서 사용되는 제어기의 80% 이상을 차지할 정도로 많이 이용되는 제어기이다.PID 제어기의 전달함수는와 같이 표현할 수 있는데, 여기서는 각각 비례계수, 미분계수, 적분계수 이다. 제어기의 출력 신호를 time-domain에서 나타내면와 같다.PID 제어기 설계 방법으로는 G(s)에 대해 먼저 PD 제어기를 설계하여 unity feedback 제어에 비해 Damping 개선, overshoot 감소, BW 증가의 효과를 내고, 이후=> (G(s)와 PD제어기가 묶인 것)에 대해 PI 제어기를 설계하여 unity feedback 제어에 비해 Damping을 개선하고, overshoot 감소, BW 감소, 정상상태 오차를 개선하는 효과를 낸다. 마찬가지로 PI -> PD 순서로 설계하는 것도 가능하다.3) Ziegler-Nichols 방법PID 제어기의 계수를 정하는 방식 중 산업체에서 가장 많이 사용 하는 방식으로서, 제어 대상체의 전달함수를 알지 못하는 경우에도 적용할 수 있고, 간단한 실험을 통하여 쉽게 PID 제어기 계수를 정할 수 있는 실용적인 방식이다. 제어기 계수를 구하는 방식이 2가지가 있는데 Open loop tuning 방식과 Closed loop tuning 방식 두가지가 있다.① Open loop tuningStep response method 라고도 한다.제어 대상이 되는 플랜트에 직접 단위계단 입력을 인가하여 그림3과 같은 step response 파형을 구하고 이 파형으로부터 a와 L값을 측정하여 표1의 공식으로 제어기 계수를 정하는 방식이다.그림3 - Open loop tuning표1 - Tuning 공식상수 값 k,가 계산되면 PID 제어기 계수는 다음과 같이 결정 된다.이 방식은 진동이 심한 플랜트에 대해서는 적용하기가 어렵다.② Closed loop tuningFrequnce response method라고도 한다.아래 그림4와 같이 폐루프 제어기를 구성하여 기준 입력을 가하여 출력 파형을 관찰하는 실험을 한다.그림4 - Closed loop tuning그림5 - 진동 시작될 때의 출력파형(계단 응답 경우)표2 - Tuning 공식이 때 제어기의 형태는 적분기와 미분기는 사용하지 않고 비례기만을 사용하는데 비례 제어기 k 값을 작은 값에서부터 점점 증가시킨다. 초기의 작은 k값에 대해서 시스템 출력은 안정을 유지하다가, 점점 k 값을 증가시키면 어느 순간부터 진동을 시작하게 되는데 이 진동이 시작할 때의 k 값을
제어설계 실습 결과 보고서실험실습 아라고 진자 시스템의 PI 및 PID 제어기 설계성 명학 번조?담당조교실험내용 개략(목적 및 방법 간추림)* 실험 목적① PI 및 PID 제어기를 설계하여 아라고 진자의 위치제어를 수행하고 응답성능을 관 찰한다.② PI 및 PID 제어기의 특징을 파악하고 PD 제어기와의 차이점을 관찰한다.③ Ziegler-Nichols 방식을 적용한 PID 제어기 설계를 실험한다.* 실험 내용실험4에서 구성한 프로그램과 Feedforward Control Law를 그대로 사용하며, PI, PID 제어기를 설계하여 45도와 120도, 180도의 안정, 불안정 동작점에 대한 제어를 수행한다. 이 때, 지난 실험에 이용했던 Routh-Hurwitz 방식으로 파라미터 값을 계산해보고, 다른 방법인 Ziegler-Nichols 방법을 이용하여 파라미터 값을 계산해 본 후, 제어 결과를 비교해 본다.결과 및 검토(특이사항 등)① 45도, 120도, 180도의 동작점에 대한 PI 제어기 및 PID 제어기를 설계하고 이 값을 이용한 제어 시스템이 전체 블록(실험4의 그림2)의 시뮬레이션 프로그램에서 잘 작동하는지 확인한 후에 실제 실험 장치에 대한 실험을 수행한다.45도에 해당하는 라디안 값 0.785를 입력으로 적용하고=0.1,=0.1로 한 상태에서 약간의 오차가 나는 관계로 조교님께서 알려주신 feedforward control law에 1.11배의 scaling factor을 주어 45도로 수렴하게끔 작성하였다. 흰색 파형이 그 시뮬레이션인데 PI제어기인 만큼 약간 느린 응답속도를 보임을 알 수 있다.그림1 - 45도의 동작점에 대한 PI 제어기의 시뮬레이션 파형(흰색 선)* Routh-Hurwitz 방식을 이용한 PI 제어기 설계그림상의 막대의 위치를 보면 45.12도로써, 근소한 오차를 제외하고 45도의 동작점에서 제어가 양호하게 되는 것을 알 수 있다.=0.1,=0.1이며, 1.11배의 Scaling을 해주었다.그림2 - 45도의 동작점에 대한 PI 제어기의 실제 실험장치와 막대 진자 사진그림상의 막대의 위치를 보면 120.48도로써, 근소한 오차를 제외하고 120도의 동작점에서 제어가 양호하게 되는 것을 알 수 있다.=0.25,=0.083이다.그림3 - 120도의 동작점에 대한 PI 제어기의 실제 실험장치와 막대 진자 사진그림상의 막대의 위치를 보면 179.73도로써, 근소한 오차를 제외하고 180도의 동작점에서 제어가 양호하게 되는 것을 알 수 있다.=0.82,=0.0273이며, 0.975배의 Scaling을 해주었다.그림4 - 180도의 동작점에 대한 PI 제어기의 실제 실험장치와 막대 진자 사진45도에 해당하는 라디안 값 0.785를 입력으로 적용하고=0.052,=0.005,=0.0002로 한 상태에서 약간의 오차가 나는 관계로 조교님께서 알려주신 feedforward control law에 1.11배의 scaling factor을 주어 45도로 수렴하게끔 작성하였다. 흰색 파형이 그 시뮬레이션이다.그림5 - 45도의 동작점에 대한 PID 제어기의 시뮬레이션 파형(흰색 선)* Routh-Hurwitz 방식을 이용한 PID 제어기 설계그림상의 막대의 위치를 보면 45.73도로써, 근소한 오차를 제외하고 45도의 동작점에서 제어가 양호하게 되는 것을 알 수 있다.=0.005,=0.048,=0.0019이며(Lab View 프로그램 자체 소수점 자리수 한계), 1.11배의 Scaling을 해주었다.그림6 - 45도의 동작점에 대한 PID 제어기의 실제 실험장치와 막대 진자 사진그림상의 막대의 위치를 보면 119.75도로써, 근소한 오차를 제외하고 120도의 동작점에서 제어가 양호하게 되는 것을 알 수 있다.=0.053,=0.174,=0.00106이며, 1.15배의 Scaling을 해주었다.그림7 - 120도의 동작점에 대한 PID 제어기의 실제 실험장치와 막대 진자 사진그림상의 막대의 위치를 보면 179.75도로써, 근소한 오차를 제외하고 180도의 동작점에서 제어가 양호하게 되는 것을 알 수 있다.=0.631,=0.21,=0.009465이다.그림8 - 180도의 동작점에 대한 PID 제어기의 실제 실험장치와 막대 진자 사진* Ziegler-Nichols 방식(Closed Loop Tuning)을 이용한 PI 및 PID 제어기 설계tuning공식을 적용하기 위해를 0.05로 설정한후 45도 동작점에서의 제어기에 약간의 외란요소(손가락으로 건드림)를 주어서, 일정한 진동을 시작하는 주기()를 측정하였다. 측정한=1.0sec임을 알 수 있다.그림9 - Tuning 공식을 적용하기 위한값을 찾는 과정그림상의 막대의 위치를 보면 45.03도로써, 근소한 오차를 제외하고 45도의 동작점에서 제어가 양호하게 되는 것을 알 수 있다. Tuning 공식을 이용하여 구한 파라미터 값은=0.02,=0.025이며, 1.11배의 Scaling을 해주었다. 두 번째 그림의 빨간색 선이 실제 동작파형이다. 시뮬레이션 때보다 진동폭은 크나, 45도로 수렴하고 있음을 알 수 있다.그림10 - Z-N방식으로 설계한 PI제어기 결과그림상의 막대의 위치를 보면 45.85도로써, 근소한 오차를 제외하고 45도의 동작점에서 제어가 양호하게 되는 것을 알 수 있다. Tuning 공식을 이용하여 구한 파라미터 값은