[자동제어]인슐린제어시스템
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
해당 자료는 10페이지 까지만 미리보기를 제공합니다.
10페이지 이후부터 다운로드 후 확인할 수 있습니다.

목차

1.개요 및 시스템 설계의 목적
1)개요
2)시스템 제어의 목표 설정
2.Routh-Hurwitz 판별법을 통한 시스템의 안정성 분석
3.PID 제어
1)P제어
2)PI제어
3)PD제어
4)PID제어
4.PID제어를 이용한 MATLAB 시뮬레이션 분석
5.최종 설계 및 후기

본문내용

Y=t 그래프와 일치한다.
- Parabolic Input
* Closed-loop Transfer Function
* Steady state error
* M-file
t=[0:0.05:5];
kp=12; % 10,12,16을 대입
kd=2; % 2,4를 대입
num1=[kd 2*kd+kp 2*kp]; den1=[kd+1 2*kd+kp+1 2*kp 0 0];
[y,x,t]=step(num1,den1,t);
f=fopen('pdpara102.xls','wt'); % 엑셀 출력
fprintf(f,'%f\n',y);
fclose(f);
Parabolic Input에서는 각 경우들이 Y=t^2 곡선을 따라가려는 모습을 보임.
- 알맞은 Kp값 및 Kd값 제시 : 3가지 Input 값을 비교한 결과 적절한 이득값을 찾지 못함.
4) PID제어
이번엔 P제어에 I제어의 빠른 Rise time과 D제어의 overshoot감소 이득을 결합한 PID제어를 시도해 보았다.
- Step Input
* Closed-loop Transfer Function
* Steady state error
* M-file
kp=10; % 10,12,16값 선정
ki=2
kd=2 % 2,4,6,10값을 대입
num=[0 1 2];
den=[1 1 0];
sys=tf(num,den);
t=[0:0.05:5];
numc=[kd kp ki];
denc=[0 1 0];
sysc=tf(numc,denc);
syso=series(sysc,sys);
syscl=feedback(syso,[1]);
step(syscl,t);
[b,a]=step(syscl,t); % 엑셀 출력 부분
f=fopen('pid1022.xls','wt');
fprintf(f,'%f\n',b);
fclose(f);
Over
shoot
2.81%
Rise time
0.391s
Settling time
2.8s
S.S.Error
0
Over
shoot
4.68%
Rise time
0.353s
Settling time
2.5s
S.S.Error
0
Over
shoot
1.63%
Rise time
0.562s
Settling time
5.01s
S.S.Error
0
Over
shoot
3.09%
Rise time
0.494s
Settling time
3.38s
S.S.Error
0
Over
shoot
2.54%
Rise time
0.344s
Settling time
2.28s
S.S.Error
0
Over
shoot
1.5%
Rise time
0.499s
Settling time
3.89s
S.S.Error
0
Over
shoot
3.98%
Rise time
0.317s
Settling time
2.4s
S.S.Error
0
Over
shoot
2.66%
Rise time
0.449s
Settling time
3.32s
S.S.Error
0
8가지 경우 모두 다 0.5초이내의 Rise time과 1초이내의 Settling time에 못 미쳐 시스템의 목적을 초과해 버렸다.
- Ramp Input
* Closed-loop Transfer Function
* Steady state error
* M-file
t=[0:0.05:5];
kp=12; % 10,12를 대입
ki=2 % 2,6을 대입
kd=2; % 2,4를 대입
num1=[kd 2*kd+kp 2*kp+ki 2*ki]; den1=[kd+1 2*kd+kp+1 2*kp+ki 2*ki 0];
[y,x,t]=step(num1,den1,t);
f=fopen('pidramp1222.xls','wt'); % 엑셀 출력
fprintf(f,'%f\n',y);
fclose(f);
Y=t 직선에 대부분 일치하는 응답을 보임.
- Parabolic Input
* Closed-loop Transfer Function
* Steady state error
t=[0:0.05:5];
kp=12; % 10,12를 대입
ki=2 % 2,6을 대입
kd=2; % 2,4를 대입
num1=[kd 2*kd+kp 2*kp+ki 2*ki]; den1=[kd+1 2*kd+kp+1 2*kp+ki 2*ki 0 0];
[y,x,t]=step(num1,den1,t);
f=fopen('pidpara1222.xls','wt'); % 엑셀 출력
fprintf(f,'%f\n',y);
fclose(f);
* M-file
Y=t^2을 쫓아가는 모양의 응답을 보임.
- 알맞은 Kp값, Ki값, Kd값 제시 : 3가지 Input 값을 비교한 결과 0.5초이내의 Rise time, 1초이내의 Settling time에 만족하는 값을 찾지 못함.
5. 최종 설계 및 후기
P제어, PI제어, PD제어, PID제어 등을 번갈아 가면서 시물레이션 해본 결과, P제어와 PI제어만을 사용했음에도 처음 잡았던 목표인 5%이내의 오버슈트와 0.5초이내의 Rise time, 1초이내의 Settling time에 도달함을 확인할 수 있었다. 컨트롤러 설계는 되도록 간단히 하는 것을 선호하므로 굳이 D제어를 사용할 필요없이 P제어와 PI제어만으로 컨트롤러를 구성하는 것이 가능하다고 하겠다. 앞의 시스템에 알맞은 값으로 제시되었던 수치들을 종합하여 최종설계된 컨트롤러를 처음에 설정한 시스템과 비교해 보도록 하겠다.
Max.
overshoot
Rise time
Settling time
S.S.Error
설계 목표
5% 이내
0.5sec 이내
1sec 이내
0
Kp=12일때
4.38%
0.154sec
0.884sec
0
Kp=16, Ki=2일때
4.34%
0.119sec
0.821sec
0
성능 면에서는 Kp=16, Ki=2의 값으로 설계했을 때 가장 좋은 결과를 보이지만, 사실상 Kp=12일때와 큰 차이가 없고 컨트롤러를 더욱 간단히 설계할 수 있다는 이점 때문에 P제어를 사용한 Kp=12를 최종 설계 시스템으로 결정하였다.
아직 4학년임에도 MATLAB 사용이 능숙하지 못한 나에게 이번 동적 시스템 프로젝트는 내가 스스로 MATLAB 사용법과 PID제어에 대해 더 심도있게 공부할 수 있는 계기가 되었으며, 과제를 수행하고 설계를 하는 동안 큰 보람을 느낄 수 있었던 기회가 되었다.

키워드

  • 가격3,000
  • 페이지수53페이지
  • 등록일2009.10.26
  • 저작시기2008.7
  • 파일형식한글(hwp)
  • 자료번호#558108
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니