본문 바로가기

LAB/제어이론

자동제어(3) 전달함수 simulation(매트랩)

728x90
반응형

 

 

상태공간 모델 : 벡터를 이용하여 시스템을 표현할 수 있다.

사용하는 이유 : 고차 미분 방정식을 n개의 1차 미분 방정식으로 바꿀 수 있다. 

 

**전달함수는 [매트랩]의 [tf] function을 이용하면 쉽게 찾을 수 있다. 

 

 

전달함수 시뮬레이션 (매트랩)

 

sys = tf(1,[1 9 9])
step(sys)

 

 

1. 매트랩에서 시스템의 전달함수는 다음 명령어로 표현할 수 있다. 

 

-> 분자는 1, 분모(9s*s + 9s +9)는 계수만 작성한 후, tf괄호를 씌우면 된다. 

그 아래의 명령어는 system의 응답을 보기 위한 명령어다. 

 

 

damping 값이 크므로 overdamping이라는 결과값을 얻을 수 있다. 

9s의 계수를 줄여 나가면, 값에 따라 다른 응답 특성을 확인할 수 있다.

 

 

너무 빽빽한 응답특성이 보일 경우, 시뮬레이션 시간을 0에서 0.1단위로 5초까지 나오게 하는 명령어를 사용하자. 

 

 

음..! 

step(sys, [0:0.1:5])가 맞는 명령어이다. 

 

 

2. 전달함수의 분모의 계수를 모를 때

 

다음 명령어로 전달함수를 구할 수 있다.

1/((s+1)*(s+2)*(s+5)) 라는 전달함수를 푼다고 생각해보자. 

s를 변수로 두기 위해 첫번째 줄 명령어를 꼭 입력해야 한다. 

 

s=tf('s')
sys=1/((s+1)*(s+2)*(s+5))
step(sys)

 

 

이와 같은 방법으로도 전달함수 및 응답 특성을 확인할 수 있다. 

 

명령어를 한 줄 씩 작성하기 귀찮다면, '새 스크립트'를 만들어 한 번에 명령어들을 실행할 수 있다. 

저장 후(저장하면 확장자가 m으로 저장된다) 실행 버튼을 누르고, '폴더 변경' 누르면 됨

 

 

 

3. symbolic을 이용할 수 있다. 

 

syms 's'
sys=1/(s+1)

 

tool을 설치해주어야 한다.

라플라스 역변환, 미분과 적분 등에 쉽게 사용될 수 있다. 

 

 

 

 

4. simulink

 

훨씬 더 쉽게 시스템을 이해할 수 있다. 

설치가 안되어 있을 경우, 명령창에 'simulink'를 작성하고, 설치 링크로 들어가 설치하자. 

 

1) 모델 생성 -> 라이브러리 브라우저로 들어가면, tool을 사용할 수 있다. 

 

 

2) 불러온 전달함수를 수정하려면, 더블클릭 후 수정 가능하다. 

 

 

3) step과 scope도 끌어오고, 이들을 선으로 연결한다. 

 

4) 실행 버튼을 누른 다음, scope을 더블클릭하면 다음 화면을 볼 수 있다. 

 

 

5) 작업공간을 보고싶다면, workspace를 끌어와서 다음과 같이 연결, 더블클릭하여 일부 수정한다. 

 

 

6) plot(out.simout)이 안 되는딩 !~

 

** 출력(scope)은 library -> sink에 위치해있다. 

** (step)은 library -> sources에 위치해있다. 

** 작업공간(workspace)은 library -> sink에 위치해있다. 

 

 

상태방정식을 라플라스 변환-> 전달함수로 구하기(매트랩)

 

1) A, B, C, D의 값을 matrix로 표현한다. 

-> B = [1 1]'와 같이 '를 붙이면 traspose된다. 

 

 

2) syms s 후에, 전달함수 식을 작성하자. 

 

 

 

비선형 시스템 다루기[매트랩]

 

자동제어 과제 문제 있는지 물어보기

 

 

728x90
반응형