Skip to content

Repository files navigation

엘리베이터 구동부

: hardware ~ application code : 각 기능

26.05.05 명세 수정 및 추가점

S-Curve 알고리즘을 통해 Pi_Controller.c를 생성하여 S-Curve 알고리즘의 매 10ms 목표 속도 출력이 PI_CONT'로 가서 최종 PWM을 업데이트 하도록 하였음

주행 시나리오 : 40cm를 오르내리는 것을 반복하여 일정한 간격에 도달하는 지를 확인

수정점 : 주행 과정에서 UP 로직에서 DOWN으로 전환되는 시점에 대부분의 경우 넘어가지 않고 주행이 멈춰버리는 문제가 있었음. Break point로 확인하여 UP에서 DOWN으로 넘어가지 않는 것을 확인 후 40cm가 도달했음에도 도달하지 않았다고 판단해버리는 로직을 수정하여 해결

26.05.06 명세 수정 및 추가점

이전 S-Curve + PID는 S-Curve에게 타겟 속도만 명령을 주어 입력을 받고 PI제어기가 속도에 도달하도록 조절하는 방식이었음 그러나 속도만 제어하는 것에는 실제 위치 오차에 대한 판별이 아니므로 계속해서 위치 오차가 누적될 수 있는 문제점이 있었음 또한, 40cm 이동이 아닌 20cm 이동으로 분리시키려는 과정에서 잘 되지 않았음

-> 실제 S-Curve 알고리즘으로 구현하는 상용 엘리베이터에서는 위치 오차 제어를 통해 엘리베이터를 제어한다. 또한 엔코더를 매번 정지 시 초기화하는 방식은 위치 오차를 누적하여 새로운 기준점을 매번 세우는 방식이라서 엔코더를 처음 한 번 초기화 후, 계속해서 사용하면서 시작점을 기준으로 절대적인 높이 위치를 기억하도록 제어해야한다.

∴ 최상단 위치 P 제어기 -> Scurve 궤적 생성 (FeedForward) -> PI Controller (속도 제어기)

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages