BASIC4MCU | 질문게시판 | 속도 조절(pi)
페이지 정보
작성자 우왕우오옹 작성일2020-12-02 13:36 조회4,551회 댓글2건본문
pi제어로 균형을 잡아보려고하는데요 기울기 pi는 다음과같이 설정해봤는는데 궁금한게있습니다. 1.이코드가 맞는가? 2.모터의 속도가 너무빨리돌아서 균형을 못잡고 앞뒤로 곤두박칠 치는이유가 무엇인가 ㅠ 입니다
A_err = Aref - Pitch;
A_PI = A_PI + A_PIconstants*A_err - Kpa*A_err0;
A_err0 = A_err;
if(A_PI > 999.) A_PI = 999.;
else if(A_PI < -999.) A_PI = -999.;
if(A_PI >= 0.) // output PWM value for forward
{ PWM = A_PI + 0.5;
OCR3A = PWM;
OCR3B = PWM;
PORTC = (PORTC & 0xFC) | 0x01;
PORTC = (PORTC & 0xF3) | 0x04;
}
else // output PWM value for backward
{ PWM = -A_PI + 0.5;
OCR3A = PWM;
OCR3B = PWM;
PORTC = (PORTC & 0xFC) | 0x02;
PORTC = (PORTC & 0xF3) | 0x08;
}
댓글 2
조회수 4,551master님의 댓글
master 작성일
중환자인데 환자를 보지않고 진료를 의사에게 해달라는 것과 같습니다.
모터가 빨리 돌아간다는 말은
각도 오차보다 PWM값의 변화가 크다는 말이겠죠?
왜 그런지는 직접 찾아보세요
master님의 댓글
master 작성일
회로도 및 전체소스코드 첨부하고
증상에 관한 동영상도 첨부하고
본인이 그동안 추적한 내용도 첨부하는 등
상세한 내용이 필요합니다.