레이블이 공부인 게시물을 표시합니다. 모든 게시물 표시
레이블이 공부인 게시물을 표시합니다. 모든 게시물 표시

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. 결과값이 나왔군요!~


2010년 3월 30일 화요일

Matlab 강좌 - Simulink 를 이용해 스텝응답(Step Response) 보기

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


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



1. Command Window 에 simulink 라고 치고 엔터를 칩시다.




한참 기다리시면 아래와 같은 창이 뜹니다. 종이 모양 아이콘을 눌러 새 에디터를 띄웁시다.




아래와 같이 에디터가 뜨게 됩니다. 위쪽 그림을 보면 Continuous 가 보입니다. 들어가시면 아래와 같은 모양의 아이콘을 쉽게 찾으실 수 있습니다. 마우스로 끌어다가 에디터에 놓기만 하시면 됩니다.




그리고 세부 값을 변경하기위해 끌어다 놓은 아이콘을 더블클릭 해봅시다.




보시면 아래와 같은 창이 뜹니다. 그림을 보시다시피 위쪽은 분자이고,

아래는 분모입니다. Matlab 에서는 S+3 을 계수만 따서 행렬로 표시한다는 사실을 잊지맙시다.




그리고 입력을 넣어주기 위해 왼쪽 Sources 카테고리에서 Step 을 찾아 에디터에 끌어다 놓읍시다.




그리고 이 두개의 연결을 연결해야겠죠? 그냥 드래그해서 연결해서 선으로 연결해도 되지만,

선택을 한상태에서 Ctrl 키를 누른채로 Transfer Fcn 아이콘을 누르면 바로 연결이 됩니다.




아래와 같이 연결이 되었습니다. 이제 Step 의 속성을 조정하기 위해 Step 박스를 더블클릭 합시다.




보시다시피 Step time 이 1 로 되어있습니다. 1일 경우 그래프가 1초 이전에는 계속 0 이었다 1이되겠죠? 하지만, 우리는 0 부터의 값을 보고 싶으므로 0 으로 바꾸겠습니다.




그리고 출력값을 관찰하기 위해 Sink 카테고리에서 Scope 를 끌어놓고 Ctrl 키로 선을 연결합시다.



그리고 네모칸에 있는 값은 출력값을 나타내고 싶은 곳까지의 값입니다. 저희는 2 로 정해보도록하죠.

그리고 플레이 버튼을 누릅시다.




그리고 스코프를 더블클릭하시면 그래프가 나타날텐데 모양이 영 아닐껍니다.

그림과 같이 망원경 모양의 Auto scale 버튼을 누르시면 아래와 같이 깔끔하게 그래프가 나옵니다.




아래부터는 출력값을 수치로 확인하기 위한 과정입니다.


아래 그림 순서를 따라해주세요.

1번 아이콘을 클릭하시고

2. Data History 탭을 클릭하세요.

3. Limit data 는 체크를 푸시고

4. 아래 Save data 에 체크를 하신후

5. Variable 이름은 마음에 드시는거로 하시고

6. Format 을 Array(행렬) 로 바꿉니다. 그리고 OK 를 누릅시다.




이제 수치를 눈으로 확인하기 위해 Command Window 로 와봅시다.


먼저 sim('저장한파일이름') 을 쓰시고 엔터를 치시고

who 를 쳐봅시다. 그러면 변수들이 표시가 될 것입니다.

그리고 아까 정한 Ys 를 치면 행렬형태로 출력값이 표시가 됩니다.