Position Loop란? 목표 위치와 실제 위치 비교
Position Loop란 서보제어에서 목표 위치와 엔코더가 측정한 실제 위치를 비교해 위치오차를 줄이는 제어루프입니다. Position Gain과 Following Error의 원리를 알아봅니다.
Position Loop란 무엇이며 어떤 역할을 할까?
Position Loop는 Servo Control System에서 Command Position과 Actual Position을 지속적으로 비교하여 두 값의 차이인 Position Error를 줄이는 Closed-loop Control 구조입니다. PLC나 Motion Controller가 Servo Drive에 목표 위치를 전달하면 Drive는 Encoder 또는 Resolver에서 Motor의 실제 위치를 Feedback으로 받아 목표값과 비교합니다. 이를 단순화하면 Position Error = Command Position - Actual Position으로 나타낼 수 있습니다. 목표 위치가 100mm인데 Feedback으로 계산된 실제 위치가 98mm라면 Controller에는 2mm에 해당하는 Position Error가 남아 있는 것입니다. Position Loop는 이 Error를 기반으로 Motor가 어느 방향으로 얼마나 빠르게 이동해야 하는지를 결정합니다. 따라서 단순히 Pulse 수를 출력하는 것만으로 위치를 제어하는 것이 아니라 실제 움직임을 Feedback으로 확인하면서 오차를 지속적으로 보정하는 것이 핵심입니다. 정밀한 Pick and Place, Robot, CNC, Packaging Machine 등에서 반복적인 위치결정 성능을 확보하는 기본 구조입니다.
목표 위치와 실제 위치는 어떻게 비교될까?
Servo Drive는 Position Command를 내부적인 Position Unit 또는 Encoder Count로 변환하여 Feedback과 비교합니다. Command는 Pulse Train, Fieldbus, Motion Network 등 다양한 방식으로 전달될 수 있으며 최신 시스템에서는 EtherCAT, PROFINET 기반 Motion Communication 등으로 Position Command가 전달되기도 합니다. Encoder는 Motor Shaft의 Rotation을 정밀하게 측정하고 Servo Drive는 이를 Mechanical Travel과 연결하여 Actual Position을 계산합니다. Ball Screw를 사용하는 Linear Axis라면 Motor의 1회전당 Table이 이동하는 Lead와 Gear Ratio, Encoder Resolution 등이 Position Scaling에 영향을 줍니다. 이 과정에서 Electronic Gear 기능을 이용해 Command Unit과 Motor Movement의 비율을 설정할 수도 있습니다. 다만 Motor Encoder가 정확한 위치를 표시한다고 해서 Load의 실제 위치가 항상 완벽하게 같은 것은 아닙니다. Coupling의 Elasticity, Gear Backlash, Ball Screw Pitch Error와 Thermal Expansion 등이 존재할 수 있기 때문입니다. 더 높은 정확도가 필요한 장비에서는 Linear Encoder를 Load 측에 설치한 Full Closed-loop 구조를 사용하기도 합니다.
Position Gain을 높이면 위치응답은 어떻게 달라질까?
Position Loop에서는 Position Error에 일정한 Gain을 적용하여 내부 Velocity Command를 만드는 구조가 널리 사용됩니다. 단순화하면 Velocity Command ≈ Position Gain × Position Error와 같은 관계로 이해할 수 있습니다. Position Gain이 높으면 동일한 Position Error에서도 더 큰 Velocity Command가 만들어지므로 Servo가 목표 위치를 빠르게 따라가고 Following Error를 줄이는 데 유리합니다. 반대로 Gain이 낮으면 Response가 부드러울 수 있지만 목표를 추종하는 속도가 느려지고 Position Error가 상대적으로 크게 유지될 수 있습니다. 그러나 Position Gain을 계속 높이는 것이 좋은 것은 아닙니다. 실제 Machine에는 Belt, Coupling, Ball Screw와 Frame의 Elasticity가 존재하기 때문에 높은 Gain이 Mechanical Resonance를 자극하면 Overshoot나 Oscillation이 발생할 수 있습니다. 또한 Position Loop 안쪽에는 Velocity Loop와 Current Loop가 존재하므로 외부 Position Loop의 Bandwidth를 내부 Loop가 충분히 지원할 수 있도록 전체 Control System을 균형 있게 Tuning해야 합니다.
Following Error는 왜 발생하며 무엇을 의미할까?
Following Error는 Command Position과 Actual Position 사이의 순간적인 차이로, Servo가 움직이는 동안 어느 정도 발생하는 것이 일반적입니다. Motor와 Load에는 Inertia가 있으므로 Command가 갑자기 변해도 실제 기계가 무한한 Acceleration으로 즉시 따라갈 수는 없습니다. 특히 Acceleration이 크거나 Load Inertia가 높고 Position Gain이 낮으면 Following Error가 증가할 수 있습니다. Servo Drive는 이 Error를 Monitoring하면서 설정된 허용범위를 크게 벗어나면 Position Deviation 또는 Following Error Alarm을 발생시킬 수 있습니다. 하지만 Error가 크다고 해서 무조건 Gain 부족만을 의미하지는 않습니다. Motor Torque 부족, Mechanical Binding, Brake 미해제, 과도한 Acceleration Command, Encoder 문제나 잘못된 Electronic Gear 설정도 원인이 될 수 있습니다. 따라서 Alarm 발생 시에는 Error Trend와 Torque Current, Speed Command, Feedback 및 Mechanical Condition을 함께 분석해야 합니다. Feedforward Control을 이용하면 Motion Command를 미리 반영하여 추종오차를 줄이는 데 도움을 줄 수도 있습니다.
Position Loop 성능은 어떻게 평가해야 할까?
Position Loop의 성능은 단순히 목표점에 도착했는지만 확인하기보다 Response 과정 전체를 평가해야 합니다. 대표적인 항목으로 Following Error, Overshoot, Settling Time, Positioning Accuracy와 Repeatability가 있습니다. 목표점에 빠르게 도달하더라도 지나친 Overshoot가 발생하여 여러 번 진동한 뒤 정지한다면 좋은 Tuning이라고 보기 어렵습니다. 반대로 매우 안정적이지만 Settling Time이 길면 생산설비의 Cycle Time이 증가할 수 있습니다. 또한 Position Loop의 성능과 Machine 자체의 Mechanical Accuracy는 구분해야 합니다. Servo Encoder가 목표 Motor Position을 정확하게 제어하더라도 Backlash나 Thermal Expansion 때문에 실제 Tool Position에는 Error가 남을 수 있습니다. 이러한 경우 Linear Scale, Backlash Compensation 또는 Mechanical Improvement가 필요할 수 있습니다. 결국 Position Loop는 목표 위치와 실제 위치를 Feedback으로 비교하고 Error가 최소가 되도록 Motor Motion을 수정하는 Servo Control의 핵심이며 Velocity Loop와 Current Loop가 이를 빠르게 뒷받침하는 구조로 동작합니다.




댓글 0
첫 댓글을 남겨보세요.