검색결과 리스트
글
사실 PID제어기 설계법을 배워도 치밀한 계산에 의해 적용하기는 참 힘들때가 있습니다. MATLAB에서는 PID 제어기 블럭이 강력한 튜닝(Tunning)기능을 가지고 있는데요. 이것을 이용하면 제어기 튜닝이 정말 간편합니다.
위의 블럭을 Simulink에서 꾸며보죠. 분모의 근이 1,5라서 불안정한 시스템입니다. 실행해서 결과를 보면
이렇게 발산해버리시거든요^^
시뮬링크 라이브러리에 Continuous 폴더에 보시면 PID Controller가 있습니다. 이걸 가져다가
이렇게 붙여보도록 하죠.
그 PID 블럭을 더블클릭해서 보면, PID, PI, PD, P, D, I 제어기중 하나를 선택할 수 있는곳과 연속시간인지 이산시간인지 선택할 수 있도록 되어있습니다. 또한
PID Advanced탭에서는 출력 제한을 걸수 있도록 지원하며 Anti-windup까지 지원하고 있습니다.
Look under mask 기능으로 PID 블럭 내부를 보면, 위와 같이 전형적인 PID 제어기의 모습을 하고 있네요. Help에 등록되어있는 수식은
입니다.
|
|
|
오늘 할려고 하는 본론인 Tune... 버튼 보이시죠???
그럼 저런 창이 하나 뜹니다. 그 창 위쪽 오른편에 있는 Show Parameters 까지 누르면
현설정에 따른 PIDN 수치가 나타납니다. 아래 표시된 응답시간을 조절해서 응답형태를 눈으로 바로바로 확인하면서 게인을 맞춰볼 수 있습니다.
또 젤 위쪽에 Basic을 누르시면
확장메뉴를 지원하는데요. Bandwidth와 Phase Margin을 슬라이드바로 조절할 수도 있습니다.
혹은 위에 표시된 곳을 눌러서 Open-loop bode plot, 혹은 니콜스챠트를 눈으로 보면서 튜닝이 가능합니다.
적절한 곳에서 OK를 하시면, 저렇게 PID 게인을 입력하는 곳에 튜닝된 게인으로 업데이트되어있음을 확인할 수 있습니다.
뭐 당연하겠지만, 시뮬레이션 결과입니다.^^
'The Robot > MATLAB' 카테고리의 다른 글
| MATLAB에서 다변함수에 대한 문자연산을 이용한 미분 (20) | 2010/06/06 |
|---|---|
| MATLAB 함수로 구현한 구간평균법(moving average) (12) | 2010/06/03 |
| SimMechanics를 통해 동역학 분석을 쉽게하자. (6) | 2010/05/26 |
| PID 제어기 튜닝? MATLAB으로 간단히 하자 !!! (34) | 2010/05/23 |
| 파라미터 추정(Parameter Estimation)을 MATLAB으로 간단히 해보자 (10) | 2010/05/21 |
| [MATLAB 연재] 16. GUI - 종합예제 (52) | 2010/04/29 |
| [MATLAB 연재] 15. GUI - Check Box와 Radio Button (14) | 2010/04/27 |
| [MATLAB 연재] 14. GUI - ListBox와 Pop-up Menu (36) | 2010/04/23 |

어떤 것인지이해할 수 없지만 재미있고 놀라운 것 같습니다.
사실 뭐 저도 잘 안다고 보긴 어렵습니다..
그냥 흉내만...^^
여러번의 실험변경으로 좋은 튜닝결과를 얻은 것 같아요
필요한 사람에게만 필요한 글이긴하지만,
PID 튜닝을 실험치에서 자주 수행해야하는 경우 상당히 유용한 툴입니다.^^
정말 대박 정보 ㄳ 드립니다
저도 simulink통해서 사용해 보앗는데 몰랏던 기능이 많네요^^
항상 좋은 정보 알려주시고 진심으로 감사드립니다 ^^(싸부이십니다)
저도 벨런스 로봇 작업중인데 잘만들어서 자랑할게요 ^^ㅋㅋㅋㅋ
네.. 화이팅입니다... MATLAB의 기능을 단지 소개하는 글이라 내용은 엄밀히 말하면 help의 수준에도 미치지 못하는 글입니다. 그래도 도움이 되었다니 저도 기쁩니다.
PID 튜너 클릭시 The value of the inputname. property must be a string vector with as many entries as inputs. Type ~ 이런 오류창이 뜨면서 PID튜너가 재생이 안되는데 무슨 오류일까요?ㅠ
제가 저 PID 튜닝 기능을 처음 익힐 때 한번 본듯한데... 기억이 잘 나질 않네요... ㅠㅠ
(이 몹쓸 기억력....ㅠㅠ)
지금 MATLAB이 깔려있는 PC가 없어 확인해보질 못하고 있는데 말이죠...ㅠㅠ
혹시 조금이 걸리더라도 저 오류가 어떤사항에서 발생되는건지 알수없을까요?........ 부족한 영어 실력탓도 실력탓이지만ㅠ 매트랩에 입문하게 된것도 이틀도 안되서 말이죠;;;^^
Tune 기능을 사용하지 않고, PID블럭만 연결한 상태에서 시뮬레이션이 에러 없이 구동되는지를 먼저 확인해 보세요. 일단 생각나거나 만나게 되면 말씀드리겠습니다.^^
튠기능 없이 시뮬레이션은 구동되서,, 적절한 값을 찾기는 하였는데;;
Tune기능은 아직도 말성이네요 ㅠ ㅠ
네... ㅠㅠ^^
뜬금없이 물어봐서 죄송합니다만; 버전이 몇에서 되는건가요?? 전 R2009a쓰는데 PID블럭을 더블클릭해도 쥔장님같은 창이 안뜨고 PID파라미터 3개 조정하는거 달랑 3개 뜨네요 ㄷㄷ
제가 알기론.. 이 포스팅에서처럼 PID 블럭에 튜닝기능이 탑재된것은 R2009b 버젼부터로 알고 있습니다.^^
앗~ 감사합니다 ㅎㅎ
네... 기분좋은 일주일 시작하세요^^
안녕하세요^^ 포스팅 보다가 궁금한게 생겨서 질문남깁니다. PID 제어기에 입력을 두개로 받고 싶은데 look under mask 내부의 PID 제어기를 수정해도 괜찮은것인지요?
혹..?? 그렇게는 사용할려고 안해봤는데요..^^
그러나 상관없을겁니다.
수정했다고 해서 기존의 라이브러리에 영향을 미치는 것도 아닐테니 말이죠^^
저는 매트랩 7.6.0 사용중인데요
왜 게인값 조정만 나오죠 ㅠㅠ 안티 와이드업 써야하는데 쩝
글쎄요. 잘 모르겠습니다. 전 2009b 버젼을 사용중이라서요...
매트랩 아무것도 모르는데요 ㅡ,,ㅜ
PID제어에 대해 시뮬레이션해서 설명하려고 하다가 이곳 까지 왔습니다.
님 하신데로 시뮬레이션 가능하다면... 프로그램주실수 있는지요?
부탁드립니다. (kissme1064@naver.com)
프로그램을 달라는건 무슨말씀이신지요?
tuner 설정에서 phase랑 b/w 값을 조절하는 부분이
시스템 전체(plant, control, k...) 컨트롤 조건을 대변하는 것인가요
아니면 PID 컨트롤 자체 조건을 대변하는 것인가요...
먼저 무척 죄송합니다. 질문하신 내용중에서
시스템 전체의 컨트롤 조건을 대변한다..는 말과
PID 컨트롤 자체 조건을 대변한다...는 말의 뜻이 무엇인가요...??
(사실.. 제가 막 배운 사람이라.. 고급 용어에 좀 약하거든요...^^)
뭐 당연히 PID 제어기 블럭일 뿐입니다. PID 제어기가 작동할 시스템은 제어기 근처에 붙어있겠죠...
그러나 PID제어기가 붙어버리고, 그로부터 본 시스템에서 궤환되어 PID제어기에 들어갈테니 PID 제어기의 제어기 설정값을 바꾼다는 것은
이 경우에는 시스템과 제어기를 포함 전체 시스템의 응답 특성을 조절하게 되는 것입니다.
(이걸 질문하신 것 맞나요???)
감사합니다^- ^
도움이 된건 맞나요??
좋은정보 감사드립니다.
질문 하나만 드리겠습니다.
만약에 전달함수가 z transform 형태로 discrete 된것이라도
상관없이 작동하나요?
(절대.. 정확하지 않습니다. 안해봐서요..ㅠㅠ)
가능한것으로 알고 있습니다. 블럭 세팅에서 이산시간영역에 대한 설정을 본 것 같습니다만...
매번 여러가지 콘텐츠에 대한 정보를 여기서 참조하고 있습니다. 항상 좋은 정보 감사드립니다
도움이 되셨다니 다행입니다.^^
궁금한 점이 있어서 질문을 합니다^^
위에서 미분기에 왜 필터가 있는지 궁금합니다. 그리고 만약 PID블록을 사용하지 않고 그냥 미분기와 적분기로 구성을 했을 경우 위와 같이 미분기 부분에 필터를 달아주어야하는것인가요?? 그냥 du/dt 블럭을 달아주면 위의 구성이랑 다른 결과가나오나요???
미분기에 달려있는 것은
미분 결과가 어떤 노이즈같은 성분에 의해
급작스런.. 예를들면 무한대처럼 아주 큰 값 같은 것을 방어하기 위한 것입니다.
비밀댓글입니다
제 블로그에서는 블로그를 통한 대화를 제외하고는 다른 것은 사용하지 않습니다