• 대한전기학회
Mobile QR Code QR CODE : The Transactions of the Korean Institute of Electrical Engineers
  • COPE
  • kcse
  • 한국과학기술단체총연합회
  • 한국학술지인용색인
  • Scopus
  • crossref
  • orcid

  1. (Dept. of Electrical and Computer Engineering, Inha University, Incheon, Korea)
  2. (Dept. of Electrical and Computer Engineering, Inha University, Incheon, Korea)



Ball and plate system, 3-DOF Stewart platform, LW-RCP, Parallel robot kinematics

1. 서 론

제어공학에 있어서 시스템 모델링, 제어기 설계, 모의실험 과정은 이론적인 제어 지식을 바탕으로 비교적 쉽게 수행한다. 하지만 실제 제어시스템을 설계하고 구현하는 것은 제어 이론적 지식 외에 구동기의 동작 방식에 대한 깊은 이해와 제어 알고리즘을 C-code와 같은 low-level coding 작업 과정, 데이터 송수신을 위한 통신 기술 등과 같이 여러 분야의 지식을 요구한다. 최근 제어공학을 강의하는 대학에서는 이에 대한 문제의식을 느끼고 제어 이론 강의와 더불어 학생들이 실제 제어시스템을 경험해 보도록 실습 도구를 활용하는 강의를 구성하여 학습 효과를 증가시키는 연구가 진행되고 있다(1-2).

Ball and plate 시스템은 ball and beam 문제를 확장한 비선형 다변수 시스템으로 plate의 기울기를 조절하여 plate 위에 올려진 ball을 원하는 움직임으로 운동시키는 시스템이다. 불안정하고 비선형적인 시스템의 특성 때문에 다양한 제어 기법을 적용하여 결과를 비교하고 성능을 검증함으로써 학생들이 제어시스템을 이해하는 데 도움을 준다. 고전제어인 PID 제어를 시작으로, 현대 제어인 LQR(Linear Quadratic Regulator) 제어(3), SMC(Sliding Mode Control)(4), BPC(Backstepping Control)(5), MPC(Model Predictive Control)(6), 강화학습(7) 등을 적용할 수 있다.

Ball and plate 시스템의 구동부는 plate의 x축 방향 회전인 pitch와 y축 방향 회전인 roll에 대한 움직임을 요구한다(8). Stewart platform은 parallel robot의 일종으로 작은 동작범위 내에서 다양한 움직임을 만들기 때문에 모의실험(9-10), 에뮬레이터(11) 장치 등 다양한 산업 및 연구에서 응용되는 구조로, ball and plate 시스템을 구현하기에 적합하다(12). 많은 논문에서 ball and plate 시스템의 구동부로 2 자유도 혹은 6 자유도 Stewart platform을 이용하는데, 2 자유도의 경우 ball and plate 시스템 제어를 위한 최소한의 요건을 갖춘다(12-13). 6 자유도 구동부는 기존의 구동부보다 4개의 자유도를 추가하여 더 까다로운 동작 및 제어 문제를 처리할 수 있다는 장점이 있지만 시스템을 구성하는 데 더 많은 비용이 소요된다는 단점이 있다(4,14). 본 논문에서는 pitch, roll, vertical 움직임에 관하여 자유도를 가지는 3 자유도 Stewart platform을 이용한 구조를 제안한다. 이는 제어 문제의 범위를 2 자유도에서 3 자유도로 확장해 까다로운 동작 및 제어 문제를 처리할 수 있고, 6 자유도 구동부의 단점을 최소화하여 효율적인 구동부 설계가 가능하다는 장점이 있다.

그림. 1. Revolute joints를 사용한 Stewart platform 개념도

Fig. 1. Concept diagram of Stewart platform using revoute joints

../../Resources/kiee/KIEE.2023.72.8.943/fig1.png

Ball and plate 시스템을 제어하기 위해서는 plate의 pitch, roll 움직임이 정밀하게 동작해야 하므로 Stewart platform의 기구학 분석이 필요하다(4). Stewart platform은 자유도, 구조에 따라 기구학이 달라지기 때문에 현재까지도 연구가 진행 중인 분야이다(15-16). 특히 revolute joint를 적용한 구조는 prismatic joint를 적용한 구조와 비교했을 때, 바닥에 모터를 고정할 수 있고 제한된 공간 내에서 넓은 동작범위를 가지도록 하므로 설계 및 제작 용이성 측면에서 장점이 있다(4). 본 논문에서는 revolute joint를 적용한 3 자유도 Stewart platform의 구조를 제안하며 이에 대한 기구학을 도출한다.

Ball and plate 시스템을 효율적으로 구현하기 위해 연구실에서 자체 개발한 비용 효과적이고 휴대성을 가지는 LW-RCP(Light-weight Rapid Control Prototyping)를 적용한다. 또한 데이터 수집과 모터 구동을 위한 인터페이스 보드를 설계하여 교육 도구와의 연계를 용이하게 한다. RCP 시스템은 산업 전반에 널리 사용되는 개발 환경 역할을 하여 효율적인 제어기 설계 및 성능 검증을 원활하게 한다(17-19). 이 시스템은 하드웨어 인터페이스, 데이터 수집, 모니터링과 같은 제어기 설계 외의 작업을 효과적으로 처리하고 설계자는 제어기 설계 자체에 집중할 수 있다(20). 특히 실제 제어시스템에 RCP 시스템을 적용하면 제어 플랜트를 Simulink와 같은 high-level의 실습 도구와 연결함으로써 제어 알고리즘을 C-Code와 같은 low-level coding 작업 과정을 생략할 수 있다. 이러한 방식은 모의실험을 넘어 실제 플랜트를 직접 제어해보는 기회를 가지도록 함으로써 학습 효과를 극대화한다[1-2,14].

그림. 2. 모터부 구조

Fig. 2. Structure of the motor part

../../Resources/kiee/KIEE.2023.72.8.943/fig2.png

그림. 3. (a) 3차원 설계 SW로 설계한 Stewart platform 구조, (b) Arm의 구조

Fig. 3. (a) Structure of Stewart platform designed using 3D design SW, (b) Structure of the arm

../../Resources/kiee/KIEE.2023.72.8.943/fig3.png

저자들이 속한 연구실에서는 ball and plate 시스템 이외에 다단 도립진자 시스템의 swing-up 제어(21)와 강화학습 기반의 제어기 개발 환경에 대한 연구(22)에 LW-RCP를 활용하기도 한다.

본 논문의 나머지 부분은 다음과 같이 구성한다. 2절에서는 ball and plate 시스템의 기구부 구조를 제안하고 그에 대한 기구학을 유도한다. 3절에서는 ball and plate 시스템을 구현하기 위한 수학적 모델과 제어기를 설명한다. 4절에서는 LW-RCP를 이용하여 ball and plate 시스템 구현을 위한 Simulink 환경의 알고리즘을 소개하며 제안하는 구현 방법이 유용함을 실험 영상을 통해 입증한다. 마지막으로 5절에서는 논문의 결론을 다루도록 한다.

2. 설계 및 구현 방법

2.1 기구부 구조

본 논문에서는 ball and plate 시스템을 위한 기구부로 pitch, roll, vertical 움직임에 관하여 자유도를 가지는 3 자유도 Stewart platform을 채택한다. 그림 1은 본 논문에서 채택한

표 1. Arm을 기술하는 파라미터

Table 1. Parameters that describes the arm

Symbol

Parameter

$J_{b i}$

The $i$-th base joint($i=1,\: 2,\: 3$)

$J_{p i}$

The $i$-th plate joint($i=1,\: 2,\: 3$)

$J_{si}$

The $i$-th sub joint($i=1,\: 2,\: 3$)

$L_{bs}$

Base-sub link

$L_{ps}$

Plate-sub link

$L$

Virtual leg connecting $J_{b i}$ and $J_{p i}$

$R_{b}$

Radius of the base circle

$R_{p}$

Radius of the plate circle

$D_{s}$

The length of $L_{ps}$

$R_{m}$

The length of $L_{bs}$

$\Pi_{i}$

The plane with joints of the $i$-th arm($i=1,\: 2,\: 3$)

$h_{i}$

Height($z$-axis coordinate of $J_{p i}$, $i=1,\: 2,\: 3$)

$\alpha$

The angle between $L_{bs}$ and $L$ when $\gamma = 0$

$\beta$

The angle between $L_{bs}$ and $L$ when $\gamma\ne 0$

$\gamma$

The angle of rotation of the motor

platform의 개념도이며, 다음과 같은 역할을 하는 3개의 층으로 구성된다.

· Plate 층: Base 층의 모터에 의해 picth, roll, vertical에 대한 자유도를 가지고 동작한다. Ball의 위치를 측정하는 센서가 부착되어 있으며, ball and plate 시스템이 구현되는 층이다.

· Base 층: 3개의 모터를 부착하여 platform의 움직임을 생성한다.

· Control 층: 센서 데이터 수집과 모터 구동을 위한 인터페이스 보드가 장치된 층이다.

기구부에 부착되는 모터로는 정밀 제어가 용이하며 강한 힘을 출력할 수 있도록 감속기를 갖는 DC 모터를 사용한다. 그림 2는 base 층에 부착된 DC 모터의 구조를 보여준다. 고분해능의 자기식 엔코더와 자석 거치대를 장착하여 정밀한 회전각의 측정이 가능하고, 어댑터를 이용하여 엔코더와 모터를 결합할 수 있도록 제작한다(23). 또한 platform이 제한된 공간 내에서 넓은 동작범위를 가지도록 revolute joint를 사용하는 구조를 갖는 것이 특징이다. 그림 3(a)은 3차원 설계 SW로 설계한 전체 platform을 나타낸다. 그림 3(b)은 모터에 부착되어 plate를 구동하는 arm의 구조를 보여준다.

2.2 기구학

Ball and plate 시스템의 기구부 구조로 제안하는 3 자유도 Stewart platform을 동작시키기 위해서는 이에 대한 기구학에 대한 지식이 요구된다. 3 자유도 Stewart platform의 기구학(Kinematics)과 역기구학(Inverse kinematics) 문제에 대해 platform의 base 층과 plate 층에 삼각형 모양으로 배치된 joint를 연결하는 link의 길이와 plate 층의 pitch, roll, vertical 움직임의 관계에 대하여 다룬 연구가 있다(24). 이때 link의 길이는 prismatic joint에 의해 결정되는데 본 논문에서 제안하는 기구부는 그림 1과 같이 prismatic joint가 아닌 revolute joint를 사용하므로 기구학에 대한 새로운 유도가 필요하다. 따라서 본 논문에서는 revolute joint를 사용한 3 자유도 Stewart platform의 기구학을 유도한다.

먼저 수학적으로 정리하기 위해 arm을 기술하기 위한 파라미터를 표 1과 같이 정의한다. Platform은 그림 3(b)과 같이 3개의 joint($J_{b i}$, $J_{p i}$, $J_{si}$)와 2개의 link($L_{bs}$, $L_{ps}$)로 이루어진 arm을 사용하여 base 층과 plate 층을 연결하는 구조이다. $L$은 $J_{b i}$와 $J_{p i}$ 사이에 존재하는 virtual leg에 대응하며, 길이는 모터의 움직임에 의해 결정된다(24). 따라서 본 논문에서 제안하는 platform의 기구학을 base 층에 부착된 모터의 회전각과 base 층의 무게 중심을 origin으로 한 base frame으로부터 plate 층의 무게 중심을 origin으로 한 plate frame까지의 수직 거리(height), plate frame의 pitch, roll과의 상관관계로 나타내고자 한다.

그림. 4. (a) Base 평면에 정사영 된 joints, (b) $\gamma_{i}=\gamma$일 때 arm 개념도($i=1,\:2,\:3$)

Fig. 4. (a) Joints projected onto the base plane, (b) Concept diagram of the arm when $\gamma_{i}=\gamma$ ($i=1,\:2,\:3$)

../../Resources/kiee/KIEE.2023.72.8.943/fig4.png

$J_{b i}$와 $J_{p i}$의 좌표를 정의하고자 한다. 식을 간단히 하기 위해 앞으로 삼각함수 수식은 $\sin\alpha =s_{\alpha}$, $\cos\alpha =c_{\alpha}$, $\tan\alpha =t_{\alpha}$의 형태로 표현한다. $J_{b i}$와 $J_{p i}$의 좌표는 각각 base frame을 기준으로 다음과 같이 나타낼 수 있다.

(1)
\begin{align*} \begin{bmatrix}B_{1}\\B_{2}\\B_{3}\end{bmatrix} &=R_{b}\begin{bmatrix}1&0&0\\c_{\pi /3}&s_{\pi /3}&0\\c_{2\pi /3}&s_{2\pi /3}&0\end{bmatrix}\begin{bmatrix}x\\y\\z\end{bmatrix},\:\\ \begin{bmatrix}P_{1}\\P_{2}\\P_{3}\end{bmatrix}&=R_{p}\begin{bmatrix}1&0&h_{1}\\c_{\pi /3}&s_{\pi /3}&h_{2}\\c_{2\pi /3}&s_{2\pi /3}&h_{3}\end{bmatrix}\begin{bmatrix}x\\y\\z\end{bmatrix}. \end{align*}

$J_{p i}$를 $x-y$평면($z=0$)으로 정사영시키면 그림 4(a)와 같이 반지름이 다른 3개의 가상의 원 모양에 $120^{\circ}$간격으로 배치되며 정사영 된 $J_{p i}$의 좌표는 다음과 같다.

(2)
$\begin{bmatrix}P_{1}^{'}\\P_{2}^{'}\\P_{3}^{'}\end{bmatrix}= R_{p}\begin{bmatrix}1&0&0\\c_{\pi /3}&s_{\pi /3}&0\\c_{2\pi /3}&s_{2\pi /3}&0\end{bmatrix}\begin{bmatrix}x\\y\\z\end{bmatrix}.$

모터가 그림 4(b)처럼 $\gamma$만큼 회전했을 때 $\alpha$와 $\beta$는 다음과 같이 구한다.

(3)
\begin{align*} \gamma =\alpha -\beta ,\:\\ \alpha =\tan^{-1}\left(\dfrac{\left | P-P^{'}\right |}{\left | P^{'}-B\right |}\right),\:\\ \beta =\cos^{-1}\left(\dfrac{| l |^{2}+R_{m}^{2}-D_{s}^{2}}{2 | l | R_{m}}\right). \end{align*}

이때 $R_{m}$, $D_{s}$는 platform 설계 시 정해지는 값이고, $l$은 모터가 회전함에 따른 virtual leg($L$)의 길이로 $J_{b i}$와 $J_{p i}$의 좌표를 통해 구할 수 있다. 여기서 $J_{p i}$의 좌표는 정사영 된 $J_{p i}$의 좌표에 대한 회전행렬($R$)과 병진 벡터($\xi$)를 통해 표현할 수 있으므로 $l$은 다음과 같이 정리할 수 있다.

(4)
\begin{align*} l_{i} & =\sqrt{P_{i}^{2}-B_{i}^{2}}\\ & =\sqrt{(RP_{i}^{'}+\xi)^{2}-B_{i}^{2}}. \end{align*}

$R$은 $SO(3)$행렬로, pitch-roll-yaw($\psi$, $\theta$, $\phi$) 또는 Rodrigues’ rotation formula로 표현된다. 이때 $n$와 $\delta$, $N$는 각각 회전축 상의 단위벡터, 회전각, skew-symmetric 행렬을 의미한다(8).

(5)
\begin{align*} R & =R_{z,\:\phi}R_{y,\:\theta}R_{x,\:\psi}\\ & =\begin{bmatrix}c_{\phi}c_{\theta}& -s_{\phi}c_{\psi}+c_{\phi}s_{\theta}s_{\psi}& s_{\phi}s_{\psi}+c_{\phi}s_{\theta}c_{\psi}\\s_{\phi}c_{\theta}& c_{\phi}c_{\psi}+s_{\phi}s_{\theta}s_{\psi}& -c_{\phi}s_{\psi}+s_{\phi}s_{\theta}c_{\psi}\\-s_{\theta}& c_{\theta}s_{\phi}& c_{\theta}c_{\psi}\end{bmatrix},\:\\ R(n,\:\delta)& =c_{\delta}I+\left(1-c_{\delta}\right)nn^{T}+ s_{\delta}N\\ & =c_{\delta}\begin{bmatrix}1&0&0\\0&1&0\\0&0&1\end{bmatrix}+(1-c_{\delta})\begin{bmatrix}n_{1}^{2}& n_{1}n_{2}& n_{1}n_{3}\\ n_{2}n_{1}& n_{2}^{2}& n_{2}n_{3}\\ n_{3}n_{1}& n_{3}n_{2}& n_{3}^{2}\end{bmatrix}\\ & +s_{\delta}\begin{bmatrix}0 & -n_{3}& n_{2}\\n_{3}& 0 & n_{1}\\-n_{2}& n_{1}& 0\end{bmatrix}\\ & =\begin{bmatrix}r_{11}& r_{12}& r_{13}\\r_{21}& r_{22}& r_{23}\\r_{31}& r_{32}& r_{33}\end{bmatrix}. \end{align*}

여기서 $r_{ij}$와 $\delta$, $n$은 다음의 관계를 가진다.

(6)
\begin{align*} \delta & =\cos^{-1}\left(\dfrac{r_{11}+r_{22}+r_{33}-1}{2}\right),\:\\ n & =\dfrac{1}{2s_{\delta}}\begin{bmatrix}r_{32}-r_{23}\\r_{13}-r_{31}\\r_{21}-r_{12}\end{bmatrix}. \end{align*}

3 자유도 Stewart platform에서 $J_{p i}$는 각각 평면 $\Pi_{1}$, $\Pi_{2}$, $\Pi_{3}$ 상에 존재해야 하므로 $R$과 $\xi$는 임의로 선택할 수 없고 제약 조건(constraint equation)을 만족해야 하며 다음과 같이 정리된다(24). 여기서 $x_{G}$와 $y_{G}$, $z_{G}$는 base frame 기준으로 한 plate frame의 origin의 좌표이다. $z_{G}$는 사용자가 정하는 값으로, base frame으로부터 plate flame까지의 수직 거리(height)에 해당한다.

(7)
\begin{align*} x_{G} &=-\dfrac{R_{b}}{2}\left(1-c_{\delta}\right)\left(n_{2}^{2}-n_{1}^{2}\right),\:\\ y_{G}&=-R_{b}\left(1-c_{\delta}\right)n_{1}n_{2},\:\\ 0&=s_{\delta}n_{3}. \end{align*}

$s_{\delta}\ne 0$이라면 식 (6), (7)에 의해 $\phi$는 $\psi$와 $\theta$의 종속 변수임을 알 수 있다.

(8)
$\phi =\tan^{-1}\left(\dfrac{s_{\theta}s_{\psi}}{c_{\theta}+c_{\psi}}\right).$

따라서 식 (5), (6)을 $\psi$와 $\theta$로 나타낼 수 있다.

(9)
\begin{align*} R(\theta ,\:\psi)& =\begin{bmatrix}\dfrac{\left(c_{\theta}+c_{\psi}\right)c_{\theta}}{c_{\theta}c_{\psi}+1}&\dfrac{s_{\theta}c_{\theta}s_{\psi}}{c_{\theta}c_{\psi}+1}& s_{\theta}\\\dfrac{s_{\theta}c_{\theta}s_{\psi}}{c_{\theta}c_{\psi}+1}&\dfrac{c_{\theta}c_{\psi}+c_{\psi}^{2}+s_{\theta}^{2}s_{\psi}^{2}}{c_{\theta}c_{\psi}+1}& -c_{\theta}s_{\psi}\\-s_{\theta}& c_{\theta}s_{\psi}& c_{\theta}c_{\psi}\end{bmatrix},\:\\ n & =\begin{bmatrix}n_{1}\\n_{2}\\n_{3}\end{bmatrix}=\dfrac{1}{\sqrt{1-c_{\theta}^{2}c_{\psi}^{2}}}\begin{bmatrix}c_{\theta}s_{\psi}\\s_{\theta}\\0\end{bmatrix}. \end{align*}

제약 조건을 통해 $\psi =\theta =0$인 경우에만 $x_{G}=y_{G}=0$이 성립하고 나머지 경우에는 $0$이 아닌 값을 가질 수 있음을 알 수 있다. 즉 plate frame의 origin은 고정되어 있지 않고, plate가 회전함에 따라 다음과 같이 이동한다.

(10)
\begin{align*} x_{G} &=-\dfrac{R_{b}}{2}\left(1-c_{\theta}c_{\psi}\right)\left(s_{\theta}^{2}- c_{\theta}^{2}s_{\psi}^{2}\right),\:\\ y_{G}&=-R_{b}\left(1-c_{\theta}c_{\psi}\right)s_{\theta}c_{\theta}s_{\psi}. \end{align*}

이로 인해 plate frame의 pitch, roll은 $R$에서 정의한 $\psi$, $\theta$와 다를 수 있으므로 plate frame의 pitch($\bar{\psi}$), roll($\bar{\theta}$)을 새롭게 정의해야 한다. Plate frame의 $z$축 벡터는 base frame의 $z$축 벡터에 $R$을 곱하여 표현할 수 있다. 또한 plate frame의 $z$축 벡터는 plate에 수직이므로 다음과 같은 평면의 방정식으로 나타낼 수 있으며 $J_{p i}$는 이 평면 위에 있다.

(11)
$R\begin{bmatrix}0\\0\\1\end{bmatrix}=\begin{bmatrix}s_{\theta}\\-c_{\theta}s_{\psi}\\c_{\theta}c_{\psi}\end{bmatrix}=\begin{bmatrix}a\\b\\c\end{bmatrix}.$

(12)
$ax+by+cz=d.$

식 (11), (12)을 통해 $\bar{\psi}$와 $\bar{\theta}$는 다음과 같이 유도된다.

(13)
\begin{align*} \bar{\psi} & =\tan^{-1}\left(\dfrac{-b}{c}\right)=\tan^{-1}\left(\dfrac{c_{\theta}s_{\psi}}{c_{\theta}c_{\psi}}\right)=\psi ,\:\\ \bar{\theta}& =-\tan^{-1}\left(\dfrac{-a}{c}\right)=\tan^{-1}\left(\dfrac{s_{\theta}}{c_{\theta}c_{\psi}}\right)\ne\theta ,\:\\ \theta & =\tan^{-1}\left(t_{\bar{\theta}}c_{\psi}\right). \end{align*}

이를 통해 $\psi$는 $\bar{\psi}$과 같지만, $\theta$는 $\bar{\theta}$와 $\psi$의 종속 변수임을 알 수 있다. 따라서 새롭게 정의된 $\bar{\psi}$와 $\bar{\theta}$을 사용하여 기구학을 유도해야 한다. 결론적으로 base 층의 모터의 회전각은 $J_{bi}$, $J_{p i}$와 관련 있으며 $J_{b i}$는 고정 파라미터이고 $J_{p i}$는 $R$과 $\xi$을 통해 알 수 있다. 이는 plate frame의 $z_{G}$와 $\bar{\psi}$, $\bar{\theta}$에 의해 결정된다.

그림. 5. 터치패널 다이어그램 (a) $x$, $y$축, (b) 터치가 있을 때 $z$축, (c) 터치가 없을 때 $z$축

Fig. 5. Concept diagram of the touch panel (a) the $x$, $y$ axes, (b) the $z$ axis with touch, (c) the $z$axis without touch

../../Resources/kiee/KIEE.2023.72.8.943/fig5.png

그림. 6. 인터페이스 보드

Fig. 6. Interface board

../../Resources/kiee/KIEE.2023.72.8.943/fig6.png

그림. 7. 데이터 처리 개념도

Fig. 7. Concept diagram for data processing

../../Resources/kiee/KIEE.2023.72.8.943/fig7.png

2.3 센서부 및 인터페이스 보드

Ball and plate 시스템을 구현하기 위해서는 ball의 위치를 측정하고 사용 가능한 데이터로 가공하여 LW-RCP에 전달하는 과정이 요구된다. Ball의 위치를 측정하기 위해 10.2인치 크기의 터치패널과 ADS7846E 터치패널 컨트롤러를 사용한다. 이 컨트롤러는 터치패널의 $x$, $y$, $z$축에 대한 전압 데이터를 측정하여 SPI(Serial Peripheral Interface) 통신을 통해 MCU(Microcontroller Unit)로 송신한다. $x$, $y$는 각각 $x$, $y$축 위치에 대한 정보를, $z$는 터치패널의 접촉 여부에 대한 정보를 의미하며 그림 5과 같이 VCC와 GND의 연결을 변경하여 측정한다. MCU는 측정 데이터를 사용 가능한 데이터로 가공하여 LW-RCP에 전달한다.

Control 층에 부착한 인터페이스 보드(그림 6)는 LW-RCP와 platform 간의 연계 역할을 한다. 이 보드는 센서 측정과 모터 구동을 위한 데이터를 처리하고 송수신하기 위한 것으로 모터 드라이버와 터치패널 컨트롤러, STM32F407VE (메인 보드)가 장치되어 있다. Platform과 인터페이스 보드, LW-RCP 간의 전반적인 데이터 처리 및 송수신 과정은 그림 7과 같다. LW-RCP는 SPI 통신을 지원하지 않기 때문에 터치패널의 데이터를 직접적으로 처리하지 못한다. 따라서 측정된 ball의 위치 데이터는 인터페이스 보드에 장치된 메인 보드에서 측정하고 LW-RCP로 전송한다. Ball의 위치에 대한 데이터는 터치패널의 아날로그 전압이며 컨트롤러로부터 SPI 통신을 통해 메인 보드가 수신한다. 이를 PWM(Pulse Width Modulation) 신호로 변환하여 LW-RCP로 송신한다. 모터 구동에 필요한 PWM 데이터는 인터페이스 보드의 모터 드라이버에 전달해 모터에 전압을 인가한다. 엔코더 데이터는 인터페이스 보드를 거쳐 LW-RCP로 전달된다.

3. 모델 방정식 및 제어기 설계

3.1 모델 방정식

그림 8은 ball and plate 시스템의 개념도를 보여준다. $x$와 $y$는 plate의 origin을 기준으로 한 ball의 좌표이고, $\alpha$와 $\beta$는 plate의 pitch, roll이다. Plate의 회전으로 ball이 이동하는 ball and plate 시스템의 수학적 모델은 Euler-Lagrange 방정식을 이용하여 유도한다. 수학적 모델을 선형화시키면 2개의 독립적인 단일 입출력 시스템으로 분리된다. 또한 두 식은 구조가 동일하기 때문에 하나의 시스템만 고려하여 제어기를 설계하면 다른 시스템에 똑같이 적용할 수 있다(4,12).

이론적으로는 2차 시스템의 모델을 이용하여 제어기를 설계하면 ball을 제어할 수 있다. 하지만 실제 실험 환경에서는 시스템이 놓여진 바닥 면의 기울기에 의한 offset 오차가 존재한다. 이를 보정하기 위해 ball의 위치 오차에 대한 적분 요소를 추가한 모델을 적용하여 제어기를 설계한다(14). 식 (14)는 보정이 필요한 요소를 추가한 상태방정식 모델의 A, B, C 행렬이며 $x_{1}$과 $x_{2}$, $g$는 각각 ball의 위치와 속도, 중력가속도를 의미한다. 이때 ball의 질량은 참고문헌(12)에서와 같이 ball and plate의 모델 방정식을 유도하고 선형화하는 과정에서 약분되므로 제어시스템에 영향을 미치지 않는다.

(14)
\begin{align*} A & =\begin{bmatrix}0 & 1 & 0\\0 & 0 & 1\\0 & 0 & 0\end{bmatrix},\: B & =\begin{bmatrix}0\\0\\-\dfrac{5}{7}g\end{bmatrix},\:\\ C & =\begin{bmatrix}1 & 0 & 0\\0 & 1 & 0\\0 & 0 & 1\end{bmatrix},\: x & =\begin{bmatrix}\int x_{1}\\x_{1}\\x_{2}\end{bmatrix}. \end{align*}

3.2 제어기 설계

본 논문에서는 모델 방정식을 통해 최적화된 제어 입력을 만드는 LQ 제어기를 설계하여 제안하는 ball and plate 시스템의 유용성을 확인할 수 있다. 제어기의 목표는 ball의 상태(위치, 속도)와 입력 각도를 최소화하는 입력을 찾는 것으로 이에 대한 비용 함수 $J$는 가중행렬 $Q$, $R$과 함께 다음과 같이 나타난다. 비용 함수 $J$를 최소화하는 입력 $u$는 식 (15)처럼 현재 상태 $x$와 원하는 기준 상태 $x_{r}$의 차이에 LQ 이득 계수인 $K$를 곱한 형태로 표현된다. 제어기 입력을 만들기 위해 $K$를 구해야 하고 $K$를 구성하는 행렬 $P$는 이산 시간에 대한 Riccati 방정식을 사용해 구한다. MATLAB 환경에서 LQ 제어기를 구현하기 위한 되먹임 이득 행렬 $K$는 dlqr 함수를 사용해 구할 수 있다(14).

(15)
\begin{align*} u & =-K\left(x-x_{r}\right),\:\\ K & =\left(B^{T}PB+R\right)^{-1}B^{T}PA,\:\\ P & =A^{T}PA-A^{T}PB\left(R+B^{T}PB\right)^{-1}B^{T}PA+Q. \end{align*}

4. LW-RCP 및 실험 결과

4.1 LW-RCP

Ball and plate 시스템을 구현하기 위해서 연구실에서 자체 개발된 LW-RCP를 사용한다. LW-RCP는 dSpace(25)나 Quanser Consulting(26)과 같은 회사에서 판매하는 상용 RCP 장비와 대등한 성능을 가지지만 상대적으로 경제적인 비용으로 구성이 가능한 장비로, 그동안 연구실에서 다양한 연구에 사용되었다(2,14,20). LW-RCP는 하드웨어 인터페이스를 담당하는 LW-RCP 하드웨어 장치와 Simulink에서 사용하는 라이브러리 블록으로 구성된다. 사용자는 LW-RCP 라이브러리에서 제공하는 블록을 이용하여 하드웨어 접근을 담당하는 블록 기반 알고리즘을 구성하고, Simulink에서 기본적으로 제공하는 블록들을 이용하여 제어 연산과 관련된 부분의 알고리즘을 구성한다. LW-RCP 하드웨어 장치와 LW-RCP 라이브러리 블록을 이용하여 구성한 Simulink 모델은 그림 10과 같은 방식으로 상호 작용한다. 센서 데이터의 측정이나 제어 데이터를 출력 peripheral에 적용하는 것과 같이 하드웨어 인터페이스가 필요한 부분은 LW-RCP가 담당하고 Simulink 기반의 제어 알고리즘은 제어 연산을 담당하는 구조이다. Simulink가 동작하는 PC와 LW-RCP 하드웨어 장치와의 통신은 High-speed USB 통신을 통해 이루어지며 최고 2kHz까지의 샘플링 주파수를 지원한다.

그림 9는 LW-RCP02의 실물 사진을 보여준다. LW-RCP01과 LW-RCP02의 입/출력 기능의 차이는 표 2와 같다. LW-RCP02의 경우 엔코더 카운터의 channel 수가 8개로 LW-RCP01에 비해 월등히 앞서며 그 외에도 LW-RCP01에 비해 입/출력 기능이 크게 향상되었다.

그림. 8. Ball and plate 시스템 개념도

Fig. 8. Concept diagram of the ball and plate system

../../Resources/kiee/KIEE.2023.72.8.943/fig8.png

그림. 9. LW-RCP02 장치

Fig. 9. LW-RCP02 hardware unit

../../Resources/kiee/KIEE.2023.72.8.943/fig9.png

그림. 10. LW-RCP의 동작 방식

Fig. 10. Flow chart of LW-RCP operation

../../Resources/kiee/KIEE.2023.72.8.943/fig10.png

표. 2. LW-RCP01과 LW-RCP02의 입/출력 비교

Table. 2. Comparison of input/outputs of LW-RCP01 and LW-RCP02

../../Resources/kiee/KIEE.2023.72.8.943/table2.png

그림 11은 LW-RCP02에서 지원하는 입/출력 라이브러리 블록을 보여준다. Ball and plate 시스템의 경우, base 층의 3개의 모터를 구동하기 위한 PWM, 엔코더 카운터가 각각 3채녈, control 층의 인터페이스 보드로부터 ball의 위치 데이터를 송신 받는 period and duty의 3 channel을 처리할 수 있어야 한다. LW-RCP02의 경우 이에 충족하므로 ball and plate 시스템에 활용될 수 있다.

그림 12는 Simulink와 LW-RCP02를 통해 ball and plate 시스템을 구현한 전체 블록선도이며, Simulink의 서브시스템을 이용하여 최상위 계층의 신호 연결 관계를 보여준다. 각 서브시스템은 다음의 역할을 수행한다.

그림. 11. LW-RCP02에서 지원하는 입/출력 library block

Fig. 11. Input/output library blocks supported by LW-RCP02

../../Resources/kiee/KIEE.2023.72.8.943/fig11.png

그림. 12. Ball and plate 시스템의 전체 블록선도

Fig. 12. Block diagram of the ball and plate system

../../Resources/kiee/KIEE.2023.72.8.943/fig12.png

그림. 13. ‘Servo motor 1’의 블록선도

Fig. 13. Block diagram of ‘Servo motor 1’

../../Resources/kiee/KIEE.2023.72.8.943/fig13.png

· X(Y) Ball Pos: 터치패널을 통해 측정한 ball의 위치 데이터와 reference 데이터를 출력한다.

· Pitch(Roll) Con: ball의 위치 제어기로 측정 데이터와 reference 데이터를 입력받아 pitch, roll 데이터를 출력한다.

· Touch Data: 터치패널의 터치 여부를 출력한다.

· Ball Plate: 3 자유도 Stewart platform의 기구학을 구현한 S-function 블록으로, 입력받은 pitch, roll, height 데이터를 만족하기 위한 구동부의 3개의 모터 회전각을 출력한다.

· Servo motor 1(2, 3): 모터 위치 제어시스템을 위한 서브시스템으로 ‘Ball Plate’ 서브시스템에서 출력되는 reference 회전각을 추종한다.

Subsystem의 내부는 Simulink의 라이브러리 블록, 그리고 LW-RCP02의 라이브러리 블록을 조합하여 구성된다. 일례로 그림 13은 'Servo motor 1’'의 이름을 갖는 서브시스템의 내부 구성을 보여준다. LW-RCP02의 PWM, 엔코더 카운터 라이브러리 블록과 ‘Gain’, ‘Add’, ‘Saturation’과 같은 Simulink의 라이브러리 블록을 조합하여 모터 위치 제어시스템을 구성한다.

4.2 실험 결과

구현된 시스템의 효용성을 확인하기 위하여 그림 12의 제어 알고리즘을 이용한 제어 실험을 수행했다. 그림 14은 ball and plate 제어시스템을 실험한 영상을 Youtube에 upload 한 후 Youtube 화면을 캡쳐한 사진을 보여준다. 실제 Youtube 영상의 주소는 https://youtu.be/XaEVODCnmJE (영상 제목 : Ball-and- plate control system, Channel 이름 : Embedded Control Lab.)로 실험 결과를 영상을 통해 확인할 수 있다.

그림 15는 영상 중 regulation 문제에 대한 구현된 시스템이 동작한 결과를 나타내는 그래프로, 좌측 그래프는 $x$축 기준의 ball 위치 reference와 센서를 통해 측정된 데이터를 나타내며, 우측 그래프는 reference에 수렴하기 위한 roll($\theta$) 움직임을 나타낸다. Reference가 변함에 따라 ball이 수렴하고 균형을 유지하기 위해 동작하는 것을 보여준다. 바닥 면의 기울어짐에 의해 ball이 움직이므로 정상상태에 도달한 후 흔들리면서 균형을 유지함을 알 수 있다. 그림 16은 영상 중 Tracking 제어 문제에 대해 구현된 시스템이 동작한 결과를 나타내는 그래프로, 평균적으로 0.005[m] 정도의 오차를 보이면서 원 모양의 reference를 추종하는 것을 보여준다.

실험 영상을 통해 확인할 수 있듯 다양한 기준 입력을 추종하는 제어 실험을 손쉽게 수행할 수 있고 이러한 과정을 통해 제어와 관련된 효과적 교육을 제공할 것으로 기대한다.

5. 결 론

Ball and plate 시스템은 학생들에게 자동 제어의 원리에 대해 가르치기 위한 효과적인 교육 도구로 널리 인정받고 있다. 이 논문은 자동 제어를 공부하는 학부생의 교육을 위해 설계된 ball and plate 시스템의 실용적인 구현 방법을 제안했다. 제안된 구현 방법에서는 plate를 구동하기 위한 기구부로 3 자유도 Stewart platform을 채택했다. 이를 통해 학생들이 parallel robot에 대한 기구학을 학습하는 실제 경험을 얻을 수 있다. 또한 plate의 pitch, roll 움직임 뿐 아니라 vertical 움직임도 제공하여 제어 문제의 범위를 2 자유도에서 3 자유도로 확장함으로 학습의 영역에서 연구의 영역으로 제어 문제를 재설정할 수 있는 장점을 가진다. 교육 도구와의 연계를 원할히 하기 위해 데이터 수집과 모터 구동을 위한 인터페이스 보드를 설계했다. 이 보드는 연구실에서 개발한 LW-RCP와 함께 사용할 수 있어, 임베디드 시스템이나 프로그래밍에 익숙하지 않은 학생들이

그림. 14. Ball and plate 제어시스템에 대한 Youtube 영상

Fig. 14. Youtube video for the ball and plate control system

../../Resources/kiee/KIEE.2023.72.8.943/fig14.png

그림. 15. Regulation 문제에 대한 실험 결과 그래프

Fig. 15. Experimental result graph for regulation problem

../../Resources/kiee/KIEE.2023.72.8.943/fig15.png

그림. 16. Tracking 문제에 대한 실험 결과 그래프

Fig. 16. Experimental result graph for tracking problem

../../Resources/kiee/KIEE.2023.72.8.943/fig16.png

Simulink 환경을 사용하여 실시간 제어시스템을 쉽게 설계할 수 있다. 제안된 구현 방법은 ball and plate 시스템에 대한 regulation 및 tracking 제어시스템을 구성하고 시연함으로써 그 유용성을 확인했다. 이를 활용하여 대학 내 제어 강의에서 다양한 제어 이론을 실제 제어시스템에 적용해보는 경험을 제공하여 학습효과를 극대화할 수 있을 것으로 기대한다.

References

1 
W. Werth, L. Faller, H. Liechtenecker, C. Ungermanns, 2020, Low Cost Rapid Control Prototyping a useful method in Control Engineering Education, Proc. of 2020 43rd International Convention on Information, Vol. communication and electronic technology (mipro), pp. 711-715Google Search
2 
Y. S. Lee, D. Ju, C. Choi, 2021, Development of educational environment to improve efficiency of online education on control systems, Journal of Institute of Control, Robotics and Systems (in Korean), Vol. 27, No. 12, pp. 1056-1063Google Search
3 
L. Spacek, V. Bobal, J. Vojtesek, 2017, Digital control of ball & plate model using lq controller, Proc. of 2017 - 21st International Conference on Process Control (PC), pp. 36-41Google Search
4 
B. Hee, Y. S. Lee, 2018, Implementation of a ball and plate control system using sliding mode control, IEEE Access, Vol. 6, pp. 32401-32408DOI
5 
M. Kazim, A. Zaidi, L. Zhang, A. Mehmood, 2017, Robust backstepping control with disturbance rejection for a class of underactuated systems, Proc. of IECON 2017 - 43rd Annual Conference of the IEEE Industrial Electronics Society, pp. 3104-3109DOI
6 
H. Bang, Y. S. Lee, 2019, Embedded model predictive control for enhancing tracking performance of a ball-and-plate system, IEEE Access, Vol. 7, pp. 39652-39659Google Search
7 
Z. Fei, Q. Xiaolong, L. Xiaoli, W. Shangjun, 2011, Modeling and pid neural network research for the ball and plate system, Proc. of 2011 International Conference on Electronics, Vol. communications and control (icecc), pp. 331-334Google Search
8 
M. W. Spong, S. Hutchinson, M. Vidyasagar, 2006, ROBOT MODELING AND CONTROL, WILEYGoogle Search
9 
E. Aguilar, E. S. Moran, E. P. Baez, N. Pinto, 2018, Design of a spatial disorientation simulator using a modified stewart- gough platform, Proc. of 2018 IEEE Third Ecuador Technical Chapters Meeting (ETCM), pp. 1-6Google Search
10 
M. D. Petrasinovic, A. M. Grobovic, D. M. Petrasinovic, M. G. Petrovic, 2022, Real Coded Mixed Integer Genetic Algorithm for Geometry Optimization of Flight Simulator Mechanism Based on Rotary Stewart Platform, Applied sciences, Vol. 12, No. 14, pp. 7085-7112Google Search
11 
K. Cetin, H. Tugal, Y. Petillot, M. Dunnigan, 2022, A Robotic Experimental Setup with a Stewart Platform to Emulate Underwater Vehicle-Manipulator Systems, Sensors, Vol. 22, No. 15, pp. 5827-5842DOI
12 
B. L. Spacek, 2016, CE151 Ball & Plate Apparatus: User’s manual, HumusoftGoogle Search
13 
W. Wang, Z. Ni, X. Cao, 2018, Ball sorting system based on ball-plate control model, Proc. of 2018 33rd Youth Academic Annual Conference of Chinese Association of Automation (YAC), pp. 728-732Google Search
14 
J. Park, H. Bang, Y. S. Lee, 2020, A Study on the Implementation of a Ball and Plate System using LW-RCP and Machine Vision based on Odroid, Institute of Control, Robotics and Systems, Vol. 26, No. 4, pp. 213-221Google Search
15 
Z. Qu, Z. Ye, 2011, Kinematics analysis of certain novel 3-dof parallel manipulator, Proc. of 2011 Third Pacific-Asia Conference on Circuits, Vol. communications and system (paccs), pp. 1-3Google Search
16 
R. V. Petrescu, R. Aversa, A. Apicella, S. Kozaitis, 2018, Inverse Kinematics of a Stewart Platform, Journal of Mechatronics and Robotics., Vol. 2, No. 1, pp. 45-59Google Search
17 
J. Khan, 2016, Rapid Control Prototyping (RCP) solutions for the validation of motor control applications, Proc. of 2016 International Conference on Emerging Technological Trends (ICETT), pp. 1-6Google Search
18 
M. Ambrosino, G. D. Tommasi, N. Ormando, 2020, Rapid prototyping of a model-based fuel injection and ignition control systems, Proc. of 2020 International Symposium on Power Electronics, Electrical Drives, Vol. automation and motion (speedam), pp. 311-316Google Search
19 
K. Benkhoud, S. Boualegue, M. Ayadi, 2017, Rapid control prototyping of a quad-tilt-sing unmanned aerial vehicle, Proc. of 2017 International Conference on Control, Vol. automation and diagnosis (iccad), pp. 423-428Google Search
20 
Y. S. Lee, B. O. Jo, S. H. Han, 2017, A Light-Weight Rapid Control Prototyping System Based on Open Source Hardware, IEEE Access, Vol. 5, pp. 11118-11130Google Search
21 
C. Choi, D. Ju, J. Jeong, Y. S. Lee, 2022, Structural Proposition for a Triple Inverted Pendulum and Implementation of Swing-up Control Using an LW-RCP02, Journal of Institute of Control, Robotics and Systems (in Korean), Vol. 28, No. 10, pp. 916-925Google Search
22 
T. Lee, D. Ju, Y. S. Lee, 2023, Development Environment of Reinforcement Learning-based Controllers for Real- world Physical Systems Using LW-RCP, Journal of Institute of Control, Robotics and Systems (in Korean), Vol. 29, No. 7, pp. 543-549DOI
23 
C. H. Lee, Y. S. Lee, 2018, Implementation of 2-DOF Inverted Pendulum Control System Robust Against Actuator Uncertainties, Institute of Control, Robotics and Systems, Vol. 24, No. 5, pp. 377-385Google Search
24 
Y. Tokad, K. Buruncuk, 1999, On the kinematic of a 3-dof stewart platform, Journal of Robotic Systems, Vol. 16, No. 2, pp. 105-118Google Search
25 
www.dspace.com, dspace official home pase, Accessed: 2023-07-01.Google Search
26 
www.quanser.com, Quanser official home page, Accessed: 2023-07-01Google Search

저자소개

후지야마 유우스게 (Yusuke Fujiyama)
../../Resources/kiee/KIEE.2023.72.8.943/au1.png

He received B.S. degree in electrical engineering from Inha university in 2022.

He is now a M.S. candidate in electrical and computer engineering at Inha university.

His research interests include embedded systems, optimal control and non-linear control.

주도윤 (Doyoon Ju)
../../Resources/kiee/KIEE.2023.72.8.943/au2.png

He received M.S. degree in electrical and computer engineering from Inha university in 2023.

He is now a Ph.D. candidate in electrical and computer engineering at Inha university.

His research interests include optimal control, embedded systems and reinforcement learning.

이영삼 (Young Sam Lee)
../../Resources/kiee/KIEE.2023.72.8.943/au3.png

He received B.S. and M.S. degrees in electrical engineering from Inha University, Incheon, South Korea, in 1999, and the Ph.D. degree in electrical engineering from Seoul National University, South Korea, in 2003.

From 2003 to 2004, he was a Senior Researcher with Samsung Electronics Co.

Since 2004, he has been with the Department of Electrical and Computer Engineering, Inha University.

He is the author of four books and more than 60 articles.

His research interests include computer- aided control system designs, rapid control prototyping, control and instrumentation, robot engineering, and embedded systems.