3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

使ったら戻れない!Roller485 をここまで簡単に動かせるのかぁ… Simulink ライブラリ roller485lib の全貌

Last updated at Posted at 2025-12-18

image.png

アドカレ 2025 の三部作です!

0. 配布するファイル

1. はじめに

 Simulink ライブラリ roller485lib で何ができるかって?

 Simulink から簡単にユニット付 BLDC モータである Unit Roller485 を動作させることができますよ!

 本記事では,わたしが作成した Simulink ライブラリ roller485lib を紹介します.そして一歩,踏み込んで,「制御工学」の観点から Unit Roller485 の特性を解析し,じゃじゃ馬のようにふるまう Unit Roller485 を手懐けることを目指します.

今回もだらだらと記述していますが,自分に対する忘備録やゼミ資料も兼ねているので,悪しからずww

また,わたしが思い違いをしていることも少なからずあるのではと思いますので,いろいろと教えていただけると幸いです.

1.1 きっかけ

1.2 Roller485 とは

image.png

1.3 なぜ Simulink なのか?

image.png

1.4 それで、わたしのしたことは …

2. 準備

2.1 ハードウェア

2.2 Simulink Support Package for Arduino Hardware のインストール

2.3 Simulink ライブラリ roller485lib のインストール

3. Simulink ライブラリ roller485lib の説明

image.png

 以下,注意点の共通事項です.

  • ユニット内部のパラメータ変更を実行開始時だけにしないと,I2C の通信負荷が大きくなってしまい,結果として,リアルタイム性を保証するために「コンフィギュレーションパラメータ / ソルバ」や各ブロックのサンプル時間を大きくすることが必要になります.

  • 提供する Simulink ブロックでは,サンプル時間は 0.005 秒(5 ミリ秒)としています.上記の要因,あるいは複数の I2C デバイスを利用していることが要因で,I2C の通信負荷が大きい場合は,必要に応じてサンプル時間を 0.005 秒より大きくしてください.

3.1 基本ブロック

3.2 ライブラリ I2C Read

3.2.1 電流検出

3.2.2 角度検出

3.2.3 角速度算出

3.3 ライブラリ I2C Write

3.3.1 電流制御モード (current mode)

image.png

3.3.2 速度制御モード (speed mode)

image.png

3.3.3 位置制御モード (position mode)

image.png

4. 応用例:鉛直面を回転するアーム角の PID 制御

 ここでは,Roller485 の軸に負荷(アーム)を取りつけ,相対角 $\theta_{\rm m}$ の角度制御を行います.

image.png

4.1 電流制御モード (current mode)

image.png

4.2 速度制御モード (speed mode)

image.png

 動作モードを速度制御モード (speed mode) とし,「外部の位置制御器(PI-D 制御器)」

\begin{align*}
    &
    {\omega}_{\rm m}^{\rm ref}(t)
    = {k}_{\rm P}e(t)
    + {k}_{\rm I}\int_{0}^{t}e(\tau){\rm d}\tau
    - {k}_{\rm D}\dot{\theta}_{\rm m}(t)
    \tag{2}
    \\
    & \qquad
    e(t) = {\theta}_{\rm m}^{\rm ref}(t) - {\theta}_{\rm m}(t)
\end{align*}

により相対角 $\theta_{\rm m}$ の制御を行いました.ただし,$(2)$ 式は SI 単位系としており,$\theta_{\rm m}\ {\rm [rad]}$, $\theta_{\rm m}^{\rm ref}\ {\rm [rad]}$, $\omega_{\rm m}^{\rm ref}\ {\rm [rad/s]}$ です.により相対角の制御を行いました.

4.2.1 ユニット内の速度制御器の PID ゲインをデフォルトのままとした場合

 ユニット内の速度制御器の PID ゲインをデフォルトの値とした場合, Roller485 が暴れてしまい,良い結果が得られません.ここでは,その様子を説明します.

4.2.2 ユニット内の速度制御器の PID ゲインを調整した場合

 ユニット内の速度制御器の PID ゲインを調整することで, Roller485 を手懐けることができます(電流制御モード (current mode) より良さげ).ここでは,その様子を説明します.

5. おわりに

 というわけで,

  • Simulink ライブラリ roller485lib の使用法
  • Simulink ライブラリ roller485lib に含まれる Simulink ブロックで Roller485 をいろいろと解析した結果

をまとめてみました.何かお気づきの点があれば,お知らせください.

 最後に,わたしや卒研生の作品を以下に示します.


付録

A.1 角度センサ

image.png

A.2 角速度の算出

A.3 ユニット内の速度制御器の構造

A.4 ユニット内の速度制御器の PID ゲインの設定

A.5 鉛直面を回転するアーム系のモデリング

A.5.1 数理モデルとパラメータ同定

A.5.2 数理モデルの検証:電流制御モード (current mode)

A.5.3 数理モデルの検証:ユニット内の速度制御器の PID ゲインを調整した速度制御モード (speed mode)

A.6 鉛直面を回転するアーム系を位置制御モード (position mode)で動かしてみると …

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?