자동제어 시스템 및 설계2005113619전 현 진◈ 과도응답 특성아래 그림과 같은 시스템에서 Percent Over shoot 27~30% 이내, rise time 1.5초 이내, settling time 6초 이내의 값을 만족시키는 임의의 값 K를 구하여라.1. Block Diagram을 통해 Transfer Function을 구할 수 있다.2. 특성방정식을 통해와값을 얻어낼 수 있다.3.로 결정하면값을 구할 수 있다.4.값을 특성 방정식에 대입하면 나머지 파라미터 값을 구해낼 수 있다.5.임을 이용해 Settling Time, Natural Frequency, Rise Time을 구한다.계산을 통해 얻어낸 Transfer Function의 특성모든 조건에 만족한다.6. 결론로 결정한다.po = 28 % Desire Value of Percent OvershootTs = 4 % Desire Value of Settling Time% Calculate Zeta Valuezeta = sqrt((log(po/100))^2 / ( pi^2 + (log(po/100))^2 ))Wn = 4/(4*zeta) % Natural FrequencyTr = (2.16*zeta+0.6)/Wn % Rise TimeK = round(Wn^2) % Gain K% Generate Transfer Functionnum1 = [K]; den1 = [1 0];num2 = [1]; den2 = [1 2];G_c = tf(num1, den1);G_p = tf(num2, den2);G = series(G_c, G_p);% Transfer Functionsys_tf = feedback(G,[1])모두 조건에 만족함을 알 수 있다.◈ 근궤적법을 이용한 Gain값 도출a) 제어기가일 때 근궤적을 그리고인 근의가 0.15 이상이 되는를 결정하라.(의 최대값을 찾아라.)1.이고이므로라 할 수 있다.인 지점에서 우세극점을 결정 한다.2. Block Diagram을 이용해 특성방정식을 구한다.3. 특성방정식을 이용해 근궤적도를 그리기 위해 Pole점과 Zero점을 찾는다.4. 궤적이 어느 값으로 점근해 가는지 알아내기 위해,값을 찾는다. 근의 궤적은 중심이이고 각도가인 점근선을 따라 무한대에 있는 영점으로 점근한다.Pole점의 개수Zero점의 개수5. 최종적으로 근이 수렴하는 Entry Point를 찾는다.6. 결론K>0일 경우 K값이 증가함에 따라,두 점은 중심점이며 각도인 점근선에 수렴하여 무한대의 영점에 다가간다. 또한두 점에서 출발한 근궤적은 Entry Point인점으로 수렴한 뒤점으로 수렴한다.(나머지 Entry Point는 K0일 경우 K값이 증가함에 따라,두 점에서 출발한 근궤적은점으로 수렴한 뒤와 무한대에 존재하는 0점으로 수렴한다. 또한두 점에서 출발한 근궤적은점으로 수렴한 뒤점으로 수렴한다. (나머지 Entry Point는 K
0. 개요. DC Motor 동작 시 각도를 제어하며 PID제어를 적용한다.가. USART를 이용하여 제어각도 입력과 Motor동작을 제어한다.나. 단, 제어각도는 0°~180°로 한다.1. PID이론. 기본이론3항 또는 PID제어기로 불리우며 다음과 같은 전달함수를 가진다.이 제어기는 비례항, 적분항, 미분항을 가진다. 시간영역에서의 출력방정식은 다음과 같다.이 3항 제어기는 비례항, 적분항, 미분항을 가지고 있으므로 PID 제어기라고도 부른다. 미분항의 전달함수는 실제로는이나가 일반적으로 공정 자체의 시상수보다 매우 작으므로 무시할 수 있다.만일으로 두면, 다음과 같은 비례적분(PI) 제어기가 된다.으로 두면,이며 비례미분(PI) 제어기라 부른다.많은 산업공정은 비레적분미분(PID) 제어기를 이용하여 제어한다. PID제어기가 많이 쓰이는 이유는 광범위한 동작조건에서 좋은 성능을 보이며, 공학자가 쉽고 간단하게 동작 시킬 수 있는 단순성에 기인한다. 이러한 제어기를 사용하기 위해서는 주어진 공정에서 세 가지 매개변수, 즉 비례이득, 적분이득, 미분이득을 결정해야 한다.PID 제어기는 PI제어기와 PD제어기가 직렬 연결된 것으로 생각할 수 있다. 다음의 PI제어기와 PD제어기를 논의한다.여기서 다음과 같은 PI, PD 제어기 이득이고,는 PD제어기의 이득이다. 두 제어기를 직렬 연결하면 다음과 같다.여기서 다음과 같은 PI, PD 제어기 이득과 PID 제어기 이득 사이의 관계식이 만족된다.각 제어는 동작 후 발생하는 Error를 처리하여 다음 동작에 적용하여 정상상태에 도달하게 되는데, P(Proportional)제어는 에러 Error에 비례한 출력을 내는 비례동작이며, I(Integral) 제어는 Error의 적분에 비례하는 출력을 내는 적분동작이고, D(Derivate)제어는 Error의 미분에 비례하는 출력을 내는 미분동작이다. 적분동작의 경우 계수 값이 커질 경우 제어량이 급격하게 증가하는 단점이 있으므로 대체로 작은 값으로 설정하게 된다.가. P제어P 오차를 줄여 주면서 과도 응답으로 발생한 시스템의 느린 반응을 빠르게 할 수 있다. 단점은 Gain 계수 조정이 잘못 되면 시스템이 불안해지고 반응이 느려진다. Overshoot가 증가하고가 증가한다. 이러한 단점을 보완하기 위해서는 D제어기를 사용함으로써 해결된다. PI제어기의 입출력 관계식은 다음과 같다.다. PD제어D 동작을 P 동작과 PI 동작에 부가시켜 응답속도를 개선할 수 있다. D 동작의 목적은 편차가 일어나는 시초에 큰 수정 동작을 주어서 편차를 빠르게 감소시켜 주는데 있다. D 동작은 편차 변화시에만 출력이 나오고, 아무리 편차가 크더라고 그 값이 일정 할 때에는 출력이 Zero가 된다. 즉, 편차에 빠르게 대처하는 속응화 능력은 가지고 있지만, 정상편차를 감소 시키는 능력은 없다. D동작을 사용하면 시스템의 안정성이 증가한다. 단독으로 사용될 수 없으며, 주로 비례동작과 조합되어 PD 제어로 사용된다. 오차 신호를 미분하여 제어 신호를 만들어내는 미분제어를 비례 제어에 병렬로 연결하여 사용하는 제어기법이다. 비례 제어 부분과 미분 제어를 함께 쓴다는 뜻에서 이 기법에 의한 제어기를 비례 미분 제어기(Proportional ? Derivative Controller, 또는 PD 제어기 라고 한다. D 요소를 부가한 것으로 인해 PD 제어기는 P 제어기보다 응답이 빠르다. PD 제어기의 관계식은 다음과 같다.라. PID제어앞에서 설펴 보 바와 같이, PD 제어기는 시스템의 응답 속도를 개선시키지만 정상상태 응답을 개선하는 데에는 효과가 없으며, PI 제어기는 정상상태 오차를 개선 시키지만 상승시간이 느려지는 등 과도응답에는 불리하다는 것을 알았다. 따라서, 정상상태 응답과 과도상태 응답을 모두 개선하려면 PI 와 PD 제어기의 장점들을 조합하는 방법을 자연스럽게 생각 할 수 있는데, 이러한 목적으로 제안된 제어기가 바로 PID 제어기 이다.PID제어의 관계식은 다음과 같다.마. 각 제어간 요약구분특성P- 간단하다- 적절히 Tuning 되었을 때PID계수를 통한 Transfer Function 도출 및 안정도 판별. Transfer Function 도출이제 Unity Feedback을 적용하여 Transfer Function을 구하면가. Routh-Hurwits 판별법을 통한 안정도 판별열의 부호변화가 없어야 하므로의 분모에 의하여항에 의하여항의 분자를 살펴보면(분모가 양수일 경우)(분모가 음수일 경우)특성방정식을 통해 각 Gain값을 구하면원하는(Damping Ratio)값과(Settling Time)값에 의한을 구해보면(이 수치는 프로그램에 적용된다)5889950333.333**************************166.67117080142.86*************111.1*************630222.221511240166.67105760133.3373330111.115210095.244141083.33399074.07372066.671511240166.67*************1004141083.33389071.43360062.5242055.562310504. 적용과정. 회전각 제어를 위한 Encoder의 이용Motor의 회전에 따라 Motor에 연결되어있는 Encoder에서는 펄스를 발생하게 된다. 펄스 출력 포트에 연결된 MAX7000-EPM7064S 칩에 의해 입력 펄스를 카운트 해준다(MAX7000-EPM7064S칩에는 카운터 로직이 프로그램 되어있다).이 값을 ATMega128 Processor로 입력받아 Motor의 회전방향 및 회전속도를 결정짓고 그에 따라 Motor를 제어하게 된다. Motor가 한 바퀴 회전할 때 Encoder 값은 0~4985만큼 변한다. 1°가 회전함에 따라 증가하는 Encoder 값은 약이므로 11에서 12사이의 값이 변하게 된다. Motor의 회전각을 0°~180°만큼 제어하기 위해서는 Encoder 값을 0~2047 사이에서 제어하면 된다.가. 제어량의 생성에 따른 회전방향 및 회전속도 결정Motor를 제어하기 위해 PID제어의 관계식unsigned char lcd_cnt=0; // LCD에 Encoder 값을 출력하기 위한 타이밍 변수unsigned int i,x; // 모터 회전 속도 결정읠 위한 변수 (속도 범위 0~100)unsigned int OCRL1,OCRH1,OCRL2,OCRH2; //PWM 발생을 위한 변수// Varialbe for PID Controlunsigned char turn_state = STOP; //초기 모터 상태 = STOP// 한바퀴 엔코더값 0000 ~ 4095 = 4096// 반바퀴 엔코더값 0000 ~ 2047 = 2048// 반반바퀴 엔코더값 0000 ~ 1023 = 1024long desire; // 목표치 (Encoder Value)long Error=0; // 현재 에러값long Past_Error=0; // 이전 에러값long Error_Sum=0; // 누적 에러값long Motor_Control_Val=0; // 제어량 (제어량 범위 0~2000)// Varialbe for USARTchar key_data; // 입력된 Key Datachar tx_buf[TX_BUF_SIZE] = {'0'}; // 입력된 Key Data를 저장(2번째 부터)char tx_end = 1; // 저장된 Key Data의 크기를 위한 변수int degree_data = 0; // 목표치 (Degree Value)void main(void){initialize(); //AVR 초기화i = 0; //모터 회전을 위한 속도x = 0;// LCD module initializationlcd_init(16);#asm("sei") // Interrupt Enablewhile (1){desire = (int)(degree_data*DEGREE_SCALE); // 목표각도에 의한 Encoder 목표치 설정turn_motor(); // 목표치에 의한 모터 회전}}void turn_motor(void){//제어량을 이용한 PWM 생성OCRL1=i&0x00ff;OCRH1=(i= PINF;pos = (SDT[1]*256)+SDT[0];if(pos>3000){ // Encoder 값에 Underflow가 났을 경우pos = pos-4095; // 제어량을 역으로 생성}Error = desire - pos; // 목표치와 현재값에 대한 에러Error_Sum += Error; // 누적 에러값 생성if(Error == 0) { // 목표치에 수렴하면 누적 에러값 초기화Error_Sum = 0;}else if(Error_Sum > ERROR_SUM_MAX){ // 누적 에러값의 한계치를 설정Error_Sum = ERROR_SUM_MAX;}else if(Error_Sum < (- ERROR_SUM_MAX)) {Error_Sum = (- ERROR_SUM_MAX);}// PID Control로 제어량 생성Motor_Control_Val += ( (P_GAIN * Error) + (D_GAIN *(Error - Past_Error)) + (I_GAIN * Error_Sum) );if(Motor_Control_Val>0){ // 제어량이 양수일 경우turn_state=FORWARD; // 정방향 회전if(Motor_Control_Val >= 2000){ //제어량의 한계치를 설정Motor_Control_Val = 2000;}i = Motor_Control_Val/20; //제어량에 의한 모터 회전 속도 결정}else if(Motor_Control_Val3000){ // Underflow 발생 경우 정방향 회전turn_state=FORWARD;}else{turn_state=BACKWARD; // 역방향 회전}if(Motor_Control_Val 분주비 256 = 62.5KHzTCNT0 = 0x06; // 0000_0110 -> 초기값 10진수로 6 = 4ms에 한번씩 InterruptTIMSK = 0x01; // Overflow Interrupt Eable// Timer/Counter 1// PC PWM을 이용해 16MHz로 10bit PWM -했다.
설계 작품 : 선풍기버튼에는 정지, 약풍, 강풍, 회전 이 있다.정지 버튼을 누르면 선풍기는 정지한다.약풍, 강풍 버튼을 누르면 선풍기는 바로 동작한다.회전 버튼을 누르면 선풍기가 회전하며 한번 더 누르면 회전을 멈춘다.정지상태에서 회전을 눌러도 선풍기는 동작하지 않는다.버튼은 동시에 두개 이상 함께 눌리지 않는다.
패러다임과 생활20513619전자공학과 전 현 진제목부터가 나 같은 공학도생들에게는 어울릴 것 같으면서도 제목 사이에 들어있는 ‘혁명’ 이라는 단어가 약간의 거부감을 들게 했다. 이 책은 저자이자 과학철학자인 ‘토마스 쿤’ 이 정상과학이 변화에 가는 과정을 그가 정의한 ‘패러다임’ 이라는 개념을 이용해 과학적 혁명이 어떻게 이루어 져 가는가를 이야기 한 것이다. 책의 내용이 어려워서 읽다가 포기했다는 독자들이 많은 것 같았다. 그렇지만 내용은 사실 나 같은 공대생들에게도 역시 별로 친숙하다는 생각은 하지 못했다. 그가 얘기하고자 한 바는 혁명의 구조였을 뿐 전문적 과학지식이 아니었다. 아마도 그가 좀 더 쉬운 내용 전달을 위해 많은 양의 예를 들어가면서 설명했는데 그 예시가 대부분 물리학과 관련된 이야기여서 그랬을 것이다. 만약 같은 내용을 쿤이 아닌 인문학에 관련된 사람이 인문학에 관련된 예시를 들며 글을 썼다면 다른 독자들은 좀 더 이해하기 쉽지 않았을까 하는 생각을 했다. 물론 그렇게 됐다면 나는 이해하기가 힘들었을 것이다.이 책을 읽으며 정상과학이 어떻게 이루어지는가, 정상과학이란 무엇인가, 하나의 이론이 생겨나고 위기를 격고 새로운 이론이 생겨나는 과정 등 과거에 어렴풋이 듣고 배웠던 점을 확실히 하게 되었고, 쿤은 이러한 이야기들을 자신이 만들어낸 ‘패러다임’ 이라는 개념을 이용해 이끌어 갔다. 이 책에서 패러다임이란 개념을 이해하지 못하면 전체적 내용을 이해하기 힘들다.그렇다면 패러다임 이란 과연 무엇일까. 책에서는 패러다임 이란 개념을 서론 부분에서 정상과학과 연관 지어 길게 설명하고 있지만 우리들에게 일반적으로 알려진 패러다임의 개념은 ‘어떤 한 시대 사람들의 견해나 사고를 지배하고 있는 이론적 틀이나 개념의 집합체’ 이다. 쿤은 어떠한 이론에 대한 연구가 어떻게 진행되어가고 대부분의 과학자들이 인정하는 이론은 어떻게 탄생되고 없어지고 변화해 가는가를 패러다임 이라는 개념을 이용해 이야기 하고 있다. 하지만 패러다임 이라는 용어를 좀 더 넓게 생각해본다면 꼭 정상과학 분야 외에도 다른 많은 곳에 적용 할 수 있다. 예를 하나 보자. 예전에 선거를 할 때 후보들이 종종 ‘xxx 와 함께 새로운 패러다임을 실현시키자.’ 라는 식의 문구를 사용한 것을 본 적이 있다. 만약 xxx 라는 후보가 당선이 되면 그가 가지고 있는 생각, 개념, 계획 등을 모든 사람에게 알리려 할 것이다. 그리하여 그를 지지 하는 사람들이 생겨난다면, xxx 당선자와 그를 지지하는 사람들 사이에 공통적인 하나의 패러다임이 생겼다고 할 수 있을 것이다. 책을 읽으면서 패러다임에 대해서 생각해봤지만, 나는 패러다임이 꼭 뭔가 중요하고 거대한 것에만 적용된다고 생각하지 않는다. 다른 예를 들자면 현재 우리나라 일반계 고등학생의 대부분은 대학을 가기위해 공부를 한다. 그렇다면 ‘일반계 고등학교에서는 대학교를 진학 하는 것이 일반적이다.’ 라는 것도 패러다임으로 존재할 수 있는 것이다. 조금 더 극단적으로 패러다임이라는 개념적으로만 따진다면 우리들이 알고 있는 일반적 상식 또한 우리 모두의 공통의 패러다임일 수 있지는 않을까. 꼭 ‘빛은 파동이다.’ 라는 식의 것만이 패러다임으로 정의되어야 한다고는 생각하지 않는다.그렇다면 이러한 패러다임이 변화해 가는 과정은 어떠한 것인가. 쿤은 하나의 패러다임이 위기를 맞고 쇠퇴하며 새로운 패러다임이 자리를 잡는 식으로 변해간다고 이야기 했고 바로 이것이 ‘과학 혁명’ 이다. 이전 패러다임을 뒤집어엎을 힘을 지닌 새로운 패러다임은 이전 패러다임으로는 해결할 수 없었던 문제를 해결할 수 있어야 하고, 또한 이전 패러다임이 해결했던 모든 것 들을 모두 수용하고 있어야 할 것이다. 예를 들어 생각하자면 세 명의 프로그램 작성자가 있는데 두 명은 하나의 문제를 해결하기 위해 그 둘의 공통된 방법(곧 패러다임)을 가지고 문제를 하나하나 해결해 나가다가 문제에 부딪혔을 때, 다른 한사람이 전혀 다른 방법으로 이전 것은 물론 새로운 문제 또한 해결해 내면 나머지 한 사람이 사용한 방법은 이전 방법을 쇠퇴시키고 새로운 패러다임으로 떠올랐다고 볼 수 있는 것이다. 간단한 예를 든 것이지만 실제로 대다수의 생각을 지배하는 패러다임을 바꾸어 놓는다는 것은 정말 어려운 일일 것이고, ‘혁명’ 이라는 단어가 딱 어울린다. 시간이 지남에 따라 빠르게 변하는 우리 사회속의 패러다임으로 볼 수 있는 수많은 기술들 역시 이러한 모습으로 계속 바뀌어 나갈 것이고, 나를 비롯한 수많은 공대생들은 엔지니어로써 혁명을 이루어 나가는 사람이 되어야 하지 않을까. 아직 어린나이지만 앞으로 진출해야할 사회와 점점 더 힘들어져만 가는 경쟁을 보면 볼수록 두려워 지기만 하는 것 같다. 이런 환경에서 엔지니어가 빠른 변화에 대처하고, 그보다 앞서 변화를 주도하기 위해서는 아마도 기존에 나와 있는 모든 기술들을 모두 이해해야 할 것이고, 거기에 이어서 기존의 것들 보다 더 나은 기술을 개발하기 위해 자신의 능력을 기르는 것이 정말 중요할 것 이라는 생각이 들었다.