2010년 4월 6일 화요일

Matlab Simulink 를 이용한 1차, 2차시스템 P제어

4월 6일 오늘 제어공학 시간에 배운 내용입니다.


많은 분들께 도움이 되었으면 합니다.



1. 먼저 Simulink 를 이용하기 위해 Command Window 에 "Simulink" 라고 입력하고 엔터를 칩시다.




2. 조금 뒤 아래와 같이 라이브러리 브라우저가 뜹니다. 그림의 아이콘을 눌러 새 에디터를 띄웁시다.


3. 그리고 라이브러리 Continuous 에서 Transfer Fcn 을 마우스로 에디터에 끌어다 놓습니다.




4. 우리는 1/S+2 전달함수를 쓸 것이므로 Transfer Fcn 아이콘을 더블클릭하여, 분모 계수를 [1 2] 로 바꿔줍시다.



5. 출력을 넣어야 하므로 Sinks 카테고리를 누르고 Scope 를 끌어다 놓습니다.




6. 피드백 연결을 만들어야 하는데 그러기 위해서는, 피드백 출력을 받기위한 아이콘이 필요합니다.

Math Operation 카테고리에서 Sum 아이콘을 끌어다 놓습니다.




7. P 제어에서 핵심인 Kp 를 붙여야 합니다. Math operations 에서 Gain 을 가져다 놓습니다.




8. 그리고 Sum 아이콘을 더블클릭하여 피드백 연결로 만들기 위해 I++ 를 I+- 로 만들어줍시다.






9. 그리고 Gain 의 1을 나중에 값에 따른 그래프를 그리기 위해 Kp 로 바꿉시다.




10. 그리고 스텝입력을 넣기 위해 Sources 카테고리에서 Step 아이콘을 끌어다 놓습니다.




11. 그리고 우리는 입력이 0부터 시작하기 때문에 Step 을 0 으로 바꿔줍시다.





12. 모든 아이콘을 선들로 연결합시다. 아이콘이 선택된 상태에서 Ctrl 을 누르고 옆 아이콘을 선택하면 선이 연결됩니다. 단, 피드백 연결의 경우 그림의 순서에 따라 마우스로 그려줍시다.




13. 그리고 출력값을 이용하기 위해, Scope 를 더블클릭하고, 아래 그림에 보이는 아이콘을 클릭합시다.




14. Data History 탭으로 가서 그림과 같이 설정을 해주고, OK 를 누릅시다.



15. 일단 파일로 저장을 합시다. Kp 값이 아직 지정되지 않았기 때문에 플레이를 눌러도 에러가 뜹니다.



16. Simulink 는 일단 접어두고, Matlab 으로 가서 새로운 m 파일을 만들기 위해 아래 그림에 보이는 아이콘을 눌러 새 에디터를 켭시다.




16. 일단 기본적으로 clear all, clc 를 칩시다.

다음 P 제어에서 중요한 Kp 의 값을 지정하고

Simulink 파일을 불러오기 위해 sim 명령어를 씁시다.




17. 다음 결과값을 그래프로 표시하기 위해 아래와 같이 입력해줍시다.

y1 의 경우 아까 Data History 에서 지정해 주었던 값입니다.

y1 의 첫번째 열은 입력, y2 의 두번째 열은 출력입니다.




18. 마찬가지로 Kp 가 10 일때 100 일때를 지정해주고, 플레이 버튼을 눌러봅시다.




19. 어라? 결과값이 하나밖에 출력이 되지 않았습니다. 이유는 계속해서 simulink 를 로드하면서 맨 마지막 값만 나오게 되는 것입니다.




20. 세 개의 그래프를 모두 표시하고 싶다면, hold on 이라는 명령어를 쓰면 됩니다.

맨 마지막 줄에는 hold off 를 쓰면 됩니다.




아래와 같이 3개의 그래프가 모두 정상적으로 출력을 합니다.




21. 이번엔 2차 시스템을 표현해야합니다. 아래와 같이 쭈욱 마우스로 선택을 합시다.

그리고 Ctrl+C 를 하시고




22. 이번엔 Ctrl+V 를 눌러 붙여넣기를 합시다. 그러면 아래와 같이 복사본 블록선도가 뜹니다.




23. 그리고 복사된쪽의 Transfer Fcn1 을 눌러서 값을 [1 2 0] 으로 바꿔줍시다.




24. 그리고 Scope1 을 더블클릭하여 아래 그림과 같은 순서대로 값을 채워넣습니다.




25. 그리고 저장을 합시다.




26. 우리는 그래프 창을 두 개를 띄울 것이기 때문에 figure(2) 를 써주고, 두번째 복사된 블록선도에 관한 입출력 y2 에 관한 그래프를 그려야 하므로 아래와 같이 쓰고, 끼워 넣으면 됩니다.

Kp 값이 달라지는 지점에 끼워넣어야 한다는 것을 잊지 마세요.

※ 아래의 코드는 모두 그래프에 속성을 주었습니다. 그래프 선 두께를 굵게 하기 위해 linewidth 를 적용하였습니다.




27. 그러면 아래와 같이 두 개의 그래프창이 뜰 겁니다. 그런데 무엇인가 허전하죠?




28. 아래와 같이 범례를 표시하는 함수 legend 를 넣어주세요. 맨오른쪽의 4 는 표시 위치를 뜻합니다.

그리고 Figure 1 그래프의 경우 위쪽에 너무 붙는 경향이 있으므로 축 표시눈금을 바꾸기 위해

axis(x축 범위 y축 범위) 명령어를 썼습니다.




29. 결과값이 나왔군요!~


댓글 2개: