설계 Design

서보모터의 빠르고 정확한 위치제어를 위한 개발

NewBeaver 2025. 1. 9. 03:26

서보모터의 빠르고 정확한 위치제어를 위해 개발을 진행하고있다.

 

1년간 개발중이던 물건이 결국 끝을 보지 못해서 결국 나의 손까지 왔다.

 

해결을 위해 먼저 제어보드 회로도를 처음부터 끝까지 머리속에 넣는 작업을 했다.

 

먼저 전원의 소스부터 로드까지의 전달 과정과 구조를 그리고 보드단에서 생길 수 있는 문제점들을 하나하나 확인해나갔다.

 

DC/DC의 공통모드 노이즈 전도 문제, 버퍼 출력의 공통모드 노이즈 전도 문제, 점퍼선의 잘못된 연결구조 등을 확인할 수 있었다.

 

부하가 큰 회로의 경우 전력전달의 문제도 있나 살펴보았지만 전력전달의 문제는 없었다.

 

필터 회로 구조의 경우 값을 조금 손봐야 했지만 지금 사용하는데 큰 문제는 없었다.

 

향후 보드를 수정할 때 개선을 위해 각 문제에 대해 적절한 해결법을 정리하였다.

 

그리고 S/W를 분석하기 시작했다. 기본이 되는 펌웨어는 지난 1년간 디버깅을 하여 어느정도 기본이 갖춰저 있는 상태였고, 제어동작에 문제가 있기 때문에 제어관련 S/W를 분석하였다.

 

먼저 제어기 코드가 적절하게 짜여져있는지?, 센서를 센싱하고 처리하는 과정에 문제가 없는지? 센서 신호처리를 위한 회로들은 어떻게 구성되었고 신호가 입력되면 어떻게 되는지? 회로를 분석하고 시뮬레이션하고 직접 실험하였다.

 

서보모터 제어를 위해 위치센서, 전류센서들을 잘 읽어와서 제어 동작 시 문제를 일으키는 부분이 어디인지 파악에 나섰고 위치센서는 정상적으로 동작했고, 전류센서가 조금 문제가 있었다.

 

전류센싱은 아날로그방식으로 신호를 절연형 전류센서 IC로 입력받아 디지털로 변환하여 출력하고 다시 OP AMP 회로 단을 거쳐 ADC로 입력되었다. 시뮬레이션을 통해 현재 전류센싱회로가 설계당시 컨셉보다 빠르지 않다는 것을 확인하였고

제어에 사용 시 발생할 수 있는 문제점을 확인하였다. 첫번째는 신호 지연으로 인해 제대로된 센싱값을 제어에 사용하려면 스위칭 시간을 고려하여 제어에 적용하는것이 필요하다는 것이였고, 두번째는 전류의 경우 AC신호를 읽어오는데 양방향 신호와 역방향 신호의 평균 전압 게인이 10%정도 차이가 난다는 것이였다.

 

센싱값을 정방향 전류일때 게인과 역방향 전류일때 게인을 달리가져가야한다는 의미인데 더 큰 문제가 있기 때문에 일단 10%오차는 알고 디버깅을 계속 진행하기로 했다.

 

더 큰 문제는 제어방식과 하드웨어가 맞지 않다는 것이였고 이것을 해결하기 위해 실험을 하고 문제가 일어나는 부분의 파형을 찍어 확인하였고 하드웨어에 맞는 제어방식으로 수정하여 전류제어를 시험하였다.

 

모터의 4상한 영역에서 모두 전류제어를 수행하여 전류제어가 모터의 회전방향과 전류방향을 정상적으로 제어하는 것을 확인하였다.

 

그 다음 모터의 파라미터를 참고하여 제어기 게인을 맞추었다. 모터를 구속시켜놓고 스텝으로 전류지령을 입력하여 인버터의 최대전압 입력에서도 정상적으로 전류를 제어하는 것을 확인했고

 

무부하 조건에서 전류제어로 모터를 회전시켜 무부하 최대속도까지 정상적으로 회전하는것을 확인했다.

 

회전시키며 전류부하를 넣을수있는 다이나모세트가 있었으면 좀 더 정확히 전류제어기의 게인을 조정할수있을 텐데 했지만 여기까지만 확인하고 다음 속도제어, 위치제어로 넘어갔다.

 

속도제어는 현재 사용하지 않는 상태였고 위치제어 다음 출력을 바로 전류제어에 사용하여 제어를 수행하고있었다.

 

속도제어 없이 위치제어를 사용할 경우 기계시스템의 관성모멘트와 점성마찰계수에 제어기의 속도가 정해지며 이 계수들로 적절히 P게인(J/4*B^2) 을 선정할 경우,  2차 저역통과 필터형태로 응답특성을 나타내게 된다.

 

모터가 부하에 연결된 상태에서는 J와 B를 정확히 알기 힘들었기 때문에 처음 선정된 게인에서 위치제어의 스텝 응답특성을 보며 오버슛이 나는 것을 확인했고 조금씩 낮추면 저역통과필터의 응답특성을 갖게되었다. 이 게인을 토대로 J는 설계치를 참고하였고 B값을 계산하였다.

 

이 계수를 사용 시 위치제어는 정상상태 오차도 갖고, 응답특성도 매우느려 외란에 제대로 응답도 하지 못한다.

 

따라서 속도제어의 필수적인 적용이 필요하였고 위치센서를 미분한 값을 속도값으로 이용해 속도제어기를 구성하기 시작했다.

 

여기서 또 문제가 있었는데 위치센서는 최종 위치제어 단에 위치해 12bit 디지털 신호를 내보낸다. 모터는 기어를 통해 연결되어 7정도의 기어비를 가지고 있었다. 최종단의 위치를 미분하여 속도를 구하면 모터의 속도로 환산했을 때 분해능이 손해를 보는 구조였고 결국 위치 미분 시 시변이 너무 빠르면 제대로된 속도를 계산할 수 없고 시변을 느리게 하여 속도를 계산할수밖에 없었다.

 

위치제어의 응답특성 요구사양을 만족시키기 위해 최대한 빠르게 속도를 읽어올수있는 시변을 선택했지만 이 경우 저속에서 제대로된 속도값을 계산하지 못하는 문제가 있다. 어느정도 모터가 회전해야 속도값을 계산 할 수 있었다.

이 상황은 결국 위치제어 시 문제로 나타나게 되었다.

 

위치제어 시 백래쉬로 인해 저속에서 제대로된 위치제어가 힘들었다. 백래쉬로 인한 문제를 확인하고 백래쉬도 고려해 위치제어기와 속도제어기를 잘 수정하여 해결하면서 정말 그냥되는것은 아무것도 없구나 많이 느꼈다.

 

아직 디버깅은 진행중이다. 오늘까지 디버깅을 거치며 위치제어기와 속도제어기 전류제어기의 동작이 정상적으로 이뤄지는 것을 확인했고 이제 요구사양 만족을 위해 제어기 게인을 수정하는 것만 남은거 같다....

 

이제 고속도로 타고 빨리 달리고 싶다.

 

'설계 Design' 카테고리의 다른 글

영구자석 전동기의 회전자 와전류 발생  (0) 2024.05.23