名称 MIRS1301 モーター制御ボードライブラリ詳細設計書
番号 MIRS1301-SOFT-0014

最終更新日:2013.02.18

版数 最終更新日 作成 承認 改訂記事
A01 2013.02.18 高原一真 青木先生 初版

目次

  1. はじめに
  2. 要約
  3. プログラム

  1. はじめに

    本ドキュメントは、MIRS1301のモーター制御ボードライブラリの詳細設計書である。

  2. 要約

    1. 構造体・列挙体

      構造体: Motor

      修飾子名称概要
      typedef struct Motor_Motor モーター制御ボード構造体

      構造体: MotorState

      修飾子名称概要
      typedef struct {...}MotorState モーター情報構造体
      メンバ名説明
      struct timeval.updateTimeデータの取得時刻
      uint32_t.systemClockPICのシステムクロック
      int32_t.totalPulse総パルス数
      int16_t.pulseRate秒間パルス数
      double.angle総回転角
      double.angularVelocity角速度
      double.distance走行距離
      double.velocity走行速度
      double.dutyDuty比

      構造体: MotorState

      修飾子名称概要
      typedef struct {...}MotorPID モーターPID制御情報構造体
      メンバ名
      uint8_t.period
      uint16_t.gainD比例ゲイン
      uint16_t.timeI積分時間
      uint16_t.timeD微分時間
      int16_t.reference目標秒間パルス数
      int32_terrorP目標との偏差
      int32_terrorI積分項
      int32_terrorD微分項
    2. 定数

      修飾子・型名称概要
      #define MOTOR_TIRE_RADIUS タイヤの半径
      #define MOTOR_PULSE_PER_ROUND タイヤ一回分のパルス数
      #define MOTOR_PID_PERIOD PID制御周期のデフォルト値
      #define MOTOR_PID_GAIN_P 比例ゲインのデフォルト値
      #define MOTOR_PID_TIME_I 積分時間のデフォルト値
      #define MOTOR_PID_TIME_D 微分時間のデフォルト値
      const MotorPID MOTOR_PID_INITIALIZER PID制御データの初期化用

    3. 関数・関数型マクロ

      修飾子・戻値名称・引数概要
      MotorBoard* motorOpen(I2CBus* bus, uint8_t address) モーター制御ボードとの通信を開始する
      void motorClose(Motor* motor) モーター制御ボードとの通信を終了する
      int motorResetSoftware(Motor* motor) ソフトウェアリセット
      int motorResetHardware(Motor* motor) ハードウェアリセット
      int motorSetTireRadius(Motor* motor, double radius) 半径の設定
      int motorSetPulsePerRound(Motor* motor, double ppr) モーター1回分のパルス数の設定
      int motorSetAngle(Motor* motor, double angle) 総回転角[rad]
      int motorSetDistance(Motor* motor, double distance) 走行距離[m]
      int motorSetDuty(Motor* motor, double duty) デューティー比 (-1.00 ~ 1.00) の直接指定
      int motorSetAngularVelocity(Motor* motor, double angularVelocity) 目標角速度[rad/sec]の指定
      int motorSetVelocity(Motor* motor, double velocity) 目標速度[m/sec]の指定
      int motorSetPID(Motor* motor, MotorPID pid) PIDパラメータの指定
      int motorGetState(Motor* motor, MotorState* state) モーター本体情報
      int motorGetPID(Motor* motor, MotorPID* pid) PID制御情報
      int motorSetAxis(Motor* motor, Axis axis) モーターの設置位置の設定
      Axis motorGetAxis(Motor* motor) モーターの設定位置の取得

  3. プログラム

    ダウンロード先: MIRS1301 ソフトウェア詳細設計書

▲上へ


MIRS1301 ドキュメント管理台帳へ

沼津工業高等専門学校 電子制御工学科