DOI QR코드

DOI QR Code

A Study on Pose Control for Inverted Pendulum System using PID Algorithm

PID 알고리즘을 이용한 역 진자 시스템의 자세 제어에 관한 연구

  • Jin-Gu Kang (Department of Electrical & Electronic Engineering, Yonam Institute of Technology)
  • Received : 2023.11.16
  • Accepted : 2023.12.13
  • Published : 2023.12.29

Abstract

Currently, inverted pendulums are being studied in many fields, including posture control of missiles, rockets, etc, and bipedal robots. In this study, the vertical posture control of the pendulum was studied by constructing a rotary inverted pendulum using a 256-pulse rotary encoder and a DC motor. In the case of nonlinear systems, complex algorithms and controllers are required, but a control method using the classic and relatively simple PID(Proportional Integral Derivation) algorithm was applied to the rotating inverted pendulum system, and a simple but desired method was studied. The rotating inverted pendulum system used in this study is a nonlinear and unstable system, and a PID controller using Microchip's dsPIC30F4013 embedded processor was designed and implemented in linear modeling. Usually, PID controllers are designed by combining one or two or more types, and have the advantage of having a simple structure compared to excellent control performance and that control gain adjustment is relatively easy compared to other controllers. In this study, the physical structure of the system was analyzed using mathematical methods and control for vertical balance of a rotating inverted pendulum was realized through modeling. In addition, the feasibility of controlling with a PID controller using a rotating inverted pendulum was verified through simulation and experiment.

현재 도립진자는 많은 분야에서 연구 중이며 미사일, 로켓, 등의 자세 제어와 2족 보행 로봇 등에 응용되고 있다. 본 연구에서는 256펄스의 로터리 엔코더와 DC 모터를 이용한 회전형 도립진자(Rotary Inverted Pendulum)를 구성하여 회전형 역 진자의 수직 자세 제어를 연구하였다. 비선형 시스템의 경우 복잡한 알고리즘과 제어기가 필요하지만 고전적이며 비교적 간단한 PID(Proportional Integral Derivation)알고리즘을 이용한 제어 방법을 회전형 도립진자 시스템에 적용하였으며 간단하지만 원하는 성능을 높이는 방안을 연구하였다. 본 연구에서 사용된 회전형 도립진자 시스템은 비선형적이고 불안정한 시스템으로 선형화된 모델링에서 마이크로칩 사의 dsPIC30F4013 임베디드 프로세서를 이용한 PID 제어기를 설계 및 구현하였다. 보통 PID 제어기는 하나 혹은 두 가지 이상을 조합하여 설계하며 우수한 제어 성능에 비해 구조가 간단하며 제어 이득 조정이 다른 제어기들에 비해 비교적 쉽다는 장점이 있다. 본 연구에서는 시스템의 물리적 구조를 수학적 방법으로 분석하고 모델링을 통한 회전형 도립진자의 수직 균형을 위한 제어를 실현하였다. 또한 회전형 역 진자를 이용하여 PID 제어기로 제어가 가능한지 시뮬레이션과 실험을 통하여 그 타당성을 검증하였다.

Keywords

1. 서론

산업의 발전과 더불어 시스템 개발에 있어 사용자의 목적과 기호에 따라 더욱 복잡해지고 있으며 비선형 시스템이 증가함에 따라 정밀한 제어를 위한 복잡한 알고리즘을 더욱 필요로 하고 있다. 또한 비선형 제어시스템 제어기술은 자율주행 차량, 새로운 항공기, 의료 로봇공학 및 그 밖의 많은 시스템의 개발로 사용자들의 필요성을 더욱 증가시키고 있다. 다양한 센서의 사용과 진보된 알고리즘의 개발에도 불구하고 실제 산업 현장에서는 시스템의 포화, 불감대 등 많은 비선형적 요소들을 내포하고 있으며 다양한 동작 조건의 요구로 인한 제어의 어려움과 시스템의 신뢰성과 효율성과 안정성을 높이는데 관심이 증가되고 있다. 기존의 역 진자 연구는 다양한 관절제어를 위한 알고리즘의 변형으로 나타나고 있다. 기존의 역 진자 연구에는 해석적 역 진자 알고리즘 (Analytical Inverse Kinematics)으로 수학적 방정식을 사용하여 해를 찾는 방법이며, 모델 기반 역 진자 알고리즘(Model-based Inverse Kinematics)은 물리적 모델을 기반으로 역 진자 문제를 해결하는 방법이다. 최근에는 노트로 닉스(Neurokinematics) 알고리즘으로 인공 신경망을 적용한 연구가 진행되고 있다. 본 연구에서는 간단하면서 높은 반응속도와 안정성, 다양한 환경과 조건에서 오차 보정을 유연하게 적용할 수 있는 PID알고리즘을 회전형 역 진자 시스템에 적용하였다[1]. 비선형 시스템 중 회전형 역 진자 시스템은 제어 시스템의 알고리즘 및 시스템 플랫폼의 안정성과 신뢰성을 입증하는 분야에 넓게 이용되고 있으며 시스템의 자세 제어의 효율성을 입증하기 위한 모델로도 넓게 이용되고 있다[2]. 그림 1은 실험에 사용된 회전형 역 진자의 정지된 상태를 보여주고 있다.

JBJTBH_2023_v16n6_400_f0001.png 이미지

그림 1. 정지상태의 회전형 역 진자

Fig. 1. Rotating inverted pendulum at rest

본 연구에서는 PID 알고리즘을 이용하여 그림 2와 같이 회전형 역 진자의 수직 균형을 유지하고 안정된 자세를 구현하는 방안을 연구하였으며 적절한 매개변수 설정을 통해 제어 시스템에서 원하는 성능을 얻을 수 있는 효율성과 회전형 역 진자의 시뮬레이션을 이용한 PID 상수의 결정과 실험을 통해 검증하였다.

JBJTBH_2023_v16n6_400_f0002.png 이미지

그림 2. 회전형 역 진자의 동작

Fig. 2. Rotating Inverted Pendulum Motion

2. 시스템 구성

2.1 구성

비선형 시스템의 한 분야인 회전형 도립진자 시스템의 엔코더 위치는 그림 3과 같이 구성하였다. 진자는 베이스 및 360° 자유 회전을 위한 플랫폼에 부착했으며 진자는 균형을 이룰 때 완전 수직으로 되었을 경우이다. 센서는 2개의 엔코더를 사용했으며 Pole에 장착된 엔코더는 512펄스의 출력이며 DC 모터에 장착된 엔코더는 256펄스를 사용하였다. 모터와 Arm 사이의 기어비는 100:17로서 Arm이 360° 회전할 경우 256*100/17 펄스를 출력한다.

JBJTBH_2023_v16n6_400_f0003.png 이미지

그림 3. 엔코더 위치

Fig. 3. Encoder position

Arm과 Pole의 각도 계산은 라디안의 값으로 계산 후 최종 각도를 하였다. 계산은 식 1과 같으며 Arm의 위치는 식 2와 같다[3].

Rad = 4 × Encoder Pulse × Gear Ratio       (1)

Arm Posi = Enc Count × 2 × π/Ran       (2)

따라서 Arm의 최종 움직인 각과 속도는 식 3과 식 4와 같이 나타낼 수 있다.

Arm Angle = Arm Posi × 180/π       (3)

Vel = (Arm Posi - Pre Arm Posi)/ts       (4)

여기서 샘플링 타임 ts = 10ms이다.

Pole의 각도와 속도 계산도 식 1에서 식 4와 동일하다. Pole에 부착되어 있는 엔코더는 회전 물체의 중심에 있다는 조건이 만족해야 하며 중심에서 벗어나 직선운동을 한다면 방향의 가속도 성분이 동시에 측정되어 정확한 각을 얻을 수 없다. Pole의 위치제어를 위하여 Arm의 PID 제어기를 구현하였으며 구성은 그림 4와 같다. 마이크로프로세서는 마이크로칩사의 dsPIC30F4013을 사용했으며 각각의 엔코더 값을 이용해 Gain튜닝을 통해 PID 연산을 수행하였다.

JBJTBH_2023_v16n6_400_f0004.png 이미지

그림 4. PID 컨트롤러 구성도

Fig. 4. PID controller configuration diagram

구현된 PID 제어기는 그림 5와 같으며 전원 안정화가 필수적으로 구현되어야 하며 모터 드라이브는 L297 DC모터 전용 드라이브를 사용하였다. 또한 PID Gain튜닝은 프로그램에서의 1차 튜닝과 외부의 가변저항을 통해 정밀 튜닝을 하였다.

JBJTBH_2023_v16n6_400_f0005.png 이미지

그림 5. PID 컨트롤러 구조

Fig. 5. PID controller structure

여기서 r(t)는 기준입력, c(t)는 측정된 출력, e(t)는 입력에 대한 출력의 차이인 오차를 나타낸다.

Pole의 움직임에 대한 속도와 각도 측정의 정확성은 전체 시스템의 안정성 및 성능과 직결된다[4]. Pole의 예상 경로를 추정하고 예측하기 위해서는 각각의 엔코더 결과 값의 분석된 데이터를 이용한 순간 속도, 각도의 검출과 계산이 필요하다. 즉 각도와 속도로부터 예측 경로, 예측 속도 등이 계산되기 때문이다[5].

2.2 PID 알고리즘

회전형 도립진자의 위치제어와 속도 제어에는 PID 알고리즘을 이용하였다. Arm 구동 모터의 출력을 제어하기 위해서 PID 알고리즘을 적용하였다. PID 알고리즘은 구동 모터 시스템의 중요한 특성, 즉 정상상태 오차, 샘플링 타임, 입력 대비 출력 오차, 시스템의 안정성 등을 제어한다. 제어 알고리즘의 P, I, D 항은 각각 시스템 특성에 영향을 미친다. 3개의 PID Gain상수의 선택은 시스템 특성을 좋게 만들며 시스템 응답을 빠르게 만드는 중요한 역할을 한다. 또한 잘 조정된 PID Gain은 시스템 안정성을 높이며 응답을 빠르게 한다. 알고리즘을 적용하기 위한 방안으로 2가지의 조정이 필요하다. 첫째는 적분 상수가 크면 많은 시간이 지난 후 오차가 누적되어 불안정성이 나타난다. 이를 막기 위하여 적분항의 크기를 적당한 값으로 조정하는 작업이 필요하며 둘째는 오차의 부호가 바뀔 때 적분 항을 제거하므로 시스템 안정성을 높일 수 있다. PID 컨트롤러는 기준입력과 측정된 출력의 차이인 오차(e)를 이용해 비례, 적분, 미분 요소를 조합하여 신호를 출력하는 제어하는 방식이다. 일반적 표준형 PID 제어기의 연속 시간에서 제어 입력은 식 5와 같다[6].

\(\begin{align}\begin{aligned} m(t) & =K\left[e(t)+\frac{1}{T_{i}} \int_{0}^{t} e(\tau) d \tau+T_{d} \frac{d e(t)}{d t}\right] \\ & =K_{p} e(t)+K_{i} \int_{0}^{t} e(\tau) d \tau+K_{d} \frac{d e(t)}{d t}\end{aligned}\end{align}\)       (5)

여기서, e(t)는 오차 신호로 목표 입력과 출력과의 차이를 나타낸 것이다. 디지털 제어를 위해 PID 제어 규칙에서 이산 시간에서 나타내기 위해 위의 식 5를 t = kTs, t = (k-1)Ts에서 이산 시간으로 등가 변환하면 식 6과 같이 표현된다[7].

Δm(k) = KpΔe(k) + Kie(k) + KdΔ2e(k))       (6)

여기서 \(\begin{align}K_{p}=K, K_{i}=K \frac{T_{s}}{T_{i}}, K_{d}=K \frac{T_{d}}{T_{s}}\end{align}\) 

또한, 식 6을 식 7과 같이 나타낼 수 있다.

Δm(k) = v0e(k) + v1e(k-1) + v2e(k - 2)       (7)

여기서, v0 = Kp + Ki + Kd,

v1 = -Kp - 2Kd,

v2 = Kd

이다.

3. 실험 및 평가

본 연구에서 제안한 회전형 도립진자의 수직 유지와 자세 제어의 성능을 검증하기 위하여 실험을 수행하였다. 알고리즘이 적용되지 않은 회전형 도립진자의 자세에 대한 Pole의 출력을 그림 6과 같이 실험을 통하여 확인하였다. 그림 6의 X 축은 시간을 나타내었으며 Y 축은 엔코더로부터 읽어 각도를 계산한 값을 나타내고 있다.

JBJTBH_2023_v16n6_400_f0006.png 이미지

그림 6. PID 알고리즘 적용 전

Fig. 6. Before applying PID algorithm

그림 6에서 그림 8까지 X 축은 시간, Y 축은 엔코더로부터 읽어 각도를 나타낸다. 그림 6과 같이 Pole이 알고리즘을 적용하기 전 엔코더 값만을 적용하여 동작했을 경우 안정된 수직 상태를 유지기가 힘들 정도의 진동이 심하게 발생하는 결과 값이 나타났다.

JBJTBH_2023_v16n6_400_f0007.png 이미지

그림 7. 회전형 역 진자에 알고리즘 적용

Fig. 7. Using PID algorithm for rotating inverted pendulum

JBJTBH_2023_v16n6_400_f0008.png 이미지

그림 8. PID Gain 조정 후

Fig. 8. After PID Gain adjustment

그림 7은 알고리즘이 적용된 Pole, Arm의 결과 값이다. 진폭이 큰 값은 Pole각도이며 작은 값은 Arm각도이다. 그림 7은 정밀한 조정이 아닌 MATLAB을 이용한 시뮬레이션 Gain 값을 적용하였으며 값을 적용했을 경우 처음은 Pole, Arm은 불안정하게 동작하다 시간이 지남에 따라 안정화되는 것을 볼 수 있다. 그러나 안정화가 되었다 하더라도 이후 조금은 불안정하게 진동이 일어남을 볼 수 있다.그림 8은 PID Gain을 시행착오 법에 의한 많은 실험을 통해 더욱 정밀하게 조정하였다.

시행착오 법의 지속적인 실험을 통해 각각의 이득값을 조정해 처음 시작 시 진동이 일어나지만 시간이 지남에 따라 Pole, Arm의 진동이 작아지고 Pole과 Arm은 안정된 수직 자세를 유지하고 있음을 실험을 통해 확인하였다. 표 1은 그림 7의 시뮬레이션에 의한 Pole, Arm PID 이득 추정 값과 진동의 크기, 시간을 그림 8의 미세 조정된 값과 비교하였다.

표 1. 각각의 시뮬레이션 값과 세부 조정 값

Table 1. Each simulation value and detailed adjustment value

JBJTBH_2023_v16n6_400_t0001.png 이미지

4. 결론

본 연구에서는 불안정성을 내포하고 있는 비선형 시스템의 일종인 회전형 도립진자를 PID 알고리즘을 적용하여 진자를 수직으로 안정된 자세를 유지하기 위한 방안을 연구하였다. 이는 도립진자가 수평을 기준으로 좌, 우로 기울어질 때 진자는 수직 자세를 취하기 위하여 Arm을 제어하여 기울어진 방향으로 적합한 속도와 위치제어를 수행하는 것이다. 이를 위하여 선행 작업은 정확하고 신뢰성 높은 각도 계산이다. 각도를 획득하는 방안으로 자이로 센서나 가속도 센서를 사용할 수 있으나 하나만 사용할 경우 초기에는 쉽게 균형을 유지하나 시간이 지날수록 누적되는 오차 때문에 시스템이 불안정해진다. 따라서 고가이면서 사용하기 어려운 자이로가 가속도 센서가 결합된 IMU(Inertial Measurement Unit)등을 사용해야 하는 단점이 있다. 본 연구에서는 엔코더는 펄스를 각도와 속도로 계산하기 용이하고 비교적 안정성과 신뢰성 있는 결과를 얻을 수 있었다. 그러나 짧은 시간 동안은 안정된 결과가 나타났지만 시간이 지남에 따라 작은 오차가 누적되어 증가함을 보였다. 본 연구에서는 저렴한 가격의 엔코더를 이용하여 시스템을 구성하였으며 간단히 적용이 가능한 PID 알고리즘을 적용할 때와 적용하지 않았을 경우의 데이터를 비교해 보았으며 알고리즘이 적용되었을 경우 비교적 안정적 자세 제어가 수행됨을 알 수 있었다. 그림 6과 같이 알고리즘 적용 전 Pole의 경우 처음 진동은 약 ±15°에서 진행되어 ±9°이하로 안정되지 않고 계속 지속되었으나 그림 8과 같이 알고리즘 적용 후 처음 진동은 약 ±2°에서 시작하여 시간이 지남에 따라 점차 Pole, Arm은 안정됨을 볼 수 있다. 이러한 제어 시스템 기술은 항공기, 자율주행 차량, 의료 로봇 및 그 밖의 많은 비선형 시스템 분야에 유용하게 활용될 것으로 기대된다. 향후 과제로 시스템 향상을 위한 수학적 모델링을 통해 오차에 강인한 제어 알고리즘 연구가 필요하다.

References

  1. Arulmozhi Nagarajan, Aruldoss Albert Victoire, Arulmozhi Nagarajan, Aruldoss Albert Victoire, "Optimization Reinforced PID-Sliding Mode Controller for Rotary Inverted Pendulum," Institute of Electrical and Electronics Engineers, NO. 11, pp. 24420~24430, 2023. 
  2. Jin Gu Kang, "A Study on Mobile Robot for Posture Control of Flexible Structures Using PI Algorithm," Journal of the Korea Society of Computer and information, Vol. 27, NO. 2, pp. 9~14, 2022. 
  3. Young doo, Tae hee An, Gun oo Jung, Young kiu Choi, "Neural Network PID Controller for Angle and Speed Control of Two Wheeled Inverted Pendulum Robot," Journal of information and communication convergence engineering, Vol. 15, NO. 9, pp. 1871-1880, 2011.  https://doi.org/10.6109/jkiice.2011.15.9.1871
  4. Yun-hyung Lee, Jong-pil Kim, Gang-gyoo Jin, Myung-ok So, "Stabilizing Inverted Pendulum System Using Fuzzy Controller Based on State Variables Combination," Journal of the Korean Society of Marine Engineering, Vol. 36, NO. 8, pp. 1104~1110, 2012.  https://doi.org/10.5916/jkosme.2012.36.8.1104
  5. Seul Jung, Sung-su Kim, "Control Experiment of a Wheel-Driven Mobile Inverted Pendulum Using Neural Network," IEEE Transactions on Control Systems Technology, Vol. 16, NO. 2, pp. 297~303, 2008.  https://doi.org/10.1109/TCST.2007.903396
  6. Seong-yong Lee, Jun-yong Lee, Wooyong Kim, "Adaptive Balancing Control of Reaction-Wheel-Based Inverted Pendulum System under Center-of-Gravity Change," Transactions on Control Automation and Systems Engineering, Vol. 28, NO. 11, pp. 1074~1079, 2022.  https://doi.org/10.5302/J.ICROS.2022.22.0148
  7. Erjon Shala, Xhevahir Bajrami, Rame Likaj, Arbnor Pajaziti, "Real Time Swinging Up and Stabilizing a Double Inverted Pendulum Using PID-LQR," Strojnicky casopis - Journal of Mechanical Engineering, Vol. 73, NO. 1, pp. 159~168, 2023.  https://doi.org/10.2478/scjme-2023-0013