이미지 해석 PID 알고리즘 및 원 코드 해석
물독 에 물이 새 는 곳 이 있 습 니 다.
수면 높이 를 어느 위치 에 유지 하도록 요구 하 다.
수면 높이 가 요구 보다 낮은 것 을 발견 하면 물독 에 물 을 넣 어야 한다.
샤 오 밍 은 임 무 를 받 고 물독 옆 을 지 켰 다.
시간 이 지나 자 심심 해서 방 으로 달 려 가 소설 을 읽 었 다.
30 분 마다 수면 높이 를 검사 합 니 다.물이 너무 빨리 샌다.
샤 오 밍 이 검사 하 러 올 때마다 물이 거의 다 새 서 요구 하 는 높이 와 는 거리 가 멀다.
샤 오 밍 은 3 분 에 한 번 씩 검사 하 는 것 으로 바 뀌 었 는데 매번 물이 새 지 않 았 다.
물 을 넣 을 필요 가 없다. 너무 자주 오 는 것 은 헛수고 다.몇 번 의 실험 후,
10 분 마다 한 번 씩 검사 하 는 것 을 확정 하 다.이 검사 시간 을 샘플링 주기 라 고 한다.
샤 오 밍 은 바가지 로 물 을 넣 기 시 작 했 고 수도 꼭 지 는 물독 에서 10 여 미터 떨 어 진 거리 에 있 었 다.
항상 여러 번 뛰 어야 물 을 충분히 넣 을 수 있 기 때문에 샤 오 밍 은 또 통 으로 넣 는 것 으로 바 뀌 었 다.
한 통 이면 한 통 이 고, 달 리 는 횟수 가 적 으 며, 물 을 넣 는 속도 도 빠르다.
그러나 여러 번 항 아 리 를 넘 쳐 신발 을 몇 번 적 셨 고 샤 오 밍 은 또 머리 를 썼 다.
나 는 바가지 도 쓰 지 않 고 통 도 쓰 지 않 는 다. 아버 지 는 대야 로 몇 번 내 려 와 보 니 딱 좋아 서 너무 많이 뛰 지 않 아 도 된다.
물이 넘 치지 않 게.이 물 을 넣 는 공구 의 크기 를 비례 계수 라 고 한다.
샤 오 밍 은 물이 과 다 하 게 넘 치지 않 지만 때로는 요구 보다 높 은 위치 가 비교적 많다 는 것 을 발견 했다.
젖은 신발 을 신 을 위험 이 있 습 니 다.그 는 또 방법 을 생각해 서 물독 에 깔때기 를 달 았 다.
매번 물 을 넣 을 때마다 물독 에 직접 붓 지 않 고 깔때기 에 부 어 천천히 넣 으 라 고 한다.이렇게 넘 치 는 문제 가 해결 되 었 다.
그러나 물 을 넣 는 속도 가 또 느 려 져 때때로 물이 새 는 속 도 를 따라 잡지 못 한다.
그래서 그 는 서로 다른 크기 의 깔때기 를 바 꾸 어 물 을 넣 는 속 도 를 조절 하려 고 했다.
마침내 만 족 스 러 운 깔때기 를 찾 았 다.깔때기 의 시간 을 적분 시간 이 라 고 한다.
샤 오 밍 은 마침내 숨 을 헐 떡 였 지만 임무 의 요구 가 갑자기 엄격 해 졌 다.
수위 통제 의 신속 성 요구 가 크게 높 아 지면 수위 가 너무 낮 아 지면
즉시 물 을 요구 위치 에 올 려 야 하 며, 너무 높 아 서 는 안 되 며, 그렇지 않 으 면 임금 을 주지 않 는 다.
샤 오 밍 이 또 곤란해 졌어!그래서 그 는 또 머리 를 써 서 마침내 방법 을 생각 하 게 했다. 항상 물 한 대 야 를 옆 에 놓 고
수위 가 낮 아 지면 깔때기 를 거치 지 않 으 면 한 대야 의 물이 내 려 가 는 것 을 발견 하면 신속 성 은 보장 되 지만 수 위 는 때때로 훨씬 높 아 질 수 있다.
그 는 또 수면 위치 위 에 물 을 조금씩 파 서 파 이 프 를 하나 더 연결 해서 아래 의 예비 통 에 이렇게 많은 물이 위의 구멍 에서 새 어 나 올 것 이 라 고 요구 했다.
이 물이 새 는 속 도 를 미분 시간 이 라 고 한다.
해석http://www.amobbs.com/thread-5043342-1-1.html】
typedef struct
{
float desired; //< set point
float error; //< error
float prevError; //< previous error
float integ; //< integral
float deriv; //< derivative
float kp; //< proportional gain
float ki; //< integral gain
float kd; //< derivative gain
float outP; //< proportional output (debugging)
float outI; //< integral output (debugging)
float outD; //< derivative output (debugging)
float iLimit; //< integral limit
} PidObject;
// pid, ,
float pidUpdate(PidObject* pid, const float measured, const bool updateError)
{
float output;
if (updateError)
{
pid->error = pid->desired - measured; //
}
pid->integ += pid->error * IMU_UPDATE_DT; // ,IMU_UPDATE_DT
if (pid->integ > pid->iLimit) //
{
pid->integ = pid->iLimit;
}
else if (pid->integ < -pid->iLimit) //
{
pid->integ = -pid->iLimit;
} // if 。 , 。
pid->deriv = (pid->error - pid->prevError) / IMU_UPDATE_DT; // ,
// 【http://blog.csdn.net/ouyang_linux007/article/details/7419892】
output = (pid->kp * pid->error) + //
(pid->ki * pid->integ) +
(pid->kd * pid->deriv);
pid->prevError = pid->error;
return output;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.