アプリケーションノート

RL78/G24
永久磁石同期モータのセンサレスベクトル制御
要旨
本アプリケーションノートは RL78/G24 マイクロコントローラを使用し、永久磁石同期モータをセンサレ
スベクトル方式で駆動するサンプルプログラム及びモータ制御開発支援ツール「Renesas Motor Workbench(RMW)」の使用方法について説明することを目的としています。
サンプルプログラムはあくまで参考用途であり、弊社がこの動作を保証するものではありません。サンプ
ルプログラムを使用する場合、適切な環境で十分な評価をした上でご使用ください。本アプリケーション
ノート掲載開発環境での事故、損害等が発生した場合、一切の責任を負いません。

動作確認デバイス
サンプルプログラムの動作確認は以下のデバイスで行っております。

RL78/G24(R7F101GLG2DFB)

対象サンプルプログラム
本アプリケーションノートの対象サンプルプログラムを下記に示します。
＜1 シャント電流検出方式＞

RL78G24_MCEK_1S_LESS_FOC_CSP_CC_V110 (IDE: CS+ for CC)

RL78G24_MCEK_1S_LESS_FOC_E2S_CC_V110 (IDE: e2studio for CC)＜3 シャント電流検出方式＞

RL78G24_MCEK_3S_LESS_FOC_CSP_CC_V110 (IDE: CS+ for CC)

RL78G24_MCEK_3S_LESS_FOC_E2S_CC_V110 (IDE: e2studio for CC)

参考資料

RL78/G24 永久磁石同期モータのセンサレスベクトル制御

FAA ライブラリ (R01AN7267JJ0100)



RL78/G24 ユーザーズマニュアル ハードウェア編(R01UH0961JJ0110)

Renesas Motor Workbench 3.1.2 ユーザーズマニュアル (R21UZ0004JJ0402)



RL78/G24 Motor Control Evaluation Kit 取扱説明書 (R12UT0021JJ0100)

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 1 of 109

RL78/G24

永久磁石同期モータのセンサレスベクトル制御

目次
1.

概説 ......................................................................................................................................... 32.

システム概要 ........................................................................................................................... 43.

制御プログラム ..................................................................................................................... 174.

モータ制御開発支援ツール「Renesas Motor Workbench」の利用方法 .............................. 102

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 2 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

1. 概説
本アプリケーションノートでは、RL78/G24 マイクロコントローラを使用した永久磁石同期モータ(PMSM)のセンサレスベクトル制御サンプルプログラムの実装方法及びモータ制御開発支援ツール「Renesas
Motor Workbench」の使用方法について説明します。

1.1

開発環境

本アプリケーションノート対象サンプルプログラムの開発環境を表 1-1、表 1-2 に示します。
表 1-1 サンプルプログラムの開発環境(H/W)
マイコン
RL78/G24(R7F101GLGFB)

評価ボード
RL78/G24 CPU カード(RTK0EMG240C00000BJ)注 1
インバータボード(RTK0EMGPLVB00000BJ) 注 1
通信ボード(RTK0EMXC90Z00000BJ)注 1

モータ
TSUKASA 注 2
TG-55L

表 1-2 サンプルプログラムの開発環境(S/W)
CS+バージョンV8.11.00

e2studio バージョン2024-04

ツールチェインCC-RL V1.14.00

Smart Configurator
V1.10.0

デバッグ・ツール－

ご購入、技術サポートにつきましては、弊社営業及び特約店にお問い合わせ下さい。
【注】
1. RL78/G24 CPU カード(RTK0EMG240C00000BJ)、並びにインバータボード(RTK0EMGPLVB00000BJ)、通信ボード(RTK0EMXC90Z00000BJ)は、ルネサスエレクトロニクス株
式会社の製品です。
2. TG-55L は、ツカサ電工株式会社の製品です。
ツカサ電工株式会社 (http://www.tsukasa-d.co.jp/)

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 3 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

2.

システム概要本システムの概要を以下に説明します。

2.1

ハードウェア仕様

RL78/G24 Motor Control Evaluation Kit (RTK0EMG24SS00000BJ) はインバータボード、CPU ボード、
通信ボードで構成されています。各仕様を下記に示します。
表 2-1
項目
製品名
キット型名
キット構成

絶縁

RL78/G24 Motor Control Evaluation Kit (RTK0EMG24SS00000BJ)仕様
仕様
RL78/G24 Motor Control Evaluation Kit

RTK0EMG24SS00000BJ
Low voltage Inverter Board LVI400
RL78/G24 CPU Card
通信ボード MC-COM
ブラシレス DC モータ

RTK0EMGPLVB00000BJ
RTK0EMG240C00000BJ
RTK0EMXC90Z00000BJ
TG-55L-KA (ツカサ電工株式
会社製)

インバータボード-CPU ボード間 :非絶縁通信ボード-CPU ボード間 :絶縁

外観【注】実物は写真と異なる場合があります。

基板寸法

放熱
使用温度
使用湿度

インバータボード：100mm(幅)×160mm(長さ)CPU ボード： 79mm(幅)×66mm(長さ)
通信ボード：89mm(幅)×52mm(長さ)
ヒートシンクによる自然空冷
常温
結露なきことR01AN7036JJ0110 Rev.1.10
2024.07.16

Page 4 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 2-2 Low voltage Inverter Board (RTK0EMGPLVB00000BJ)仕様
項目
品名
基板型名
動作入力電圧
最大出力電流駆動対象モータ
電流検出方式DC バス電圧検出
三相出力電圧検出
PWM 論理過電流検出
デッドタイム
スイッチ
LED

コネクタ
ジャンパ端子
ネジ端子仕様
Low voltage Inverter Board for Motor Control Evaluation Kit - LVI400
RTK0EMGPLVB00000BJ
12V～50V
30A (各相ピーク電流)
3 相永久磁石同期モータ
3 相と DC リンクにシャント抵抗を用いた電流検出
抵抗分割回路による検出
抵抗分割回路による検出
上下アーム共に正論理
RL78/G24 MCU の設定(PWMOPA)により実現 検出回路は未実装
1µs (推奨値)● タクトスイッチ× 2● インバータ電源トグルスイッチ● LED × 2
● インバータ電源 LED● +5V 電源 LED● CPU カード接続コネクタ：CNA,CNB● アナログ信号入力×2 ：CN1、CN2● 電流増幅アンプ切り替え： 倍率 1/5/50：JP7● 電流増幅アンプ切り替え： 倍率 5/50：JP8,JP9,JP10● 電源入力：P,N● モータ出力：U,V,W

外観【注】実物は写真と異なる場合があります。

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 5 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 2-3 RL78/G24 CPU Card (RTK0EMG240C00000BJ)仕様
項目
品名
基板型名
搭載 CPU

製品型名
CPU 最大動作周波数
ビット数
パッケージ/ ピン数
ROM
RAM

電源入力

スイッチ
LED
コネクタ

ジャンパ端子仕様
RL78/G24 CPU Card for Motor Control Evaluation Kit
RTK0EMG240C00000BJ
R7F101GLG2DFB
48 MHz
16 bit
LQFP / 64pin
128 KB
12 KB
DC 5V
下記のどちらか一方を自動的に選択● 対応インバータボードからの電源供給● USB コネクタからの電源供給
MCU リセットスイッチ●
LED × 2●
USB 通信 LED × 2●
インバータボード接続コネクタ：CN1,CN2●
ABZ エンコーダ入力コネクタ：CN3●
UVW ホール信号入力コネクタ：CN4●
COM Port デバック用 Micro USB コネクタ：CN5●
UART 通信コネクタ：CN6,CN7,CN8●
未使用端子コネクタ：CN9●●●●

V 相電圧 / エンコーダ A 相切り替え：JP2U 相電圧 / エンコーダ Z 相切り替え：JP3W 相電圧 / エンコーダ B 相切り替え：JP4W 相電流 / GND 切り替え：JP5

外観【注】実物は写真と異なる場合があります。

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 6 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 2-4 通信ボード (RTK0EMXC90Z00000BJ)仕様
項目
品名
基板型名
外観

搭載 MCU仕様
MC-COM Renesas Flexible Motor Control Communication Board
RTK0EMXC90Z00000BJ

製品グループ
製品型名
CPU 最大動作周波数
ビット数
パッケージ / ピン数
RAM【注】実物は写真と異なる場合があります。
RX72N グループ
R5F572NNDDFB
240MHz32 ビットLFQFP / 144 ピン
1M バイトMCU 入力クロック
電源入力

20MHz (外部水晶発振子で生成)
DC 5V
 USB コネクタからの電源供給

コネクタ







絶縁

スイッチ

R01AN7036JJ0110 Rev.1.10
2024.07.16

PC 接続用 USB type-C コネクタ
CPU ボード接続用 SCI コネクタ
USB miniB コネクタ(ユーザは使用不可)
SCI コネクタと MCU 間
アイソレーションデバイス

Si8622BC-B-IS (Skyworks Solutions Inc.)または ISO7421FED (Texas Instruments)
MCU 外部リセット用スイッチ

Page 7 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

ハードウェア構成

2.2

Inverter Board
Power input
DC12～50V(U)(P)

MOSFET(V)

BLDC

Inverter circuit

(W)

(N)
DC/DC
12V

Regulator
5V

DriverAnalog IN0

DriverAMP

Driver

ABZ
EncoderAMP
G:5/50

G:5/50

G:1/5/50

Connector

AMP

AMP

Analog IN1

G:5/50Vy

Vu Vv Vw

Up/Un Vp/Vn Wp/Wn

Idc

Iu

Iv

Iw

VPN

SW1 SW2 LED1 LED2 5V TEMP

VR1

Vy

Vu Vv Vw

Up/Un Vp/Vn Wp/Wn

Idc

Iu

Iv

Iw

VPN

SW1 SW2 LED1 LED2 5V TEMP

VR1

A
B
Z

Hall
Signal

RL78/G24
Micro USB
Type-BUSB
SerialCPU Card

UART0
UART1

UART2

unused terminal

Cable

Communication Board
USB
Type-C

図 2-1 ハードウェア構成図

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 8 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

2.3
2.3.1

ハードウェア仕様
ユーザインタフェース

本システムのユーザインタフェース一覧を表 2-5 に示します。
表 2-5 ユーザインタフェースボード
CPU カード

インバータボード

項
RESET
LED1

目

インタフェース部品
タクトスイッチ(RESET)
緑色 LED

LED2

緑色 LED

S1

電源電流遮断スイッチ

機 能システム・リセット

•

停止
駆動
エラー

LED1
点灯
点灯
消灯

LED2
点灯
消灯
点灯

インバータ回路への電流供給
ON ：電流供給
OFF：電流遮断

本システムのコネクタインターフェース一覧を表 2-6 に示します。
表 2-6 CPU カードコネクタインターフェース
ボード
CPU カード

項

目

CN1
CN2
CN3
CN4
CN5
CN6
CN7
CN8
CN9

端子数
20
20
5
5
5
4
4
4
20

機 能
インバータボード接続用コネクタ
インバータボード接続用コネクタ
エンコーダ信号入力 [本システムでは未使用]
ホールセンサ信号入力 [本システムでは未使用]
エミュレータ接続用コネクタ
シリアル通信(UART0)：RMW との通信
シリアル通信(UART1) [本システムでは未使用]
シリアル通信(UART2) [本システムでは未使用]
未使用端子スルーホール[本システムでは未使用]

本システムのジャンパ設定を表 2-7 に示します。
表 2-7 ジャンパ設定
ボード
CPU カード

インバータボード

項目
JP1
JP2
JP3
JP4
JP5
JP7
JP8
JP9
JP10

R01AN7036JJ0110 Rev.1.10
2024.07.16

端子状態
1-2 Open
1-2 Short
1-2 Short
1-2 Short
1-2 Short
5-6 Short
2-3 Short
2-3 Short
2-3 Short機能
エミュレータ接続有効
エンコーダ未使用 [本システムでは未使用]
エンコーダ未使用 [本システムでは未使用]
エンコーダ未使用 [本システムでは未使用]
W 相電流使用 [3 シャントモード時使用]
DC リンク電流ゲイン=50 倍
U 相電流ゲイン=50 倍 [3 シャントモード時使用]
V 相電流ゲイン=50 倍 [3 シャントモード時使用]
W 相電流ゲイン=50 倍[3 シャントモード時使用]

Page 9 of 109

RL78/G24

永久磁石同期モータのセンサレスベクトル制御

本システムの RL78/G24 マイクロコントローラ端子のインタフェース一覧を表 2-8 に示します。
表 2-8 端子インタフェース
R7F101GLGFB 端子名
P26 / ANI6
P147 / ANI18
P20 / ANI0 / AVREFP
P21 / ANI1 / AVREFM
P22 / ANI2
P24 / ANI4
P23 / ANI3 / PGAGND
P42P43
P70 / TRDIOB0
P72 / TRDIOA1
P74 / TRDIOB1
P71 / TRDIOD0
P73 / TRDIOC1
P75 / TRDIOD1
P12 / TxD0
P11 / RxD0
P02 / TxD1
P03 / RxD1
P77 / TxD2
P76 / RxD2
P00 / TRGCLKA
P01 / TRGCLKB
P120 / TRGIDZ
P52 / INTP1
P53 / INTP2
P54 / INTP3
P40 / TOOL0
P50 / TOOLRxD
P51 / TOOLTxD
RESET
VSS
VDD
REGC

機 能
インバータ母線電圧測定
DC リンク電流検出 (A/D, CMP)
A/D コンバータの基準電圧 (+側)A/D コンバータの基準電圧 (-側)U 相電流検出 [3 シャントモード時使用]
V 相電流検出 [3 シャントモード時使用]
W 相電流検出 [3 シャントモード時使用]
LED1 点灯/消灯制御
LED2 点灯/消灯制御
ポート出力/PWM 出力(Up)ポート出力/PWM 出力(Vp)
ポート出力/PWM 出力(Wp)
ポート出力/PWM 出力(Un)
ポート出力/PWM 出力(Vn)ポート出力/PWM 出力(Wn)
シリアル通信 (UART0)：RMW との通信
シリアル通信 (UART0)：RMW との通信
シリアル通信 (UART1) [本システムでは未使用]
シリアル通信 (UART1) [本システムでは未使用]
シリアル通信 (UART2) [本システムでは未使用]
シリアル通信 (UART2) [本システムでは未使用]
エンコーダ A 相入力 [本システムでは未使用]
エンコーダ B 相入力 [本システムでは未使用]
エンコーダ Z 相入力 [本システムでは未使用]
ホールセンサ入力 [本システムでは未使用]
ホールセンサ入力 [本システムでは未使用]
ホールセンサ入力 [本システムでは未使用]
デバッガ用データ入出力
デバッガ用データ入力
デバッガ用データ出力
システム・リセット入力
端子のグランド電位
端子の正電源
内部動作用レギュレータ出力安定容量接続※ 上記以外の端子は r_mtr_rl78g24.c の R_MTR_InitUnusedPins 関数で”未使用端子の処理”を行っています。端子配置を変更する際は適切に変更を行ってください。

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 10 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24
2.3.2

周辺機能

本システムに使用する周辺機能一覧を表 2-9 に示します。

周辺機能

表 2-9 サンプルプログラム別周辺機能対応表
用途

12bit A/D コンバータ(AD) インバータ母線電圧測定
 3 相電流検出 [3 シャントモード時使用]
 DC リンク電流検出 [1 シャントモード時使用]

タイマ・アレイ・ユニット(TAU) 1 [ms] インターバル・タイマ
 初期位置検出中のシリアル通信用周期タイマ

タイマ RD2(TRD2)

 拡張相補 PWM モード使用の PWM 出力
 50 [us] 制御周期タイマ

PWM オプションユニット A(PWMOPA)CMP3 出力による PWM 出力強制遮断

タイマ RX(TRX)

初期位置検出における電流立ち上がり時間測定

コンパレータ(CMP3)
10bit D/A コンバータ(DA) 過電流検出 初期位置検出における電流閾値到達判定

ウォッチドッグ・タイマ(WDT)

プログラムの暴走検出

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 11 of 109

RL78/G24

永久磁石同期モータのセンサレスベクトル制御(1) 12bit A/D コンバータ(AD)U 相電流(Iu)、V 相電流(Iv)、W 相電流(Iw)、及びインバータ母線電圧(Vdc)を測定します。UVW 相電流については同時サンプリングしにより測定します。[3 シャントモード時使用]
DC リンク電流及びインバータ母線電圧(Vdc)を「12bit A/D コンバータ」を使用して測定します。[1 シャン
トモード時使用]A/D 変換はアドバンスド・モードに設定し、ワンショット変換を指定します。
(2) タイマ・アレイ・ユニット(TAU)
1 [ms]インターバル・タイマとして使用します。
また、初期位置検出中にシリアル通信を行うため周期割込みを発生します。
(3) タイマ RD2(TRD2)
2 本の AD 変換トリガコンペアレジスタを使用して任意のタイミングで AD 変換を実行できます。
拡張コンペアレジスタを使用して非対称波形を出力できます。
(4) PWM オプションユニット A (PWMOPA)
CMP3 で検出した過電流信号から PWM 出力を強制遮断します。
遮断解除要因(CMP3 立下りエッジ)を検出後、ソフトウェアにより解除。
遮断時の出力状態はローレベル出力。
(5) タイマ RX(TRX)
初期位置検出時にシャント抵抗に流れる電流が閾値電流に到達するまでの時間を測定するためのタイマとして使用します。
(6) コンパレータ (CMP3)
過電流または初期位置検出のために使用します。該当する電流値と比較する閾値は 10bit D/A コンバータ
から基準値を入力します。
(7) 10bit D/A コンバータ(DA)
過電流または初期位置検出で使用する内部基準値として使用します。
(8) ウォッチドッグ・タイマ
プログラムの暴走検出で使用します。

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 12 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

2.4

ソフトウェア構成

2.4.1

ソフトウェア・ファイル構成

サンプルプログラムのフォルダとファイル構成を表 2-10 に記します。
表 2-10 サンプルプログラムのフォルダとファイル構成

フォルダ
configapplication

main
board
ics

driversmc_genmiddleファイル
r_mtr_config.hr_mtr_motor_parameter.hr_mtr_control_parameter.hr_mtr_inverter_parameter.hr_mtr_scaling_parameter.hmain.hmain.cr_mtr_board.hr_mtr_board.c
r_mtr_ics.h
r_mtr_ics.c
ICS_define.h
RL78_vector.h
RL78_vector.c
ICS2_RL78G24.h
ICS2_RL78G24.lib
r_mtr_rl78g24.h
r_mtr_rl78g24.c
r_dsp_cc_s.h
R_DSP_RL78_CC_S.lib
r_mtr_common.hr_mtr_parameter.hr_mtr_ctrl_gain .h
r_mtr_ctrl_gain.obj
r_mtr_driver_access.h
r_mtr_driver_access.c
r_mtr_statemachine.hr_mtr_statemachine.c
r_mtr_foc_less_speed.hr_mtr_foc_less_speed.cr_mtr_interrupt.c
r_mtr_est_phase_err.hr_mtr_est_phase_err.obj
r_mtr_ipd.hr_mtr_ipd.cr_mtr_ol2cl_ctrl.hr_mtr_ol2cl_ctrl.obj
r_mtr_disturb_suppress.h
r_mtr_disturb_suppress.obj
r_mtr_foc.hr_mtr_foc.c
r_mtr_mtpa2fw_ctrl.hr_mtr_mtpa2fw_ctrl.obj
r_mtr_offset.h
r_mtr_offset.c
r_mtr_prep.h
r_mtr_prep.c

内容
コンフィギュレーション定義
モータパラメータ定義
制御パラメータ定義
インバータパラメータ定義
スケーリングパラメータ定義
メイン関数
ハードウェア UI 関数定義
ハードウェア UI 処理
Analyzer

注1

UI 関連関数定義

注1

Analyzer
UI 処理
RMW の CPU 定義
RMW の割り込みベクタ定義
RMW の割り込みベクタ処理
RMW 通信用関数宣言
RMW 通信用ライブラリ
MCU 固有定義
未使用端子の処理
周辺機能のコード生成ファイル
DSP 定義モータ制御向け演算ライブラリ
共通定義
モータ制御パラメータ定義
ゲイン設計関数定義
ゲイン設計
ドライバアクセス関数定義
ドライバアクセス処理
ステートマシン関数定義
ステートマシン処理
センサレスベクトル制御関連関数定義
センサレスベクトル制御関連処理
割り込みハンドラ関数定義
軸誤差の推定処理関数定義
軸誤差の推定処理
初期位置検出処理関数定義
初期位置検出処理
センサレス切り替え制御関数定義
センサレス切り替え制御処理
外乱抑制関数定義
外乱抑制処理センサレスベクトル制御関数定義
センサレスベクトル制御処理
弱め磁束制御/最大トルク関数定義
弱め磁束制御/最大トルク制御処理
電流オフセット検出関数定義
電流オフセット検出処理
駆動停止確認関数定義
駆動停止確認処理

注 1：モータ制御開発支援ツール「Renesas Motor Workbench」の Analyzer 機能の詳細については、4 章を参照下さい。
また、モータ制御開発支援ツール「Renesas Motor Workbench(RMW)」に関わるフォルダ、ファイル、関数、変数の名前には識別子「ics / ICS(旧ルネサス製モータ制御開発支援ツール「In Circuit Scope」の略)」が付加されている場合があります。

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 13 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24
2.4.2

モジュール構成

サンプルプログラムのモジュール構成を図 2-2 に示します。

Function Calldriver_access
Set Control Parameter & Command
Motor Control Process Modules

interrupt

Function Call
Other Control Modules

Set PWM duty

Voltage, Sensor signals

MCU

Output PWM Signal

Inverter

A/D Convertor, PORT

H/W Layer (MCU, Inverter)

図 2-2 サンプルプログラムのモジュール構成

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 14 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

2.5

ソフトウェア仕様

本システムのソフトウェアの基本仕様を下記に示します。
表 2-11 ソフトウェア仕様
項 目

内

容

制御方式

ベクトル制御電流検出方式DC リンク電流を検出する方式(1 シャントモード)と 3 相電流を検出する方式(3 シャントモード)をコンパイルスイッチで切り替えて使用
1 シャントモード又は 3 シャントモードをコンパイルスイッチにて切替え(デフォルトは 1 シャントモード)

モータ回転開始/停止

モータ制御開発支援ツールによる操作注

回転子磁極位置検出(センサレス)

誘起電圧を利用した角度推定
モータの突極性と磁気飽和特性を利用した初期位置検出

入力電圧

DC24[V]

メインクロック周波数

CPU クロック：fCLK 48[MHz]TRD クロック：fPLL 96[MHz]キャリア周波数(PWM)

20 [kHz]

デッドタイム1 [µs]

制御周期

電流制御/位置・速度推定：100 [µs] (キャリア周期の 2 倍)
速度制御：1 [ms]回転速度範囲CW：0 [rpm] ～ 3975[rpm]CCW：0 [rpm] ～ 3975 [rpm]ただし、795 [rpm]以下は速度オープンループで駆動

最適化設定

一部の最適化(-Olite)

ROM/RAM サイズ

保護停止処理ROM

1 シャントモード：31.647 KB

3 シャントモード：29.517 KB

RAM

1 シャントモード：1.830 KB 3 シャントモード：1.726 KB

・以下のいずれかの条件の時、モータ制御信号出力(6 本)を非アクティブにする
1. インバータ母線電圧が 28 [V]を超過
2. インバータ母線電圧が 12 [V]より下落
3. 回転速度が 5590 [rpm] (1 シャントモード) / 4290 [rpm] (3 シャントモー
ド)を超過
4. 各相の電流が 1.47 [A]を超過
5. 各相の電流が 4.5 [A]を超える値を検出(PWMOPA による遮断)
6. 初期位置検出処理実行時の TRX カウンタのオーバフローを検出
・過電流検出信号（CMP3）を検出すると、PWM 出力ポートをローレベルにします(PWMOPA 使用)。

【注】 詳細に関しては“モータ制御開発支援ツール「Renesas Motor Workbench」の利用方法”を参照してください。

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 15 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

2.6

ユーザ・オプション・バイト

RL78/G24 のフラッシュメモリのユーザ・オプション・バイト領域の設定を示します。
表 2-12 ユーザ・オプション・バイト設定値
設定値
783AEA

アドレス
000C0H/040C0H

値
01111000B

000C1H/040C1H
000C2H/040C2H

00111010B
11101010B

R01AN7036JJ0110 Rev.1.10
2024.07.16

設定内容
・ウォッチドッグ・タイマのインターバル割り込みの使用：
インターバル割り込みを使用しない・ウォッチドッグ・タイマのウインドウ・オープン期間：
100%・ウォッチドッグ・タイマのカウンタの動作制御：
カウンタ動作許可（リセット解除後、カウント開始）
・ウォッチドッグ・タイマのオーバフロー時間：100[ms]・ウォッチドッグ・タイマのカウンタ動作制御：HALT/STOP
モード時、カウンタ動作停止
・LVD0 オフ・フラッシュの動作モード設定：HS (高速メイン)モード
・高速オンチップオシレータ・クロックの周波数
fHOCO：8 [MHz]fIH：8 [MHz]Page 16 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

3. 制御プログラム
本アプリケーションノートの対象サンプルプログラムについて説明します。

3.1

制御内容

3.1.1

モータ起動/停止

モータの起動と停止は、モータ制御開発支援ツールからの入力によって制御します。

3.1.2

A/D 変換(1)インバータ母線電圧
下記のようにインバータ母線電圧を測定します。変調率の算出と過電圧・低電圧検出(異常時は PWM停止)に使用します。
表 3-1 インバータ母線電圧の変換比
項 目インバータ母線電圧

変換比(インバータ母線電圧：A/D 変換値)
0 [V]～111[V]：0000H～0FFFH

チャネル
ANI6

(2)
DC リンクシャント抵抗電流 [1 シャントモード時]
以下の表のように DC リンクシャント抵抗電流を測定し、ベクトル制御に使用します。
表 3-2 1 シャントモード時の電流の変換比
項目

変換比(DC リンクシャント抵抗電流：A/D 変換値)-5 [A]～5 [A]：0000H～0FFFH

DC リンクシャント抵抗電流

チャネル
ANI18

(3) U 相、V 相、W 相電流 [3 シャントモード時]
以下の表のように U 相、V 相、W 相電流を測定し、ベクトル制御に使用します。
表 3-3 U、V、W 相電流の変換比
項 目

変換比(U 相、V 相、W 相電流：A/D 変換値)

U 相、V 相、W 相電流-5 [A]～5 [A]：0000H～0FFFH

チャネル
Iu : ANI2
Iv：ANI4
Iw : ANI3

A/D 変換特性の詳細に関しては「RL78/G24 ユーザーズマニュアル ハードウェア編」を参照して下さい。

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 17 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

3.1.3

コンパレータ(1). 過電流検出、初期位置検出(CMP3)
A/D の出力と内部 D/A コンバータの基準値を比較し過電流検出、初期位置検出のための電流閾値の到達判定を行います。

Idc

PGA

+
CMP3
ｰ
D/A
Converter

図 3-1 CMP3 による過電流検出

3.1.4

PWM による電圧制御

出力電圧の制御には PWM 制御を使用しています。PWM 制御とは、図 3-2 のように、パルスのデュー
ティを変化させることで平均電圧を調整していく制御方式です。
V
TON

デューティ =TON
TON + TOFF

TOFF

×100[%]
平均電圧t

図 3-2 PWM 制御
ここで、変調率 m を以下のように定義します。

m=
𝑚: 変調率

R01AN7036JJ0110 Rev.1.10
2024.07.16

𝑉: 指令値電圧VE
𝐸: インバータ母線電圧

Page 18 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24
3.1.5

変調

モータへの入力電圧はパルス幅変調（以降、PWM）によって信号生成し印加されます。PWM のパルス幅の生成方法を説明します。
(1). 三角波比較法
指令値電圧を実際に出力する方法の一つとして、キャリア波形（三角波）と指令値電圧波形を比較する事
で出力電圧のパルス幅を決める三角波比較法があります。指令値電圧がキャリア波電圧より大きければス
イッチをオン、小さければオフにする事で、正弦波状の指令値電圧を擬似的に出力する事が出来ます。

U

V

W

ωt

変調波：指令電圧
キャリア波(三角波)：PWMタイマカウント

U相スイッチング波形

ωtV相スイッチング波形

ωt

U-V線間電圧（U相の波形）ｰ（V相の波形）

ωt図 3-3 三角波比較法の概念図

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 19 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24(2). 3 次高調波重畳法
三角波比較法では線間電圧振幅が入力される直流電圧の約 86.6%までしか使用する事が出来ません。電圧
利用効率を向上させるために数多の変調方法がありますが、本プログラムでは 3 次高調波重畳法を利用する事が出来ます。下記の様に指令電圧を計算する事で 3 次高調波を重畳したものと同じ指令電圧になります。

max(𝑣𝑢∗ , 𝑣𝑣∗ , 𝑣𝑤∗ ) + min(𝑣𝑢∗ , 𝑣𝑣∗ , 𝑣𝑤∗ )
𝑣𝑜 =
2
̅̅̅
𝑣𝑢∗ = 𝑣𝑢∗ − 𝑣𝑜̅̅̅𝑣𝑣∗ = 𝑣𝑣∗ − 𝑣𝑜̅̅̅̅𝑣𝑤∗ = 𝑣𝑤∗ − 𝑣𝑜𝑣𝑢∗ , 𝑣∗𝑣 , 𝑣∗𝑤 ：元の3相の指令電圧、
̅̅̅𝑣𝑢∗ , ̅̅̅𝑣∗𝑣 , ̅̅̅̅𝑣∗𝑤 ：3次高調波重畳法の3相の指令電圧

𝑣𝑜 ：最大指令電圧と最小指令電圧の平均値(3). 二相変調
3 相のうち 2 相だけのスイッチングで制御する様に各相指令電圧にオフセット電圧を重畳する方法を二相変調と呼びます。本プログラムでは、最大指令電圧の相の指令電圧を DC リンク電圧と等しくなる様にオフ
セット電圧を重畳します。

𝑣𝑜 = −

𝑉𝑑𝑐+ max(𝑣𝑢∗ , 𝑣𝑣∗ , 𝑣𝑤∗ )2̅̅̅𝑣𝑢∗ = 𝑣𝑢∗ − 𝑣𝑜
∗
∗
̅̅̅
𝑣
𝑣 = 𝑣𝑣 − 𝑣𝑜̅̅̅̅𝑣𝑤∗ = 𝑣𝑤∗ − 𝑣𝑜𝑣𝑢∗ , 𝑣∗𝑣 , 𝑣∗𝑤 ：元のUVW相の指令電圧、
̅̅̅𝑢∗ , ̅̅̅𝑣𝑣∗𝑣 , ̅̅̅̅𝑣∗𝑤 ：二相変調の3相の指令電圧

𝑣𝑜 ：オフセット電圧

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 20 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

上記変調方式は r_mtr_config.h にある MOD_METHOD に下記の値を設定し、コンパイルする事で変更可能です。
MOD_3PH_SPWM

三角波比較法

MOD_3PH_TOW

3 次高調波重畳法

MOD_2PH_BOT

二相変調

R01AN7036JJ0110 Rev.1.10
2024.07.16

0
1：デフォルト設定
2

Page 21 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24
3.1.6

状態遷移

図 3-4 に本プログラムにおける状態遷移図を示します。
POWER ON/
HARDWAE RESETSYSTEM MODE (User System)
INACTIVE[INIT ERROR][HW INIT END]

[ERROR]ERROR

ACTIVE[RESET][INIT EVENT]RUN MODE (Motor Control)[ERROR STATUS]

INIT

DRIVE
[ERROR EVENT][STOP EVENT][STOP EVENT]RUN MODE
STOP

EVENT

[RESET EVENT]

INIT

DRIVE

STOP

STOP

STOP

STOP

DRIVE

INIT

DRIVE

DRIVE

ERROR

STOP

STOP

STOP

RESET

INIT

DRIVE

INIT

[DRIVE EVENT]

STOP

図 3-4 状態遷移図(1). SYSTEM MODE
システム動作状態を表します。システムの動作状態は、モータ駆動停止(INACTIVE)、モータ駆動(ACTIVE)、異常状態(ERROR)があります。
(2). RUN MODE
モータの駆動状態を表します。各イベント(EVENT)の発生により状態が遷移します。
(3). EVENT
モータの駆動状態の遷移を表します。EVENT が発生すると、RUN MODE が図 3-4 中の表の様に遷移します。各 EVENT の発生要因を表 3-4 に示します。
表 3-4 EVENT 一覧
イベント名

発生条件

STOP

ユーザ操作により発生します

DRIVE

ユーザ操作により発生します

ERROR

システムが異常を検出したときに発生します

RESET

ユーザ操作により発生します

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 22 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

RUN MODE の DRIVE イベント内では DRIVE ステータスが表 3-5 の表の中からモータの駆動状態に合わせて遷移します。
表 3-5 DRIVE ステータス一覧
ステータス名内容

MTR_OFFSET_CALC_EXE

電流オフセットの検出処理の実行

MTE_OFFSET_CALC_END

電流オフセットの検出処理の完了

MTR_IPD_EXE

初期位置検出処理の実行

MTR_IPD_END

初期位置検出処理の完了

MTR_DRIVE_START

モータの始動処理 (オープンループ駆動)

MTR_DRIVE_ID_ZERO

クローズドループ駆動

MTR_DRIVE_BRAKE

ブレーキ (未実装)

MTR_DRIVE_END

駆動の停止

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 23 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24
3.1.7

始動方法

センサレスベクトル制御ソフトウェアの始動制御内容を図 3-5 に示します。d 軸電流、q 軸電流、速度それぞれの指令値を管理するステータスによってモードをコントロールしています。

Drive status
Id reference status

MTR_DRIVE_START(4)

MTR_OFFSET_CALC_EXE MTR_OFFSET_CALC_END(1)(0)
MTR_ID_ZERO_CONST(0)

MTR_DRIVE_ID_ZERO(5)

MTR_ID_MANUAL(1)
MTR_IQ_ZERO_CONST(0)

Iq reference status

MTR_IQ_SPEED_PI_OUTPUT(2)
MTR_SPEED_MANUAL(1)

MTR_SPEED_ZERO_CONST (0)Speed reference status
Id reference [A]id reference
when openloop control

Id=0 control0
Iq reference [A]t [s]speed PI output

0
t [s]

Speed reference [rad/s]
Target speed reference
Reference speed
when switch sensorless control

0
t [s]

図 3-5 センサレス速度制御ソフトの始動制御内容

MTR_OFFSET_CALC_EXE(0)

Drive status

Id reference status

MTR_OFFSET_CALC_END(1)MTR_IPD_EXE(2)

MTR_IPD_END(3)

MTR_DRIVE_START(4)

MTR_ID_ZERO_CONST(0)

MTR_DRIVE_ID_ZERO(5)
MTR_ID_MANUAL(1)

MTR_IQ_ZERO_CONST(0)

Iq reference status
MTR_SPEED_ZERO_CONST (0)Speed reference status

MTR_IQ_SPEED_PI_OUTPUT(2)
MTR_SPEED_MANUAL(1)

Id reference [A]id reference
when openloop control

Id=0 control0
Iq reference [A]t [s]Process of initial
position detection

speed PI output

0
t [s]

Speed reference [rad/s]
Target speed reference

Reference speed
when switch sensorless control

0
t [s]

図 3-6 センサレス速度制御ソフトの始動制御内容 (IPD 処理適用)

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 24 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24
制御方法

3.1.8

制御システム全体のブロック図を図 3-7 に示します。制御システムは、座標変換器と非干渉制御器、軸誤差推定器、PLL 制御器、速度制御器（ASR）と電流制御器（ACR）から構成されます。また、推定速度に 1 次の LPF を設けています。
+

id*

ACR

+

*

+

ASR
-

+
iq*

vγ*
-

vu*
dq
UVW

+ vδ*

ACR
-

vv*

PWM

Motor

vw*

decoupling
control

iγ

iu
UVW
iδ
dq

iδ
est

iw

1/s
Δ
LPF

PLL

Δ
estimation

図 3-7 制御システムブロック図
軸誤差推定器は、実軸である dq 軸と推定軸である𝛾𝛿軸との軸誤差∆𝜃を推定します。𝛾𝛿軸における電圧方程
式は、次式の dq 軸における電圧方程式の両辺に𝑣𝑑
𝑅𝑎 + 𝑝𝐿𝑑[𝑣 ] = [
𝜔𝐿𝑑
𝑞

−𝜔𝐿𝑞
𝑖𝑑
0
] [𝑖 ] + []𝜔𝜓𝑎𝑅𝑎 + 𝑝𝐿𝑞 𝑞

𝑣𝑑 , 𝑣𝑞 ：d軸電圧, q軸電圧

ω：角速度

𝑖𝑑 , 𝑖𝑞 ：d軸電流, q軸電流

𝐿𝑑 , 𝐿𝑞 ：dq軸インダクタンス

𝑅𝑎 ：抵抗𝜓a ：永久磁石による電機子鎖交磁束の実効値

次式の回転行列を乗じて得る事が出来ます。

[

𝑐𝑜𝑠∆𝜃
𝑠𝑖𝑛∆𝜃

−𝑠𝑖𝑛∆𝜃]𝑐𝑜𝑠∆𝜃

𝛾軸と𝛿軸の誘起電圧成分𝑒𝛾 と𝑒𝛿 を計算し、次式により軸誤差∆𝜃を得ます。誘起電圧の計算の際、𝛾軸電圧と𝛿軸電圧をそれぞれ電圧指令値𝑣𝛾∗ と𝑣𝛿∗ で近似して使います。この軸誤差が 0 になる様にフィードバックルー
プを構成する（PLL 制御器）ことで推定速度𝜔を求めます。

𝑒𝛾∆𝜃 = atan ( )𝑒𝛿R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 25 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24= －図 3-8 軸誤差と𝛾軸と𝛿軸の誘起電圧成分
速度制御器、電流制御器と PLL 制御器は PI 制御器を用いて実現されており、そのゲインは所望の制御に合わせて適宜調整する必要があります。電流 PI 制御ゲイン𝐾𝑝𝐴𝐶𝑅 、𝐾𝑖𝐴𝐶𝑅 と速度 PI 制御ゲイン𝐾𝑝𝐴𝐶𝑅 、𝐾𝑖𝐴𝐶𝑅 と
PLL 制御ゲイン𝐾𝑝𝑃𝐿𝐿 、𝐾𝑖𝑃𝐿𝐿 はそれぞれ次式のようになります。

𝐾𝑝𝐴𝐶𝑅 = ω𝐶𝐺 𝐿,

𝐾𝑖𝐴𝐶𝑅 = ω𝐶𝐺 𝑅

ω𝐶𝐺 :電流 PI 制御固有周波数
𝐿:インダクタンス(d 軸では𝐿𝑑 、q 軸では𝐿𝑞 )𝑅:抵抗

𝐾𝑝𝐴𝑆𝑅 =

ω𝑆𝐺 𝐽,
𝑃𝑛2 𝜓𝑎𝐾𝑖𝐴𝑆𝑅 =

ω𝑆𝐺 𝐷1
𝑎𝑃𝑛2 𝜓𝑎ω𝑆𝐺 :速度 PI 制御固有周波数
𝐽:イナーシャ𝐷1 :動摩擦係数
𝜓𝑎 :誘起電圧定数
𝑃𝑛 :極対数𝑎:調整パラメータ

𝐾𝑝𝑃𝐿𝐿 = 𝜔Δ𝜃 ,2
𝜔∆𝜃
𝐾𝑖𝑃𝐿𝐿 =
5

𝜔Δ𝜃 ：PLL 制御固有周波数

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 26 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24
3.1.9

システム保護機能

本プログラムは、以下のエラー状態を持ち、それぞれの場合に緊急停止する機能を実装しています。
システム保護機能に関わる各設定値は表 3-6 を参照して下さい。
・ハードウェア過電流エラー
ハードウェアからの緊急停止信号（過電流検出）を検出した時に電圧出力を停止します。
・過電流エラー
過電流監視周期で U 相、V 相、W 相電流を監視し、過電流（過電流リミット値を超過）を検出した時に緊急停止します。
・過電圧エラー
過電圧監視周期でインバータ母線電圧を監視し、過電圧（過電圧リミット値を超過）を検出した時に緊急停止します。過電圧リミット値は検出回路の抵抗値の誤差等を考慮して設定した値です。
・低電圧エラー
低電圧監視周期でインバータ母線電圧を監視し、低電圧（低電圧リミット値を下回った場合）を検出した時に緊急停止します。低電圧リミット値は検出回路の抵抗値の誤差等を考慮して設定した値です。
・回転速度エラー
回転速度監視周期で速度を監視し、速度リミット値を超過した場合、緊急停止します。
・TRX オーバフローエラー
初期位置検出における電流上昇時間測定時に TRX カウンタがオーバフローした場合、電圧出力を停止します。

表 3-6 各システム保護機能設定値
エラー
ハードウェア過電流エラー
過電流エラー
過電圧エラー
低電圧エラー

回転速度エラー閾
過電流リミット値 [A]
過電流リミット値 [A]
監視周期 [μs]
過電圧リミット値 [V]監視周期 [μs]
低電圧リミット値 [V]監視周期 [μs]
速度リミット値 [rpm]監視周期 [μs]R01AN7036JJ0110 Rev.1.10
2024.07.16

値
4.5
1.47
100
28
1000
12
1000
5590 (1 シャントモード) /4290 (3 シャントモード)
1000

Page 27 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24
3.1.10 単位法（PU）

固定小数点演算によるモータ制御はダイナミックレンジがコンパイル時に決まります。実際のモータの特性と設計時に想定したモータの特性との違いが大きければ、ダイナミックレンジの差の違いにより、桁あふ
れ、丸め誤差などの問題が起こり易くなります。本プログラムでは、演算のダイナミックレンジのモータ特性依存度を低減するために単位法（PU: per-unit）を使用します。任意の物理量の PU 値は基準となる物理量に対する相対的な値であり、以下のように計算できます。
𝑃𝑈値 =

物理量
基準値

制御に使用される物理量やゲインなどの PU 単位は全て電流、電圧、角周波数、角度の基準値から計算することが出来ます。例えば、抵抗基準値は以下のように電圧基準値と電流基準値で計算します。

抵抗基準値 =

電圧基準値
電流基準値

= 1[抵抗𝑃𝑈]

演算ダイナミックレンジがモータの特性から受ける影響を低減するため、電流、電圧、角周波数の基準値はモータ特性を元に設定する必要があります（基準値の取り方は一意ではありません）。本プログラムでは、定格電流、インバータへの入力電圧、最大速度を電流、電圧、角周波数の基準値（PU 単位）に設定します。
各物理量の基準値を表 3-7 に示します。これらの値は r_mtr_scaling_parameter.h の中で定義されています。
表 3-7 PU 単位系基準値
カテゴリ

PU 基本物理量

物理量

項目
電流
電圧
角周波数
角度
時間
抵抗
インダクタンス
誘起電圧定数
イナーシャ

電流制御
速度制御
PLL 制御

Kp
Kidt
Kp
Kidt
Kp
Kidt

R01AN7036JJ0110 Rev.1.10
2024.07.16定義
定格電流
入力電圧（インバータ入力）
2π×最大速度[rpm]×極対数/60
1
角度／角周波数
電圧／電流
抵抗／角周波数
電圧／角周波数
誘起電圧定数×電流×(極対数／角周波
数)^2
抵抗
抵抗
電流／角周波数
電流／角周波数
角周波数／角度角周波数／角度

単位
[A]
[V]
[Hz]
[rad]
[s]
[Ω]
[H]
[V･s/rad][kgm^2/(rad^2)][Ω][Ω][A/(rad/s)][A/(rad/s)]
[Hz]
[Hz]

Page 28 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24
3.1.11 1 シャント抵抗電流測定方法

本プログラムで用いる１つのシャント抵抗による電流測定方法について説明します。

3.1.11.1 1 シャント抵抗電流測定タイミング

図 3-9 拡張相補 PWM 波形図(例：デューティ大小関係 W>V>U)
本プログラムではタイマ RD2 を用いて、拡張相補 PWM モードでのデッドタイム付き三相 PWM 出力による制御を行っています。図 3-9 に拡張相補 PWM の波形(例：デューティ大小関係 W>V>U)を示します。
図のポイント A では右上の赤い枠に示したように上アームの W 相のみが ON している状態となります。この時、1 シャント抵抗に流れる電流は W 相に流れている電流ということになります。
𝐼𝐴 = 𝐼𝑤
図のポイント B では右下の青の枠に示したように下アームの U 相のみが ON している状態となります。この時、1 シャント抵抗に流れる電流は U 相に流れている電流ということになります。但し、制御に使用する場
合、モータへ流入する方向を電流の正方向としているので、ここでは正負反転が必要となります。
𝐼𝐵 = −𝐼𝑢
残りの 1 相となるポイント C は V 相に流れる電流となるので、キルヒホッフの第一法則より U 相と W 相との合成電流として求めることが出来ます。
𝐼𝐶 = −(𝐼𝐴 + 𝐼𝐵 ) = 𝐼𝑣
従って、ポイント A, B における 1 シャント抵抗に流れている電流値を取得することが出来れば、三相の電流を復元することが出来ます。
これはデューティの大小関係が W>V>U となる場合のため、PWM の変化に伴いこの大小関係は 6 パター
ンの組み合わせでポイント A, B で検出できる電流は切り替わります。デューティを設定する時点でこの大小関係はわかっているため、それに合わせて、検出した電流の相を判断します。

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 29 of 109

RL78/G24

永久磁石同期モータのセンサレスベクトル制御

3.1.11.2 RL78/G24 の機能を用いた 1 シャント抵抗電流測定方法
3.1.11.1 に示した様に 1 シャント抵抗による電流測定を行う場合、A/D コンバータの変換タイミングを
PWM のデューティ設定に従って調整する必要があります。本プログラムでは RL78/G24 の以下の機能を用いることでこれを実現しています。
・タイマ RD2：
拡張相補 PWM モード(非対称三相波形を出力）、A/D 変換トリガ 0,1
・A/D コンバータ：
アドバンスド・モード、ハードウェア・トリガ

図 3-10 A/D 変換タイミング

図 3-11 割り込みタイミング
図 3-10、図 3-11 を用いて動作を説明します。
タイマ RD2 の設定によりキャリアの谷で割り込みを発生させ次のデューティを算出します。A/D 変換タ
イミングはポイント B の左エッジ、ポイント A の左エッジをそれぞれタイマ RD2 の A/D 変換トリガ 0,1 に設定します。
A/D コンバータはタイマ RD2 の A/D 変換トリガ 0,1 をハードウェア・トリガとして A/D 変換を行います。A/D 変換結果は次の周期の演算で使用され、デューティへの反映は次周期の谷(1.5 周期後)の割り込み時に一斉書き換えで行われます。
A/D 変換結果レジスタ(ADCRn)に格納された 2 点の A/D 変換結果から三相電流を復元することが出来ます。2 点の AD 変換時間の間、PWM 波形を一定に保てない場合、拡張相補 PWM モードの非対称三相波形を出力することで AD 変換時間を確保します。

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 30 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24
3.1.11.3

デューティ調整

各相のデューティ値の差分が小さい場合、A/D 変換が間に合わない場合があります。そのため、A/D 変換に必要な時間を確保すべく、非対称波形を出力することで、デューティを下図のように調整します。

図 3-12 デューティ調整(例)

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 31 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24
3.1.12 突極性を利用した初期位置検出

回転子の位置により磁気抵抗が変化する場合、そのモータは突極性を持つといいます。これは回転子の位置に応じて磁気抵抗が変化すると言い換える事が出来ます。磁気抵抗が正弦波状に変化するならば、インダクタンスも正弦波状に変化する事になります。図 3-13 に示すように回転子の 1 周に対してインダクタンス
は 2 倍の周期で変化します。この場合、例えば U→V、V→W、W→U の方向に電流が流れる様に電圧を印加すると、シャント抵抗に流れる電流が閾値電流値に達するまでの時間は、回転子の位置に応じて変化します。例えば、図 3-14 の状態の時、V→W の方向に電圧を印加した場合の方が W→U の方向に電圧を印加した
場合より時間が掛かる事になります。

図 3-13 回転子位置に応じたインダクタンスの変化

図 3-14 回転子位置と各相の関係
この性質を利用して回転子の位置を検出する方法を説明します。図 3-15 に本システムで用いる突極性
モータの角度検出の模式図を示します。判別は 3 パターンの電圧を印加し、シャント抵抗に流れる電流が閾値電流に達するまでの時間を内部タイマにより計測し、これを比較することで回転子が電気角 180 度内
で 60 度毎のどの方向を向いているのかを検出します。

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 32 of 109

RL78/G24

永久磁石同期モータのセンサレスベクトル制御

図 3-15 角度検出模式図
本システムで用いるアルゴリズムでは、内部基準電流の値に達するまでの時間を RL78/G24 のタイマ
RX(TRX)とコンパレータ 3(CMP3)を用いて検出します。TRD の拡張相補 PWM モードを用い、各相にパルス状の電圧を印加します。この時、TRX を TRD の立ち上がりエッジ同期でカウントを開始し、CMP3 によりシャント抵抗に流れる電流が閾値電流に到達した事を検知したタイミングで割り込みを発生させ、電流上昇に要した時間を計測します。
各相で計測した時間の累計値の比較から電気角 180 度内の 60 度毎の分解能で、突極性を利用した角度検出を行います。最大相と最小相の時間累計値の差分が閾値以上になった時に計測終了としています。ただし、最大測定回数分の測定を行っても差分が閾値の設定割合に達しなかった場合、突極性を利用した角度検出は失敗となります。

図 3-16 各相の電流検出の時間差

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 33 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

また、モータの回転子が初期位置を推定するために十分な突極性を有しているか確認するため、突極性判定を行います。測定した 3 相の電流上昇にかかった TRX カウント値の最大値と中間値の差分、中間値と最小値の差分を比較し、差分が大きい方の最大値または最小値の相を特定します。次に、特定した相と逆向きに電圧を印加し、電流上昇に要する時間を測定します。このとき、3 相の TRX カウント値の平均値と電圧の向きを反転させた相の TRX カウント値を比較し、反転させた相の TRX カウント値が特定した相と同じ大小関係にあれば突極性が十分大きいと判断し、異なる場合には突極性が小さいと判断します。
例えば図 3-17 で示すように、回転子が 120 度方向を向いている場合、最大値と中間値の差分が大きくなるため、特定される相は W-U 相となります。W-U 相から通電方向を反転させ、U-W 相に電圧を印加して電流が上昇する時間を測定します。U-V、V-W、W-U の TRX カウント値の平均値と U-W 相の TRX カウント
値を比較し、U-W 相の TRX カウント値の方が大きければ突極性を利用した初期位置検出が可能と判断し、小さければ不可能と判断します。

図 3-17 突極性の確認方法

3.1.13 飽和特性を利用した初期位置検出
上記で説明した方法は突極性によるインダクタンスの変化を利用して位置を推定している為、極性の判別が出来ません(例えば 60 度と 240 度の区別が付きません)。また、非突極性モータを使用した場合も適用することができません。そこで、極性検出時や非突極性の回転子で角度検出を行う場合、モータの磁気飽和特性を利用します。
磁性体が磁化できる大きさには限りがあるため、コイルに電流を流してコイル内のコアに外部磁場を発生させると、外部磁場がある値を超えるとコアは飽和磁化状態となります。コアを貫く外部磁場の向きとコイルに流れる電流によって発生する磁場の方向が同じであれば、方向が逆の場合よりもコアの磁化が飽和に近い状態となるため、インダクタンスが小さくなります。この特性を利用して磁極の向きを判定します。

図 3-18 コイルに巻かれた磁極の例

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 34 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

図 3-19 電流印加方向による電流差異
突極性を利用した場合の測定と同様に、図 3-19 の様にモータに電圧を印加して、シャント抵抗に流れる電流が上昇するのに要する時間を TRX で測定します。飽和特性を利用した測定では、電圧の印加方向と回転子の向きが一致している場合に TRX のカウント値が最も小さくなるため、この傾向を利用して回転子の向きを推定します。
突極性モータの場合、突極性を利用した角度検出の結果を基に電圧を順方向と逆方向に印加し、電流上昇時間の大小関係を比較することで、飽和特性を利用した極性検出を行います。また、非突極性モータの場合、電圧を 6 方向に印加して電流上昇時間を測定し、TRX カウント値が最小となる相に回転子が向いているものとして、飽和特性を利用した角度検出を行います。

図 3-20磁気飽和を利用した初期位置検出による電圧印加パターン例

測定終了は各方向での差分が判別閾値を超えた時点で終了とします。ただし、最大測定回数分の測定を行っても差分の累積値が判別閾値に達しなかった場合、判別閾値の設定割合以上であれば測定に成功したと判断し、設定割合より小さければ測定に失敗したと判断します。

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 35 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

始動準備モード(PS_METHOD)の値により、実行される初期位置検出処理が異なります。表 3-8 に各モードで実行される処理の一覧を示します。
表 3-8
始動準備モード(PS_METHOD)
PS_IPD_SAL
PS_IPD_NON_SAL
PS_IPD_UNKNOWN
PS_DRAW_IN

始動準備モード(PS_METHOD）による実行される処理

突極性を利用した
角度検出
〇
×
〇
×

R01AN7036JJ0110 Rev.1.10
2024.07.16

突極性判定
×
×
〇
×

飽和特性を利用した
極性検出
〇
×
〇
×

飽和特性を利用した
角度検出
×
〇
〇
×

Page 36 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24
3.1.14 オープンループ制御

低速域では誘起電圧が小さい為、位置推定が出来ません。そこで d 軸電流を用いて回転磁界を発生させてモータを位置推定が可能な速度まで強制同期駆動させます(オープンループ制御)。その時モータの速度は電流やモータパラメータに依存する固有周波数で振動します。そこで図 3-21 のブロック線図にあるようなダンピング制御を行うことで低速域のオープンループ制御時におけるモータの振動を低減します。

e𝑑

∆e𝑑
HPF

ωdamp
𝐾𝑑𝑎𝑚𝑝

(速度指令値へフィードバック)

e𝑑 : d 軸誘起電圧推定値[V]Δe𝑑 : d 軸誘起電圧推定値摂動成分 [V]𝐾𝑑𝑎𝑚𝑝 :ダンピング制御ゲイン
𝜔𝑑𝑎𝑚𝑝 :速度指令値へのフィードバック速度 [rad/s(電気角)]

図 3-21 オープンループダンピング制御ブロック線図

3.1.15 センサレス切り替え処理
オープンループ制御からクローズドループ制御に切り替える際、オープンループ時は d 軸と γ 軸の軸誤差によりトルクが発生してモータが回転します。特に高負荷時などでは、軸誤差が大きくクローズドループ制
御に移行時に電流や推定速度にハンチングが起き制御が不安定になる場合があります。この現象を低減する
ため、速度 PI 制御に移行する前にこの軸誤差を 0 にするよう q 軸電流を調整します。

3.1.16 弱め磁束制御/最大トルク制御
モータの回転速度が上昇するにつれて誘起電圧は大きくなります。この為、誘起電圧が電源電圧と同程度の大きさになる領域では指令電流を適切に出力する事が出来なくなります。その際に、d 軸に負の電流を流し疑似的に誘起電圧を小さくする事で駆動可能領域を拡大させる弱め磁束制御という方法があります。また、突極性のあるモータではリラクタンストルクを利用する事で出力トルクを大きくする最大トルク制御という方法があります。
本プログラムでは、指令電圧値が飽和した時点で出力可能な電圧と電流の範囲内で d 軸電流を適宜調整する事で駆動可能領域を拡大しています。

3.1.17 外乱抑制
速度は外乱によって変動してしまう為、外乱を推定し、その値をフィードフォワードする事でその影響を軽減する事が出来ます。電流制御が十分に機能した状態であれば、モータの逆モデルより外乱を推定する事が出来るので、その推定値を LPF にかけたものを電流指令値に反映する事で外乱を軽減します。

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 37 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

3.2

センサレスベクトル制御ソフト関数仕様

本プログラムの関数一覧を以下に示します。
表 3-9 “main.c”関数一覧
関数

ファイル
main.c・ハードウェア初期化関数呼び出し

main
入力：なし

処理概要

出力：なし

・Renesas Motor Workbench 通信初期化
・ユーザインタフェース初期化関数呼び出し
・メイン処理使用変数初期化関数呼び出し
・状態遷移及びイベント実行関数呼び出し
・母線電圧安定待ち処理呼び出し・メイン処理⇒ユーザインタフェース処理呼び出し⇒ウォッチドッグタイマクリア関数呼び出し
Renesas Motor Workbench 使用

ics_ui
入力：なし

出力：なし

・モータステータスの変更
メイン処理にて使用する変数の初期化

software_init
入力：なし

出力：なし

表 3-10 “r_mtr_ics.c” 関数一覧
ファイル
r_mtr_ics.c

関数

処理概要

R_MTR_SetIcs
入力:なし 出力:なし

RMW への通信準備

R_MTR_SetCOMVariables
入力:なし 出力:なし

制御変数への入力受け渡し前処理
・制御変数の書き換え変数(com 変数)の値を制御受け渡しバッファ変数(ICS 変数)へ入力
・ICS 変数の値を ICS バッファ変数へ入力

R_MTR_ICSVariablesInit
入力:なし 出力:なし
R_MTR_ICSIntLevel
入力: uint8_t u1_level :: 割り込み優先順位
出力: なしcom 変数の初期化

mtr_limit 【inline function】
入力: int16_t s2_value :: 対象の値
int16_t s2_max :: 最大値
int16_t s2_min :: 最小値
出力: int16_t :: リミット処理値

最大値、最小値のリミット処理

ICS の割り込み優先順位設定

表 3-11 “ICS2_RL78G24.lib” 関数一覧
ファイル
ICS2_RL78G24.lib関数
ics2_init
入力: uint16_t addr :: DTC ベクタテーブル先頭アドレス
uint16_t pin :: SCI 使用ピン
uint8_t level :: 割り込みレベル
uint8_t num :: DTC の構造体の先頭番地
uint8_t brr :: 通信速度
uint8_t mode :: 通信モード
出力:なし
ics2_watchpoint
入力:なし 出力:なし

R01AN7036JJ0110 Rev.1.10
2024.07.16

処理概要
通信初期化

転送関数の呼び出し
300us 以上の間隔で呼び出す必要があります。

Page 38 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 3-12 “r_mtr_board.c” 関数一覧
ファイル
r_mtr_board.c

関数

処理概要

R_MTR_BoardLedContrl
入力: uint8_t u1_motor_status :: モータステータス
uint8_t u1_system_status :: システムステータス
出力:なし

LED の制御

表 3-13 “r_mtr_rl78g24.c” 関数一覧
ファイル
r_mtr_rl78g24.c

関数

処理概要
未使用端子の初期化

R_MTR_InitUnusedPins
入力: なし出力: なし表 3-14 “r_mtr_ctrl_gain.obj” 関数一覧
ファイル
r_mtr_ctrl_gain.obj

関数
R_MTR_CtrlGain
入力: st_mtr_ctrl_gain_t *st_gain_buf ::ゲイン設計構造体ポインタ
const st_mtr_design_parameter_t *st_ctrl_param ::設計パラメータ構造体ポインタ
出力: なしR01AN7036JJ0110 Rev.1.10
2024.07.16

処理概要
ゲイン設計処理

Page 39 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 3-15 “r_mtr_driver_access.c” 関数一覧
ファイル
r_mtr_driver_access.c

関数

処理概要

R_MTR_InitControl
入力:なし
出力:なし

モータ制御システム初期化
・モータステータスの初期化
・制御用変数の初期化

R_MTR_ExecEvent
入力: uint8_t u1_event :: イベント
出力:なし
R_MTR_ChargeCapacitor
入力:なし
出力: uint16_t :: タイムアウトエラー
R_MTR_SetSpeed
入力: int16_t s2_ref_speed_rpm :: 目標回転速度
Int16_t s2_ref_min_speed_rpm :: 目標回転速度の最小値
出力: uint8_t :: モータ停止フラグ
R_MTR_GetSpeed
入力:なし
出力: int16_t :: 回転速度
R_MTR_SetDir
入力: int8_t 1_dir :: 回転方向
出力:なし
R_MTR_GetDir
入力:なし
出力: int8_t :: 回転方向
R_MTR_GetStatus
入力:なし
出力: uint8_t :: モータステータス
R_MTR_GetErrorStatus
入力:なし
出力: uint16_t :: エラーステータス
R_MTR_IcsInput
入力: mtr_ctrl_input_t *st_ics_input :: ICS 構造体
出力:なし
R_MTR_SetVariables
入力:なし
出力:なし
R_MTR_InputBuffParamReset
入力:なし
出力:なし
R_MTR_UpdatePolling
入力:なし
出力:なし

モータステータスの変更とイベント処理

R01AN7036JJ0110 Rev.1.10
2024.07.16

母線電圧安定待ち処理

速度指令値の設定

速度の取得

回転方向設定回転方向取得モータステータス取得

エラーステータス取得

ICS 変数の値を ICS バッファ変数へ入力

ICS バッファ変数の値を制御変数へ入力

ICS バッファ変数のリセット

制御変数の設定

Page 40 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 3-16 “r_mtr_statemachine.c” 関数一覧
ファイル

関数

処理概要

r_mtr_statemachine.c

mtr_statemachine_init
入力:(st_mtr_statemachine_t) *p_state_machine :: モータステータス構造体
出力:なし
mtr_statemacine_reset
入力:(st_mtr_statemachine_t) *p_state_machine :: モータステータス構造体
出力:なし
mtr_state_machine_event
入力:(st_mtr_statemachine_t) *p_state_machine :: モータステータス構造体(void) *p_object :: 制御変数用構造体(uint8_t) u1_event :: イベント
出力:(uint8_t) p_state_machine->u2_error_status :: エラーステータス
mtr_statemachine_get_status
入力:(st_mtr_statemachine_t) *p_state_machine:: モータステータス構造体
出力:(uint8_t) p_state_machine->u1_status :: モータステータス

モータステータスの初期化

mtr_act_none
入力:(st_mtr_statemachine_t) *st_stm :: モータステータス構造体(void) *p_param :: 制御変数用構造体
出力: (uint8_t) action_ret :: 実行結果(常に 0)
mtr_act_init
入力:(st_mtr_statemachine_t) *st_stm :: モータステータス構造体(void) *p_param :: 制御変数用構造体
出力: (uint8_t) action_ret :: 実行結果(常に 0)
mtr_act_error
入力:(st_mtr_statemachine_t) *st_stm :: モータステータス構造体(void) *p_param :: 制御変数用構造体
出力: (uint8_t) action_ret :: 実行結果(常に 0)
mtr_act_drive
入力:(st_mtr_statemachine_t) *st_stm :: モータステータス構造体(void) *p_param :: 制御変数用構造体
出力: (uint8_t) action_ret :: 実行結果(常に 0)
mtr_act_stop
入力:(st_mtr_statemachine_t) *st_stm :: モータステータス構造体(void) *p_param :: 制御変数用構造体
出力: (uint8_t) action_ret :: 実行結果(常に 0)

処理なし

表 3-17 “r_mtr_foc_less_speed.c”関数一覧
関数

ファイル名
r_mtr_foc_less_speed.c

R_MTR_FOCMotorDefaultInit
入力: st_mtr_foc_t *st_foc :: FOC 構造体ポインタ
st_mtr_cint_t *st_cint :: キャリア割り込み制御構造体ポインタ
出力:なし
R_MTR_FOCMotorReset
入力: st_mtr_foc_t *st_foc :: FOC 構造体ポインタ
st_mtr_cint_t *st_cint :: キャリア割り込み制御構造体ポインタ

モータステータスのリセット

イベントの実行モータステータスの取得

制御変数の初期化

エラー検出時の後処理

モータの駆動開始

モータの停止処理概要
制御変数の初期化

制御変数のリセット

出力:なし

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 41 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 3-18 “r_mtr_est_phase_err.obj”関数一覧
関数

ファイル
r_mtr_est_phase_err.obj

R_MTR_EstPhaseError
入力: st_mtr_est_phe_t *st_phe :: 軸誤差推定構造体ポインタ
int16_t *p_s2_ref_vdq :: dq 軸電圧指令値変数ポインタ
int16_t s2_speed_rad :: 速度
int16_t * p_s2_phe_ed :: d 軸誘起電圧
int16_t * p_s2_phe_phase_err_rad :: 位相誤差

処理概要
軸誤差推定処理出力:なし

表 3-19 "R_DSP_RL78_CC_S.lib"関数一覧(1/3)
ファイル

関数

R_DSP_RL78_CC_S.libR_motor_uw2ab_abs_pu_FIX13
入力: st_coordinate13 *p_coordinate13 :: 座標変換構造体ポインタ
入力範囲 : -4√2/3+1/2048 ≦u, w ≦4√2/3-1/2048

処理概要(FIX13)

出力:なし
出力範囲: -4 ≦a, b ≦4-1/8192 (FIX13)
R_motor_uw2ab_abs_sat_pu_FIX13
入力: st_coordinate13 *p_coordinate13 :: 座標変換構造体ポインタ
入力範囲 : -4√2/3+1/2048 ≦u, w ≦4√2/3-1/2048(FIX13)

出力:なし
出力範囲: -4 ≦a, b ≦4-1/8192 (FIX13)
R_motor_ab2dq_pu_FIX13
入力: st_coordinate13 *p_coordinate13 :: 座標変換構造体ポインタ
入力範囲 : -4 ≦a, b ≦4-1/8192 (FIX13)-1 ≦ angle.sin, angle.cos ≦ 1 (FIX14)
出力:なし
出力範囲: -4 ≦d, q ≦4-1/8192 (FIX13)
R_motor_ab2dq_sat_pu_FIX13
入力: st_coordinate13 *p_coordinate13 :: 座標変換構造体ポインタ
入力範囲 : -4 ≦a, b ≦4-1/8192 (FIX13)-1 ≦ angle.sin, angle.cos ≦ 1 (FIX14)
出力:なし
出力範囲: -4 ≦d, q ≦4-1/8192 (FIX13)
R_motor_uw2dq_abs_pu_FIX13
入力: st_coordinate13 *p_coordinate13 :: 座標変換構造体ポインタ
入力範囲 : -4√2/3+1/2048 ≦u, w ≦4√2/3-1/2048(FIX13)Clark 変換(絶対変換)
U 相(FIX13 u)と W 相(FIX13 w)の値を a
軸と b 軸の値に変換し、それぞれ(FIX13a)と(FIX13 b)に格納

Clark 変換(絶対変換) 飽和処理付
U 相(FIX13 u)と W 相(FIX13 w)の値を a
軸と b 軸の値に変換し、それぞれ(FIX13a)と(FIX13 b)に格納Park 変換a 軸(FIX13 a)と b 軸(FIX13 b)の値を d軸と q 軸の値に変換し、それぞれ(FIX13d)と(FIX13 q)に格納Park 変換 飽和処理付
a 軸(FIX13 a)と b 軸(FIX13 b)の値を d軸と q 軸の値に変換し、それぞれ(FIX13d)と(FIX13 q)に格納

Clark 変換と Park 変換の合成変換(絶対
変換)

出力:なし

U 相(FIX13 u)と W 相(FIX13 w)の値を d軸と q 軸の値に変換し、それぞれ(FIX13d)と(FIX13 q)に格納

出力範囲: -4 ≦d, q ≦4-1/8192 (FIX13)
R_motor_uw2dq_abs_sat_pu_FIX13
入力: st_coordinate13 *p_coordinate13 :: 座標変換構造体ポインタ

Clark 変換と Park 変換の合成変換(絶対変換)、飽和処理付-1 ≦ angle.sin, angle.cos ≦ 1 (FIX14)

入力範囲 : -4√2/3 ≦u, w ≦4√2/3 (FIX13)-1 ≦ angle.sin, angle.cos ≦ 1 (FIX14)
出力:なし
出力範囲: -4 ≦d, q ≦4-1/8192 (FIX13)

R01AN7036JJ0110 Rev.1.10
2024.07.16

U 相(FIX13 u)と W 相(FIX13 w)の値を d軸と q 軸の値に変換し、それぞれ(FIX13d)と(FIX13 q)に格納

Page 42 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 3-20 "R_DSP_RL78_CC_S.lib"関数一覧(2/3)
ファイル

関数

処理概要

R_DSP_RL78_CC_S.libR_motor_dq2uvw_abs_pu_FIX13
入力: st_coordinate13 *p_coordinate13 :: 座標変換構造体ポインタ
入力範囲 : -4 ≦d, q ≦4-1/8192 (FIX13)

逆 Clark 変換と逆 Park 変換の合成変換(絶対変換)且つ√𝑑 2 + 𝑞2 ≦4 (FIX13)-1 ≦ angle.sin, angle.cos ≦ 1 (FIX14)

d 軸(FIX13 d)と q 軸(FIX13 q)の値を U
相と W 相の値に変換し、それぞれ(FIX13 u)と(FIX13 w)に格納

出力:なし
出力範囲: -4√2/3 ≦u, v, w ≦4√2/3 (FIX13)
R_motor_uv2dq_abs_sat_pu_FIX13
入力: st_coordinate13 *p_coordinate13 :: 座標変換構造体ポインタ
入力範囲 : -4√2/3+1/2048 ≦u, v ≦4√2/3-1/2048(FIX13)-1 ≦ angle.sin, angle.cos ≦ 1 (FIX14)
出力:なし
出力範囲: -4 ≦d, q ≦4-1/8192 (FIX13)
R_motor_sincos_pu_FIX12
入力: st_sincos12 *p_sincos12 :: 角度構造体ポインタ
入力範囲 : -2π ≦theta ≦2π(FIX12)
出力:なし
出力範囲: -1 ≦sin, cos ≦1 (FIX14)
R_motor_atan2_pu_FIX12
入力：int16_t x :: 入力値 x
int16_t y :: 入力値 y
入力範囲 : -4 ≦x, y ≦4-1/8192 (FIX13)
出力：int16_t atan(y/x)
出力範囲: -π ≦atan ≦π(FIX12)

R_motor_atan2_pu_FIX14
入力：int16_t x :: 入力値 x
int16_t y :: 入力値 y
入力範囲 : -4 ≦x, y ≦4-1/8192 (FIX13)
出力：int16_t atan(y/x)
出力範囲: -0.5 ≦atan ≦0.49993896484375 (FIX14)

R01AN7036JJ0110 Rev.1.10
2024.07.16

Clark 変換と Park 変換の合成変換(絶対変換)、飽和処理付
U 相(FIX13 u)と V 相(FIX13 v)の値を d軸と q 軸の値に変換し、それぞれ(FIX13d)と(FIX13 q)に格納
角度(FIX12 theta)から正弦と余弦の値を計算し、それぞれ(FIX14 sin) と(FIX14cos)に格納

入力値 x (FIX13 x)と y (FIX13 y)から
(y/x)に対する逆正接の主値を計算し(FIX12)の型で出力
入力に 0 を含む場合の出力
x

y

atan

0

正

π/2

0

負

-π/2

0

0

π/4

正

0

0

負

0

-π

入力値 x (FIX13 x)と y (FIX13 y)から
(y/x)に対する逆正接の主値を計算し(FIX14)の型で出力
入力に 0 を含む場合の出力
x

y

atan

0

正

π/2

0

負

-π/2

0

0

π/4

正

0

0

負

0

-π

Page 43 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 3-21 "R_DSP_RL78_CC_S.lib"関数一覧(3/3)
ファイル
R_DSP_RL78_CC_S.lib関数

処理概要

R_motor_sqrt_sum_pu_FIX13

入力値 x と y から√𝑥 2 + 𝑦 2 の値の値を計

入力：int16_t x :: 入力値 x

算し(FIX13)の型で出力int16_t y :: 入力値 y
入力範囲 : -4 ≦x, y ≦4-1/8192 (FIX13)
且つ√𝑥 2 + 𝑦 2 ≦4-1/8192 (FIX13)
出力：int16_t √𝑥 2 + 𝑦 2
出力範囲: 0 ≦ sqrt ≦ 4√2 (FIX13)
R_motor_sqrt_dif_pu_FIX13

入力値 x と y から√𝑥 2 − 𝑦 2 の値の値を計

入力：int16_t x :: 入力値 x

算し(FIX13)の型で出力int16_t y :: 入力値 y
入力範囲 : -4 ≦x, y ≦4-1/8192 (FIX13)
出力：int16_t √𝑥 2 − 𝑦 2
出力範囲: 0 ≦ sqrt ≦ 4 (FIX13)

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 44 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 3-22 “r_mtr_interrupt.c”関数一覧(1/2)
ファイル
r_mtr_interrupt.c

関数

処理概要

mtr_carrier_interrupt

周期タイマ割り込み (INTTRD1 で呼び出し)

入力：なし

周期：100[µs]出力：なし・ベクトル制御関数の呼び出し(50[µs]の 1 回間引き)・インバータ母線電圧の取得
・通信処理呼び出し・ベクトル制御準備関数の呼び出し
mtr_get_vdc

インバータ母線電圧の取得

入力：なし

・A/D 変換値からインバータ母線電圧を計算

出力：なし

・電圧の逆数、電圧リミットを計算

mtr_1ms_interrupt

周期タイマ割り込み (INTTM00 で呼び出し)

入力：なし

周期：1[ms]

出力：なし

・始動制御
・弱め磁束制御/最大トルク制御
・d 軸 q 軸電流、回転速度の指令値設定処理呼び出し・速度 PI 制御処理呼び出し・エラー監視処理呼び出し

mtr_lpf1_run 【inline function】

1 次 LPF 処理

入力：st_mtr_lpf1_t *p_st_lpf :: LPF 構造体ポインタ
int16_t s2_input :: LPF 入力
const uint8_t u1_q :: LPF の Q 値
出力：int16_t :: LPF 出力
mtr_set_speed_ref【inline function】

速度制御用指令値の設定

入力：st_mtr_foc_t *p_st_foc :: FOC 構造体ポインタ
出力：int16_t :: 速度指令値
mtr_pi_run_asr【inline function】

速度 PI 制御処理

入力：st_mtr_pi_t *p_st_pi :: PI 制御構造体ポインタ
int16_t s2_err :: 偏差const uint8_t u1_kp_q :: 比例ゲイン Q 値
const uint8_t u1_kidt_q :: 積分ゲイン Q 値
出力：int16_t :: PI 出力
mtr_set_iq_ref【inline function】

q 軸電流指令値の設定

入力：st_mtr_foc_t *p_st_foc :: FOC 構造体ポインタ
出力：int16_t :: q 軸電流指令値
mtr_set_id_ref【inline function】

d 軸電流指令値の設定

入力：st_mtr_foc_t *p_st_foc :: FOC 構造体ポインタ
出力：int16_t :: d 軸電流指令値
mtr_error_check 【inline function】

エラー処理

入力：st_mtr_foc_t *p_st_foc :: FOC 構造体ポインタ

・過電圧検出

出力：なし

・低電圧検出・過速度検出R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 45 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 3-23 “r_mtr_interrupt.c”関数一覧(2/2)
ファイル
r_mtr_interrupt.c関数
mtr_abs 【inline function】

処理概要
入力の絶対値を出力

入力：int16_t s2_value :: 入力値
出力：int16_t :: 出力値
mtr_limit_abs 【inline function】

入力を絶対値で制限

入力：int16_t s2_value :: 入力値
int16_t s2_limit_value :: 制限値
出力：int16_t :: 出力値
mtr_cmp_interrupt [初期位置検出時]
入力:なし

初期位置検出時 TRX カウント値取得

出力:なし

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 46 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 3-24 “r_mtr_ipd.c”関数一覧(1/2)
ファイル
r_mtr_ipd.c

関数
R_MTR_Ipd
入力: st_mtr_ipd_t *p_st_ipd :: 初期位置検出構造体
uint16_t u2_current_offset :: 電流オフセット
uint16_t *p_u2_error_status :: エラーステータス
int8_t s1_ref_dir :: 指令回転方向保存値
FIX12 *p_angle_theta :: ADC 電流座標系の角度
出力: uint8_t :: ドライブモードのステータス
mtr_ipd_process
入力: st_mtr_ipd_t *p_st_ipd :: 初期位置検出構造体
uint16_t u2_current_offset :: 電流オフセット
uint16_t *p_u2_error_status :: エラーステータス
出力:なし
mtr_reset_for_drive
入力: st_mtr_ipd_t *p_st_ipd :: 初期位置検出構造体
uint16_t u2_current_offset :: 電流オフセット
int8_t s1_dir :: 回転方向
FIX12 *p_theta :: ロータ角度
出力:なし
mtr_measure_inductance_effect
入力: uint8_t u1_energized_phase :: 印加電圧相数
uint8_t u1_v_pattern :: 電圧パターン
st_mtr_ipd_t *p_st_ipd :: 初期位置検出構造体
uint16_t *p_u2_error_status :: エラーステータス
出力:なし
mtr_salient_detect_angle
入力: st_mtr_ipd_t *p_st_ipd :: 初期位置検出構造体
uint16_t u2_current_offset :: 電流オフセット
uint16_t *p_u2_error_status :: エラーステータス
出力:なし
mtr_salient_detect_polarity
入力: st_mtr_ipd_t *p_st_ipd :: 初期位置検出構造体
uint16_t u2_current_offset :: 電流オフセット
uint16_t *p_u2_error_status :: エラーステータス
出力:なし
mtr_non_salient_detect_angle
入力: st_mtr_ipd_t *p_st_ipd :: 初期位置検出構造体
uint16_t u2_current_offset :: 電流オフセット
uint16_t *p_u2_error_status :: エラーステータス
出力:なし
mtr_set_initial_position
入力: uint8_t u1_position :: 初期位置検出判定結果
int8_t s1_dir :: 回転方向
FIX12 *p_theta :: ロータ角度
出力:なし
mtr_lower_arm_on
入力: uint16_t u2_low_on_period :: 下アーム ON 時間
出力:なし

R01AN7036JJ0110 Rev.1.10
2024.07.16

処理概要
初期位置検出初期位置検出処理

初期位置検出後の周辺機能の再設定

初期位置検出における閾値電流に達するまでの時間測
定

突極性モータの初期位置検出における角度検出処理

突極性モータの初期位置検出における極性検出処理

非突極性モータ初期位置検出における角度検出測定処
理

初期位置検出結果によるオープンループ開始時のロータの角度の設定

下アーム全相 ON

Page 47 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 3-25 “r_mtr_ipd.c”関数一覧(2/2)
ファイル
r_mtr_ipd.c

関数

処理概要

mtr_prepare_energize_phase
入力: uint8_t u1_energized_phase :: 電圧印加相数
uint8_t u1_v_pattern :: 電圧パターン
出力:なし

初期位置検出時の電圧パターン設定

mtr_output_stop
入力:なし
出力:なし

電圧出力停止mtr_reset_timer
入力:なし
出力:なし

TRD と TAU のリセット

mtr_enable_cmp_intr
入力:なし
出力:なし

CMP 割り込み許可

mtr_disable_cmp_intr
入力:なし
出力:なし

CMP 割り込み禁止

表 3-26 “r_mtr_ipd.h”関数一覧
ファイル
r_mtr_ipd.h

関数

処理概要

R_MTR_SetCutoffSource
入力:なし
出力:なし

PWM 強制遮断要因を CMP に設定

R_MTR_ClearCutoffSource
入力:なし
出力:なし

PWM 強制遮断要因を CMP から解除

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 48 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 3-27 “r_mtr_ol2cl_ctrl.obj”関数一覧
関数

ファイル
r_mtr_ol2cl_ctrl.
obj

R_MTR_OL2CLTorqueCurrentCalc
入力: st_mtr_ol2cl_t *st_ol2cl :: センサレス切り替え制御構造体ポインタ
int16_t s2_id_ref :: d 軸電流指令値
int8_t s1_dir :: 回転方向
出力:なし
R_MTR_OL2CLSwichCtrl
入力: st_mtr_ol2cl_t *st_ol2cl :: センサレス切り替え制御構造体ポインタ
int16_t s2_id_ref :: d 軸電流指令値
出力: int16_t :: q 軸電流指令値
R_MTR_DampCtrl
入力: st_mtr_damp_t *st_damp :: 軸誤差推定構造体ポインタ
int16_t s2_ed :: d 軸誘起電圧
int16_t s2_speed_ref :: 指令速度
出力: int16_t :: ダンピング指令速度

処理概要
センサレス切り替え制御時のトルク電流算出

センサレス切り替え制御時の q
軸電流指令値の算出

ダンピング制御処理

mtr_hpf1_run 【inline function】
入力: st_mtr_hpf1_t *st_hpf :: HPF 構造体ポインタ
int16_t s2_input :: HPF 入力
const uint8_t u1_q :: HPF の Q 値
出力: int16_t :: HPF 出力

1 次 HPF 処理

mtr_limit_abs 【inline function】

入力を絶対値で制限

入力：int16_t s2_value :: 入力値
int16_t s2_limit_value :: 制限値
出力：int16_t :: 出力値
mtr_abs 【inline function】

入力の絶対値を出力

入力：int16_t s2_value :: 入力値
出力：int16_t :: 出力値

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 49 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24
ファイル
r_mtr_disturb_suppress.
obj

表 3-28 “r_mtr_disturb_suppress.obj”関数一覧
関数
R_MTR_DisturbSuppress
入力: st_mtr_do_t *st_do :: 外乱抑制構造体ポインタ
int16_t s2_speed :: 速度積分値
int16_t s2_current :: q 軸電流指令値
int16_t s2_d0_div_pm :: 静止摩擦係数

処理概要
外乱抑制処理/ (極対数 × 誘起電圧定数)
int16_t s2_d1_div_p2m :: 動摩擦係数/ (極対数^2 × 誘起電圧定数)
出力: int16_t :: q 軸電流指令値
mtr_lpf1_run 【inline function】

1 次 LPF 処理

入力：st_mtr_do_lpf1_t *p_st_lpf :: LPF 構造体ポインタ
int16_t s2_input :: LPF 入力
const uint8_t u1_q :: LPF の Q 値
出力：int16_t :: LPF 出力
mtr_hpf1_run 【inline function】
入力: st_mtr_do_hpf1_t *st_hpf :: HPF 構造体ポインタ
int16_t s2_input :: HPF 入力
const uint8_t u1_q :: HPF の Q 値
出力: int16_t :: HPF 出力

表 3-29 “r_mtr_foc.c”関数一覧(1/4)
関数

ファイル
r_mtr_foc.c

1 次 HPF 処理

処理概要

MtrFocSequence
入力:なし
出力:なし

ベクトル制御処理mtr_get_current_ss 【inline function】
入力: st_mtr_sscs_t *p_st_sscs ::1 シャント抵抗電流検出構造体ポインタ
int16_t *p_s2_i_uvw :: UVW 相検出電流ポインタ
int16_t s2_limit_over_current :: 過電流リミット値
st_coordinate13* p_st_i_repro :: 再現電流座標系構造体ポインタ
出力:エラーステータス

電流検出

mtr_get_current_ts 【inline function】
入力: st_mtr_tscs_t *p_st_tscs :: 3 シャント電流検出構造体ポインタ
int16_t *p_s2_i_uvw :: UVW 相検出電流ポインタ
int16_t s2_limit_over_current :: 過電流リミット値
出力:エラーステータス

電流検出

mtr_uvw2dq_current 【inline function】
入力: st_coordinate13 *p_st_ad_i :: ADC 電流座標系構造体ポインタ
st_sincos12* p_ad_i_angle :: 角度構造体ポインタ
出力:なし

検出電流情報の変換

mtr_est_phase_err 【inline function】
入力: st_coordinate13 *p_st_ad_i :: ADC 電流座標系構造体ポインタ
st_mtr_parameter_t *p_st_motor ::モータパラメータ構造体ポインタ
st_mtr_est_phe_t *p_st_phe :: 位相誤差推定構造体ポインタ
int16_t *p_s2_vdq :: dq 軸指令電圧ポインタ
st_mtr_common_cint_t *p_st_common ::1ms 周期/50us 周期共通構造体ポインタ
出力:なし

軸誤差推定処理

R01AN7036JJ0110 Rev.1.10
2024.07.16[1 シャントモード時][3 シャントモード時](U,V,W 相→d,q 軸)

Page 50 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 3-30 “r_mtr_foc.c”関数一覧(2/4)
関数

ファイル
r_mtr_foc.c

処理概要

mtr_ctrl_speed 【inline function】
入力: st_mtr_pll_t *p_st_pll :: PLL 制御構造体ポインタ
st_mtr_asr_cint_t *p_st_asr :: ASR 構造体ポインタ
int16_t s2_phase_err_rad :: 位相誤差
int16_t s2_ctrl_period :: 電流制御周期
int16_t *p_ad_i_theta :: ADC 電流座標系の角度ポインタ
int16_t *p_ref_v_theta :: 指令電圧座標系の角度ポインタ
st_mtr_common_cint_t *p_st_common ::1ms 周期/50us 周期共通構造体ポインタ
出力: なし速度制御

mtr_ctrl_current 【inline function】
入力: st_mtr_est_phe_t *p_st_phe :: 位相誤差推定構造体ポインタ
int16_t *p_ad_i_theta :: ADC 電流座標系の角度ポインタ
int16_t *p_ref_v_theta :: 指令電圧座標系の角度ポインタ
st_mtr_asr_cint_t *p_st_asr :: ASR 構造体ポインタ
int16_t s2_ctrl_period :: 電流制御周期
st_mtr_pll_t *p_st_pll :: PLL 制御構造体ポインタ
st_mtr_common_cint_t *p_st_common ::1ms 周期/50us 周期共通構造体ポインタ
出力: なし電流制御

mtr_get_direction【inline function】
入力: int8_t* p_s1_direction :: 回転方向
st_mtr_common_cint_t *p_st_common ::1ms 周期/50us 周期共通構造体ポインタ
出力: なしモータの回転方向取得

mtr_ctrl_pi 【inline function】
入力: st_coordinate13 *p_st_ad_i :: ADC 電流座標系構造体ポインタ
st_coordinate13 *p_st_ref_i :: 指令電流座標系構造体ポインタ
st_coordinate13 *p_st_ref_v :: 指令電圧座標系構造体ポインタ
st_mtr_acr_cint_t *p_st_acr :: ACR 構造体ポインタ
出力: なし

電流 PI 制御

mtr_ctrl_decoupling 【inline function】
入力: st_mtr_parameter_t *p_st_motor ::モータパラメータ構造体ポインタ
st_mtr_acr_cint_t *p_st_acr :: ACR 構造体ポインタ
st_coordinate13 *p_st_ad_i :: ADC 電流座標系構造体ポインタ
st_coordinate13 *p_st_ref_v :: 指令電圧座標系構造体ポインタ
st_mtr_common_cint_t *p_st_common ::1ms 周期/50us 周期共通構造体ポインタ
出力: なし非干渉制御

mtr_dq2uvw_voltage 【inline function】
入力: st_coordinate13 *p_st_ref_v :: 指令電圧座標系構造体ポインタ
出力: なし指令電圧情報の変換

mtr_set_pwm_ss 【inline function】
入力: st_coordinate13 *p_st_ref_v :: 指令電圧座標系構造体ポインタ
st_mtr_mod_t *p_st_mod :: 変調構造体ポインタ
st_mtr_sscs_cint_t *p_st_sscs ::1 シャント抵抗電流検出構造体ポインタ
出力: なしPWM 出力設定

R01AN7036JJ0110 Rev.1.10
2024.07.16(d,q 軸→U,V,W 相)[1 シャントモード時]

Page 51 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 3-31 “r_mtr_foc.c”関数一覧(3/4)
関数

ファイル
r_mtr_foc.c

処理概要

mtr_set_pwm_ts 【inline function】
入力: st_coordinate13 *p_st_ref_v :: 指令電圧座標系構造体ポインタ
st_mtr_mod_t *p_st_mod :: 変調構造体ポインタ
st_mtr_tscs_cint_t *p_st_tscs :: 3 相電流検出構造体ポインタ
出力: なしPWM 出力設定

mtr_conv_ad_ss 【inline function】
入力: st_mtr_sscs_cint_t *p_st_sscs ::1 シャント抵抗電流検出構造体ポインタ
出力: なしA/D 変換タイミングの計算

mtr_2phase_duty_cross 【inline function】
入力: st_coordinate13 *p_st_ad_i :: ADC 電流座標系構造体ポインタ
st_coordinate13 *p_st_i_repro :: 再現電流座標系構造体ポインタ
st_mtr_lpf1_t *p_st_id_repro :: 電流再現用 d 軸電流 LPF ポインタ
st_mtr_lpf1_t *p_st_iq_repro :: 電流再現用 q 軸電流 LPF ポインタ
出力: なし2 相近接の電流補償

mtr_deadtime_comp 【inline function】
入力: st_mtr_deadtime_comp_t* p_st_dtcomp ::デッドタイム補償構造体ポインタ
st_coordinate13* p_st_i_uvw_dq ::指令電流座標系構造体ポインタ
st_coordinate13* p_st_v_uvw_dq ::指令電圧座標系構造体ポインタ
st_mtr_mod_t* p_st_mod :: 変調構造体ポインタ
出力: なしデッドタイム補償処理

mtr_mod_ss【inline function】
入力: st_mtr_mod_t* p_st_mod :: 変調構造体ポインタ
st_coordinate13* p_st_ref_v :: 指令電圧座標系構造体ポインタ
uint8_t* p_u1_drv_pat :: 変調率大小関係パターンのポインタ
st_mtr_sscs_cint_t* p_st_sscs ::1 シャント抵抗電流検出構造体ポインタ
出力: なし変調処理

mtr_mod_ts【inline function】
入力: st_mtr_mod_t* p_st_mod :: 変調構造体ポインタ
st_coordinate13* p_st_ref_v :: 指令電圧座標系構造体ポインタ
出力: なし変調処理

mtr_pwm_duty_ss【inline function】
入力: st_mtr_sscs_cint_t* p_st_sscs ::1 シャント抵抗電流検出構造体ポインタ
出力: なしデューティ算出

mtr_pwm_duty_ts【inline function】
入力: st_mtr_tscs_cint_t* p_st_tscs :: 3 相電流検出構造体ポインタ
int16_t s2_u :: U 相変調率
int16_t s2_v :: V 相変調率
int16_t s2_w :: W 相変調率
uint8_t u1_uvw_min_pattern :: 相電流最小パターン
出力: なしデューティ算出

mtr_set_duty_adj_ss【inline function】
入力: st_mtr_sscs_cint_t* p_st_sscs ::1 シャント抵抗電流検出構造体ポインタ
出力: なしデューティ設定

R01AN7036JJ0110 Rev.1.10
2024.07.16[3 シャントモード時][1 シャントモード時][1 シャントモード時][3 シャントモード時][1 シャントモード時][3 シャントモード時][1 シャントモード時]

Page 52 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 3-32 “r_mtr_foc.c”関数一覧(4/4)
関数

ファイル
r_mtr_foc.c

処理概要

mtr_uvw_voltage_limit【inline function】
入力: int16_t* p_s2_ref_v_uvw :: UVW 相電圧ポインタ
int16_t s2_voltage_limit :: 電圧リミット値
出力: なし3 相電圧の制限処理

mtr_limit 【inline function】
入力: int16_t s2_value :: 対象の値
int16_t s2_max :: 最大値
int16_t s2_min :: 最小値
出力: int16_t :: リミット処理値

最大値、最小値のリミット処理

mtr_limit_or_zero【inline function】
入力: int16_t s2_value :: 対象の値
int16_t s2_max :: 最大値
int16_t s2_min :: 最小値
int16_t s2_zero_line :: 0 補正閾値
出力: int16_t :: リミット処理値

0 補正付き最大値、最小値のリミット処理mtr_lpf1_run 【inline function】

1 次 LPF 処理

入力：st_mtr_lpf1_t *p_st_lpf :: LPF 構造体ポインタ
int16_t s2_input :: LPF 入力
const uint8_t u1_q :: LPF の Q 値
出力：int16_t :: LPF 出力
mtr_pi_run_acr【inline function】

電流 PI 制御処理

入力：st_mtr_pi_t *p_st_pi :: PI 制御構造体ポインタ
int16_t s2_err :: 偏差const uint8_t u1_kp_q :: 比例ゲイン Q 値
const uint8_t u1_kidt_q :: 積分ゲイン Q 値
出力：int16_t :: PI 出力
mtr_abs 【inline function】

入力の絶対値を出力

入力：int16_t s2_value :: 入力値
出力：int16_t :: 出力値
mtr_limit_abs 【inline function】

入力を絶対値で制限

入力：int16_t s2_value :: 入力値
int16_t s2_limit_value :: 制限値
出力：int16_t :: 出力値

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 53 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

ファイル
r_mtr_mtpa2fw_ctrl.obj

表 3-33 “r_mtr_mtpa2fw_ctrl.obj”関数一覧
関数
R_MTR_SetVlimit
入力: st_mtr_mtpa2fw_t *st_m2f ::弱め磁束制御/最大トルク制御構造体ポインタ
int16_t s2_vdc :: 電源電圧
出力:なし
R_MTR_MTPA2FWCtrl

処理概要
出力電圧リミット値の設定

弱め磁束制御/最大トルク制御

入力: st_mtr_mtpa2fw_t *st_m2f ::弱め磁束制御/最大トルク制御構造体ポインタ
int16_t *s2_ref_idq :: dq 軸指令電流ポインタ
int16_t *s2_idq :: dq 軸検出電流ポインタ
int16_t s2_ref_speed_rad :: 速度
出力:なし

表 3-34 “r_mtr_offset.c”関数一覧
関数

ファイル
r_mtr_offset.c

R_MTR_CalibCurrentOffsetSs
入力: st_mtr_sscs_t *p_st_sscs :: 1 シャント抵抗電流検出構造体ポイン
タ
int16_t * p_s2_offset :: 電流オフセット値ポインタ
出力: ドライブモードのステータス
R_MTR_CalibCurrentOffsetTs
入力: st_mtr_tscs_t *p_st_tscs :: 3 相電流検出構造体ポインタ
int16_t * p_s2_offset :: 電流オフセット値ポインタ
出力: ドライブモードのステータス

表 3-35 “r_mtr_prep.c”関数一覧
関数

ファイル
r_mtr_prep.c

R_MTR_StopSequence
入力:なし
出力:なし

R01AN7036JJ0110 Rev.1.10
2024.07.16

処理概要
電流オフセット検出[1 シャントモード時]

電流オフセット検出[3 シャントモード時]

処理概要
ベクトル制御の準備

Page 54 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

3.3

センサレスベクトル制御ソフト変数一覧

本制御プログラムで使用する変数一覧を次に示します。ただし、ローカル変数は記載していません。
また、本制御プログラムの制御値は、各値をスケーリングした上で算出しています。Q 表記が適用される変数について、スケール欄にある Qn は小数部分がｎビットであることを表します。ただし、一部の変数と構
造体メンバの Q 表記に関しては r_mtr_scaling_parameter.h にある定義で計算されるので、この場合はス
ケール欄にデフォルトの Q 表記を記載しています。PU 単位が適用される変数・構造体メンバの単位は[PU([元単位])]のように記述します。
表 3-36 “main.c” 変数一覧
変数

型

Qn

PU

内容

g_u1_system_mode

static uint8_t

Q0-

モードシステム管理用変数

g_u1_motor_status

static uint8_t

Q0-

モータステータス管理用変数

g_u2_error_status

static uint16_t

Q0-

エラーステータス管理用変数

g_u2_conf_hw

uint16_t

Q0-

RMW configuration 用変数

g_u2_conf_sw

uint16_tQ0-

g_u2_conf_tool

uint16_t

Q0-

gui_u1_active_gui

uint8_tQ0-

g_u2_conf_sw_ver

uint16_t

Q0-

com_u1_run_event

uint8_tQ0-

g_u1_run_event

uint8_tQ0-

g_u2_system_error

uint16_t

Q0-

R01AN7036JJ0110 Rev.1.10
2024.07.16

ランモード遷移用変数

備考

0 : MTR_EVENT_STOP
1 : MTR_EVENT_DRIVE
2 : MTR_EVENT_ERROR
3 : MTR_EVENT_RESET

システムエラー管理用変数

Page 55 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 3-37 “r_mtr_ics.c” 変数一覧(1/2)
変数

型

内容

備考

Qn

PU

-

-

ICS 変数受け渡し構造体

構造体

com_u1_direction

st_mtr_ctrl_input_t
uint8_t

Q0

-

回転方向

0：CW
1：CCW

com_f4_mtr_r

float

-

-

抵抗 [Ω]

com_f4_mtr_ld

float

-

-

d 軸インダクタンス[H/rad]com_f4_mtr_lq

float

-

-

q 軸インダクタンス[H/rad]com_f4_mtr_m

float

-

-

誘起電圧計数 [Vs/rad]com_f4_mtr_j

float

-

-

イナーシャ[kg m^2/rad^2]

com_f4_mtr_d0

float

-

-

静止摩擦係数[kgm^2/(rad･s^2)]

com_f4_mtr_d1

float

-

-

静止摩擦係数[kgm^2/(rad^2･s)]

com_u2_mtr_pp

uint16_t

Q0

-

極対数

com_u2_offset_calc_cnt

uint16_t

Q0-

電流オフセット検出時間

com_s2_ref_speed_rpm

int16_t

Q0-

目標速度［rpm］

機械角

com_f4_ramp_limit_speed_rpm

float

-

-

加速度制限値 [rpm/ms]

機械角

com_s2_max_speed_rpm

int16_t

Q0-

最大速度［rpm］

機械角

com_f4_acr_nf_hz

float

-

-

電流 PI 制御固有周波数 [Hz]com_f4_asr_nf_hz

float

-

-

速度 PI 制御固有周波数 [Hz]com_f4_asr_lpf_cof_hz

float

-

-

速度 LPF カットオフ周波数 [Hz]com_f4_acr_lpf_cof_hz

float

-

-

電流 LPF カットオフ周波数 [Hz]com_f4_pll_nf_hz

float

-

-

PLL 固有周波数 [Hz]com_f4_acr_deadband_lsb

float

-

-

電流 PI のデッドバンド [LSB]

com_f4_asr_deadband_lsb

float

-

-

速度 PI のデッドバンド [LSB]

com_f4_pll_deadband_lsb

float

-

-

PLL のデッドバンド [LSB]

com_f4_asr_ki_aug

float

-

-

速度 PI 制御積分器増幅率

com_s2_cl2ol_speed_rpm

int16_t

Q0-

com_s2_ol2cl_speed_rpm

int16_t

Q0-

com_f4_ol_ref_id

float

-

-

センサレスからオープンループへの切り替え速度[rpm]
オープンループからセンサレスへの切り替え速度[rpm]
オープンループ d 軸指令電流[A]com_f4_draw_in_wait_time

float

-

-

引き込み待ち時間 [sec]com_f4_init_asr_intg

float

-

-

センサレス移行時の ASR の積分項初期値

com_f4_ramp_limit_current

float

-

-

電流の上昇制限値[A/ms]

com_s2_duty_diff_limit

int16_t

Q0-

相間の Duty 偏差のリミット値 1

com_f4_i_repro_cof_hz

float

-

-

電流再現用 LPF カットオフ周波数 [Hz]com_s2_duty_diff_limit2

int16_t

Q0-

相間の Duty 偏差のリミット値 2

com_s2_ad_point_a_adj_cnt

int16_t

Q0-

A/D 変換タイミング A の調整値

com_s2_ad_point_b_adj_cnt

int16_t

Q0-

A/D 変換タイミング B の調整値

st_icsR01AN7036JJ0110 Rev.1.10
2024.07.16

機械角
機械角

【1 シャント
モード時】

Page 56 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 3-38 “r_mtr_ics.c” 変数一覧(2/2)
変数

型

Qn

PU

com_s2_mod_3ph2ph_speed_rpm

int16_t

Q0-

com_s2_mod_2ph3ph_speed_rpm

int16_t

Q0-

com_s2_ad_point_a_adj_cnt_3ph

int16_t

Q0-

com_s2_ad_point_b_adj_cnt_3ph

int16_t

Q0-

com_s2_ad_point_a_adj_cnt_2ph

int16_t

Q0-

com_s2_ad_point_b_adj_cnt_2ph

int16_t

Q0-

com_s2_mod_2ph_bot_change_cnt
com_f4_sal_angle_current

int16_t
float

Q0
-

-

com_u4_sal_angle_thuint32_t

Q0-

com_u2_sal_angle_discharge
com_f4_sal_polarity_current

uint16_t
float

Q0
-

-

com_u4_sal_polarity_thuint32_t

Q0-

com_u2_sal_polarity_discharge
com_f4_non_sal_current

uint16_t
float

Q0
-

-

com_u4_non_sal_thuint32_t

Q0-

com_u2_non_sal_discharge

uint16_t

Q0-

com_f4_fw_pi_nf_hz

float

-

-

com_s2_fw_speed_err_th_rpm

int16_t

Q0-

com_f4_fw_speed_err_lpf_cof_hz

float

-

-

com_s2_fw_id_inc_const
com_u1_fw_pi_intg_redct_cof
com_f4_do_lpf_cof_hz

int16_tuint8_t
float

Q0
Q0
-

-

com_f4_damp_hpf_cof_hz

float

-

-

com_f4_damp_zeta
com_f4_damp_speed_limit_rate
com_f4_pherr_lpf_cof_hz

float
float
float

-

-

com_f4_ol2cl_switch_time
com_s2_enable_write
g_s2_enable_write
g_u1_cnt_ics

float
int16_t
int16_tstatic uint8_t

Q0
Q0
Q0

-

R01AN7036JJ0110 Rev.1.10
2024.07.16

内容

備考

三相変調から二相変調への切り替え
速度[rpm]
二相変調から三相変調への切り替え
速度[rpm]
A/D 変換タイミング A の調整値(三相変調)
A/D 変換タイミング B の調整値(三相変調)
A/D 変換タイミング A の調整値(二相変調)
A/D 変換タイミング B の調整値(二相変調)
二相変調遷移時のカウント回数
突極性モータの角度検出における閾
値電流[A]
突極性モータの角度検出の TRX カ
ウント値差分閾値
突極性モータの角度検出の放電時間
突極性モータの極性検出における閾
値電流[A]
突極性モータの極性検出の TRX カ
ウント値差分閾値
突極性モータの極性検出の放電時間
非突極性モータの角度検出における
閾値電流[A]
非突極性の回転子の角度検出における TRX カウント値差分閾値
非突極性モータの角度検出の放電時
間弱め磁束制御 PI コントローラ固有
周波数[Hz］
弱め磁束制御の速度偏差しきい値[rpm］
速度偏差 LPF カットオフ周波数[Hz］
弱め磁束制御 Id 調整定数
弱め磁束制御 Id 積分項値減少係数
外乱抑制の LPF カットオフ周波数[Hz]
ダンピング制御の HPF カットオフ
周波数[Hz]
ダンピング制御の減衰係数
ダンピング制御の速度制限値
切り替え制御のための位相誤差の
LPF カットオフ周波数[Hz]切り替え時間[s]変数書き換え許可
変数書き換え許可
通信処理周期間引き変数【1 シャントモー
ド・二相変調時】【初期位置検出】【弱め磁束制御/最大トルク制御】【外乱抑制】【オープンループ
ダンピング制御】【センサレス切り
替え処理】

Page 57 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 3-39 “r_mtr_driver_access.c” 変数一覧型

Qn

st_ics_buff

変数

mtr_ctrl_input_t

Q0-

ICS 変数受け渡しバッファ構造体

内容

g_u1_trig_enable_write

uint8_t

Q0-

受け渡し完了フラグ

g_u1_stop_req

uint8_t

Q0-

モータ停止フラグ

g_s2_cnt

int16_t

Q0

-

カウンタ

PU

備考
構造体

表 3-40 “r_mtr_statemachine.c” 変数一覧
型

Qnstate_transition_table[MTR_SIZE_EVENT][MTR_SIZE_STATE]

変数

static uint8_t

Q0-

状態遷移用のマクロ配列

action_table[MTR_SIZE_EVENT][MTR_SIZE_STATE]

static mtr_action_tQ0-

状態遷移用の関数配列

PU

内容

備考

表 3-41 “r_mtr_interrupt.c” 変数一覧
変数

型

Qn

PU

内容

備考

gst_foc

st_mtr_foc_t--

ベクトル制御構造体

構造体

gst_cint

st_mtr_cint_t--

キャリア割り込み制御構造体

構造体

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 58 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

3.4

センサレスベクトル制御ソフト構造体一覧

本制御プログラムで使用する構造体一覧を次に示します。使用されていない構造体は省略します
表 3-42 “r_mtr_parameter.h / 構造体：”st_mtr_parameter_t” 変数一覧
変数

型

Qn

内容

PU

u2_mtr_pp

uint16_t

Q0

-

極対数

s2_mtr_r

int16_t

Q17抵抗(電圧/電流)

抵抗 [PU]s2_mtr_ld

int16_t

インダクタンス(抵抗/角周波数)d 軸インダクタンス [PU]s2_mtr_lq

int16_t

Q18 (1 シャント) /Q19 (3 シャント)
Q18 (1 シャント) /Q19 (3 シャント)

インダクタンス(抵抗/角周波数)q 軸インダクタンス [PU]s2_mtr_m

int16_t

Q15

誘起電圧定数(電圧/角周波数)

誘起電圧定数 [PU]s2_mtr_j

int16_t

Q9 (1 シャント)/Q10 (3 シャント)

イナーシャ(誘起電圧定数×電流×(極対数/角周波数)^2)

イナーシャ [PU]

R01AN7036JJ0110 Rev.1.10
2024.07.16

備考

Page 59 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 3-43 “r_mtr_ctrl_gain.h / 構造体：”st_mtr_design_parameter_t” 変数一覧 (1/2)
変数

型

Qn

内容

PU

備考

f4_acr_nf_hz

float

Q0

-

電流 PI 制御固有周波数 [Hz]f4_asr_nf_hz

float

Q0

-

速度 PI 制御固有周波数 [Hz]f4_acr_deadband_lsb

float

Q0

-

電流 PI 制御デッドバンド [LSB]f4_asr_deadband_lsb

float

Q0

-

速度 PI 制御デッドバンド [LSB]f4_asr_lpf_cof_hz

float

Q0

-

速度 LPF カットオフ周波数 [Hz]f4_acr_lpf_cof_hz

float

Q0

-

電流 LPF カットオフ周波数 [Hz]f4_pll_nf_hz

float

Q0

-

PLL 固有周波数 [Hz]f4_pll_deadband_lsb

float

Q0

-

PLL デッドバンド [LSB]

f4_i_repro_cof_hz

float

Q0

-

電流再現用 LPF カットオフ周波数 [Hz]f4_asr_ki_aug

float

Q0

-

速度 PI 制御積分器増幅率

f4_dt

float

Q0

-

電流制御周期

f4_dt_speed

float

Q0

-

速度制御周期

f4_r

float

Q0

-

抵抗 [Ω]

f4_ld

float

Q0

-

d 軸インダクタンス [H/rad]

f4_lq

float

Q0

-

q 軸インダクタンス [H/rad]

f4_m

float

Q0

-

誘起電圧定数 [V･s/rad]

f4_j

float

Q0

-

イナーシャ [kgm^2/rad^2]

f4_rated_current

float

Q0

-

定格電流 [Arms]

f4_ol_ref_id

float

Q0

-

オープンループ指令 Id [A]f4_ol2cl_speed

float

Q0

-

オープンループからの切り替え速度[rpm]f4_ramp_limit_speed

float

Q0

-

加速度制限値 [rpm/ms]

f4_do_lpf_cof_hz

float

Q0

-

外乱抑制 LPF カットオフ周波数[Hz]f4_do_hpf_cof_hz

float

Q0

-

外乱抑制 HPF カットオフ周波数[Hz]f4_d0_div_pm

float

Q0

-

静止摩擦係数/(極対数×誘起電圧定数) [kg･m^2/(rad･s^2)]

f4_d1_div_p2m

float

Q0

-

動摩擦係数/(極対数^2×誘起電圧定数) [kg･m^2/(rad^2･s)]

f4_damp_hpf_cof_hz

float

Q0

-

ダンピング制御 HPF カットオフ周波数[Hz]f4_damp_zeta

float

Q0

-

ダンピング制御減衰係数

f4_pu_sf_afreq

float

Q0

-

周波数のスケールファクタ

f4_pherr_lpf_cof_hz

float

Q0

-

切り替え制御のための位相誤差の LPF カットオフ周波数[Hz]f4_ol2cl_switch_time

float

Q0

-

切り替え時間[s]f4_fw_pi_nf_hz

float

Q0

-

弱め磁束制御 PI コントローラ固有周波数[Hz］

f4_fw_speed_err_lpf_cof_hz

float

Q0

-

速度偏差 LPF カットオフ周波数 [Hz］

u2_mtr_pp

uint16_t

Q0

-

極対数

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 60 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 3-44 “r_mtr_ctrl_gain.h / 構造体：”st_mtr_design_parameter_t” 変数一覧 (2/2)
変数

型

Qn

内容

PU

備考

u1_q_current

uint8_t

Q0-

電流の Q 値

u1_q_acr_kp

uint8_t

Q0-

電流 PI 比例ゲインの Q 値

u1_q_acr_kidt

uint8_t

Q0-

電流 PI 積分ゲイン＊制御周期の Q 値

u1_q_acr_deadband

uint8_t

Q0-

電流 PI デッドバンドの Q 値

u1_q_asr_kp

uint8_t

Q0-

速度 PI 比例ゲインの Q 値

u1_q_asr_kidt

uint8_t

Q0-

速度 PI 積分ゲイン＊制御周期の Q 値

u1_q_asr_deadband

uint8_t

Q0-

速度 PI デッドバンドの Q 値

u1_q_pll_kp

uint8_t

Q0-

PLL 比例ゲインの Q 値

u1_q_pll_kidt

uint8_t

Q0-

PLL 積分ゲイン＊制御周期の Q 値

u1_q_pll_deadband

uint8_t

Q0-

PLL デッドバンドの Q 値

u1_q_acr_lpf_k

uint8_t

Q0-

電流 LPF ゲインの Q 値

u1_q_asr_lpf_k

uint8_t

Q0-

速度 LPF ゲインの Q 値

u1_q_i_repro_lpf_k

uint8_t

Q0-

電流再現用 LPF ゲインの Q 値

u1_q_do_lpf_k

uint8_t

Q0-

外乱抑制 LPF の Q 値

u1_q_do_hpf_k

uint8_t

Q0-

外乱抑制 HPF の Q 値

u1_q_j_div_tc_p2m

uint8_t

Q0-(イナーシャ) / (LPF の時定数 × 極対^2 × 誘起電圧定数)

u1_q_damp_k

uint8_t

Q0-

ダンピング制御ゲインの Q 値

u1_q_damp_hpf_k

uint8_t

Q0-

ダンピング制御 HPF の Q 値

u1_q_pherr_lpf_k

uint8_t

Q0-

位相誤差 LPF ゲインの Q 値

u1_q_ol2cl_current_k1

uint8_tQ0-

センサレス切り替え処理ゲインの Q 値

u1_q_mtpa_cof_i

uint8_t

Q0-(LD-LQ)/KE 計算の Q 値

u1_q_fw_lpf_k

uint8_tQ0-

弱め磁束制御用 LPF の Q 値

u1_q_fw_kp

uint8_tQ0-

弱め磁束制御 PI 比例ゲインの Q 値

u1_q_fw_kidt

uint8_tQ0-

弱め磁束制御 PI ki * dt の Q 値

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 61 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24
表 3-45変数“r_mtr_ctrl_gain.h / 構造体：”st_mtr_ctrl_gain_t” 変数一覧

型

Qn

内容

PU

備考

s2_acr_id_kp

int16_tQ17

抵抗d 軸電流制御比例ゲイン

s2_acr_id_kidt

int16_tQ19

抵抗d 軸電流制御積分ゲイン×演算周期

s2_acr_iq_kp

int16_tQ17

抵抗q 軸電流制御比例ゲイン

s2_acr_iq_kidt

int16_t

Q19

抵抗q 軸電流制御積分ゲイン×演算周期

s2_asr_kp

int16_t

Q12電流/角周波数

速度制御比例ゲインs2_asr_kidt

int16_t

Q20

電流/角周波数

速度制御積分ゲイン×演算周期

s2_asr_deadband

int16_t

Q0-

速度制御積分項デッドバンド

s2_acr_deadband

int16_t

Q0-

電流制御積分項デッドバンド

s2_asr_lpf_in_k

int16_t

Q15-

速度 LPF 入力係数

s2_acr_lpf_in_k

int16_t

Q15-

電流 LPF 入力係数

s2_do_j_div_tc_p2m

int16_tQ14-

s2_do_lpf_in_k

int16_t

Q15-(イナーシャ) / (LPF の時定数× 極対^2 × 誘起電圧定数)
外乱抑制 LPF 入力係数

s2_do_hpf_k

int16_t

Q15-

外乱抑制 HPF 係数

s2_d0_div_pm

int16_t

Q13-

静止摩擦係数/(極対数×誘起電圧定数)

s2_d1_div_p2m

int16_t

Q19-

動摩擦係数/(極対数^2×誘起電圧定数)

s2_i_repro_lpf_in_k

int16_t

Q15-

電流再現用 LPF 入力係数

s2_pll_kp

int16_tQ15角周波数/角度

PLL 比例ゲインs2_pll_kidt

int16_tQ23角周波数/角度

PLL 積分ゲイン×演算周期

s2_pll_deadband

int16_t

Q0-

PLL 積分項デッドバンド

s2_damp_k

int16_t

速度/電圧s2_damp_hpf_k

int16_t

Q13 (1 シャント) /Q12 (3 シャント)
Q15-

ダンピング制御 HPF 係数

s2_ol2cl_theta2crnt_k0

int16_t

Q13-

角度から電流への変換係数の 0 次成分

s2_ol2cl_theta2crnt_k1

int16_t

Q21-

角度から電流への変換係数の 1 次成分

s2_pherr_lpf_in_k

int16_t

Q15-

位相誤差 LPF 入力係数

s2_mtpa_cof_i

int16_t

Q13-

MTPA 電流係数 (ld - lq) / kes2_fw_kp

int16_t

Q19-

FW PI 比例ゲイン

s2_fw_kidt

int16_t

Q26-

FW PI ki * dt

s2_fw_lpf_in_k

int16_t

Q15-

FW LPF 入力係数

R01AN7036JJ0110 Rev.1.10
2024.07.16

ダンピング制御ゲイン

Page 62 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 3-46 “r_dsp_cc_s.h / 構造体：” st_sincos12” 変数一覧
変数

型

Qn

内容

PU

sin

int16_t

Q14-

正弦 (FIX14)

cos

int16_t

Q14-

余弦 (FIX14)

theta

int16_t

Q121

角度 [rad] (FIX12)

表 3-47
変数

備考“r_dsp_cc_s.h / 構造体：” st_coordinate13” 変数一覧

型

Qn

内容

PU

u

int16_t

Q13-

U 相 (FIX13)

v

int16_t

Q13-

V 相 (FIX13)

w

int16_t

Q13-

W 相 (FIX13)

a

int16_t

Q13-

α 軸 (FIX13)b

int16_t

Q13-

β 軸 (FIX13)

d

int16_t

Q13-

d 軸 (FIX13)

qint16_t

Q13-

q 軸 (FIX13)

angle

st_sincos12

-

-

角度構造体

備考

(FIX n) は固定少数による変数表現で以下の様に定義しています。
1 bit
符号

15-n bit
整数部

R01AN7036JJ0110 Rev.1.10
2024.07.16

n bit
小数部

Page 63 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 3-48 “r_mtr_driver_access.h / 構造体：”st_mtr_ctrl_input_t” 変数一覧 (1/2)
変数

型

Qn

内容

PU

備考

u1_direction

uint8_t

Q0

-

回転方向

u2_offset_calc_cnt

uint16_t

Q0-

オフセット検出時間

s2_ref_speed_rad

int16_t

Q14角周波数

指令速度 [PU]電気角

s2_ramp_limit_speed_rad

int16_tQ14

角周波数

加速度制限値 [PU]電気角

s2_max_speed_rad

int16_t

Q14

角周波数

最大速度 [PU]電気角s2_cl2ol_speed_rad

int16_t

Q14

角周波数

電気角

s2_ol2cl_speed_rad

int16_tQ14

角周波数

s2_ol_ref_id

int16_t

Q13

電流センサレスからオープンループへの切り替え速度[PU]オープンループからセンサレスへの切り替え速度[PU]オープンループ d 軸指令電流[PU]s2_draw_in_wait_cnt

int16_t

Q0-

引き込み時間のカウント回数

s2_init_intg

int16_t

Q13

電流s2_ramp_limit_current

int16_t

Q13

電流センサレス移行時の ASR の積分項
初期値
電流の上昇制限値[PU/ms]

s2_duty_diff_limit

int16_t

Q0-

相間の Duty 偏差のリミット値 1

s2_duty_diff_limit2

int16_t

Q0-

相間の Duty 偏差のリミット値 2s2_mod_3ph2ph_speed_rad

int16_tQ0-s2_mod_2ph3ph_speed_rad

int16_tQ0-s2_ad_point_a_adj_cnt_3ph

int16_tQ0-s2_ad_point_b_adj_cnt_3ph

int16_tQ0-s2_ad_point_a_adj_cnt_2ph

int16_tQ0-s2_ad_point_b_adj_cnt_2ph

int16_tQ0-s2_ad_point_a_adj_cnt

int16_tQ0-

三相変調から二相変調への切り替
え速度
二相変調から三相変調への切り替
え速度
A/D 変換タイミング A の調整値
(三相変調)
A/D 変換タイミング B の調整値
(三相変調)
A/D 変換タイミング A の調整値
(二相変調)
A/D 変換タイミング B の調整値
(二相変調)
A/D 変換タイミング A の調整値

s2_ad_point_b_adj_cnt

int16_t

Q0-

A/D 変換タイミング B の調整値

s2_mod_2ph_bot_change_c
nt

int16_t

Q0-

二相変調遷移カウンタ

R01AN7036JJ0110 Rev.1.10
2024.07.16

電気角【1 シャント
モード時】【1 シャント
モード・二相変調時】【1 シャント
モード時】
【二相変調
時】

Page 64 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 3-49 “r_mtr_driver_access.h / 構造体：”st_mtr_ctrl_input_t” 変数一覧 (2/2)
変数

型

内容

備考
【初期位置検出】-

突極性モータの角度検出における
閾値電流
突極性モータの角度検出の TRX カ
ウント値差分閾値
突極性モータの角度検出の放電時
間
突極性モータの極性検出における
閾値電流
突極性モータの極性検出の TRX カ
ウント値差分閾値
突極性モータの極性検出の放電時
間
非突極性モータの角度検出における閾値電流
非突極性の回転子の角度検出における TRX カウント値差分閾値
非突極性モータの角度検出の放電時間
弱め磁束制御の速度偏差閾値[PU]Q0-

弱め磁束制御 Id 調整定数

unt8_tQ0-

弱め磁束制御 Id pi 積分項減少係数

s2_speed_limit_rate

int16_t

Q0-

ダンピング制御の速度制限値

st_motorst_mtr_parameter_t--

モータパラメータ構造体

st_ctrl_paramst_mtr_design_para
meter_tst_mtr_ctrl_gain_t--

制御パラメータ構造体--

制御ゲイン構造体

QnPU

u2_sal_angle_current

uint16_tQ0-u4_sal_angle_thuint32_tQ0-u2_sal_angle_discharge

uint16_tQ0-u2_sal_polarity_current

Uint16_tQ0-u4_sal_polarity_thuint32_tQ0-u2_sal_polarity_discharge

uint16_t

Q0-

u2_non_sal_current

uint16_t

Q0-

u4_non_sal_thuint32_tQ0-

u2_non_sal_discharge

uint16_tQ0-

s2_fw_speed_th_rad

int16_tQ0s2_fw_id_inc_const

int16_tu1_fw_pi_intg_redct_cof

st_gain_buf【弱め磁束制御/最大トルク制御】【オープン
ループダンピング制御】
構造体

表 3-50 “r_mtr_statemachine.h / 構造体：” st_mtr_statemachine_t” 変数一覧
変数

型

Qn

内容

PU

u1_status

uint8_t

Q0-

モータステータス

u1_status_next

uint8_t

Q0-

遷移後モータステータス

u2_error_status

uint16_t

Q0-

エラーステータス

u1_current_event

uint8_t

Q0-

実行イベント

備考

表 3-51 “r_mtr_est_phase_err.h / 構造体：”st_mtr_est_phe_t” 変数一覧
変数

型

s2_eq

int16_ts2_e

int16_ts2_r_id

int16_ts2_r_iqs2_speed_ld_id

int16_t
int16_tQnQ13

q 軸誘起電圧

Q13

電圧

誘起電圧

Q13

電圧

R×id

Q13

電圧

R×iq

Q13

電圧

速度×Ld×id
速度×Lq×iq
誘起電圧定数の逆数

s2_speed_lq_iq

uint16_t

Q13

電圧

s2_reci_m

int16_t

Q141/誘起電圧定数

R01AN7036JJ0110 Rev.1.10
2024.07.16

内容

PU
電圧

備考

Page 65 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 3-52 “r_mtr_foc_less_speed.h / 構造体：” st_mtr_lpf1_t” 変数一覧
変数型

s2_in_k

int16_ts2_out_k

int16_ts2_pre_out

int16_t

Qn-

LPF 入力ゲイン_t-

LPF 前回出力ゲイン

電流：Q13
速度：Q14
PLL：Q12電流：電流
速度：角周波数
位相：角度

前回出力値

型

Qn

内容

PU

s2_kp

int16_t

電流：Q17
速度：Q12
PLL：Q15電流：抵抗
速度：電流/角周波数
PLL：角周波数/角度

比例ゲイン

s2_kidt

int16_t

電流：Q19速度：Q20
PLL：Q23電流：抵抗
速度：電流/角周波数
PLL：角周波数/角度

積分ゲイン×制御周期

s2_intg

int16_t

電流：Q13
速度：Q14
PLL：Q12

電流：電圧
速度：電流
PLL：角周波数

積分項

s2_ilimit

int16_t

電流：Q13
速度：Q14
PLL：Q12

電流：電圧
速度：電流
PLL：角周波数

積分制限（上下対称）

s2_deadband

Int16_t

電流：Q13
速度：Q14
PLL：Q12電流：電流
速度：角周波数
PLL：角度

積分項デッドバンド

s2_decimal

Int16_t

電流：Q13
速度：Q14電流：電流
速度：角周波数

小数部の格納値

PLL：Q12

PLL：角度

表 3-54
変数

備考“r_mtr_foc_less_speed.h / 構造体：” st_mtr_pi_t” 変数一覧

表 3-53
変数

内容

PU

電流：Q15
速度：Q15
PLL：Q15
電流：Q15
速度：Q15
PLL：Q15

備考“r_mtr_foc_less_speed.h / 構造体：”st_mtr_acr_t” 変数一覧型

s2_ref_id

int16_ts2_ref_iq

int16_ts2_limit_iq

int16_ts2_ol_ref_id

int16_ts2_ramp_limit_current

int16_t

R01AN7036JJ0110 Rev.1.10
2024.07.16

Qn

内容

PU

Q13

電流

d 軸電流指令Q13電流q 軸電流指令Q13電流q 軸電流リミット

Q13

電流

オープンループ d 軸電流指令値

Q13

電流

電流の上昇制限値[PU/ms]

備考

Page 66 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 3-55 “r_mtr_foc_less_speed.h / 構造体：”st_mtr_acr_cint_t” 変数一覧
変数型

u1_flag_err_zero

uint8_t

Q0-

電流偏差 0 フラグ

s2_ctrl_period

int16_t

Q18

時間

電流制御周期

s2_pre_ref_vd

int16_t

Q13

電圧d 軸出力電圧指令前回値

s2_pre_ref_vq

int16_t

Q13

電圧q 軸出力電圧指令前回値

s2_iq_lpf

int16_t

Q13電流q 軸電流 LPF 値

s2_id_lpf

int16_tQ13電流

d 軸電流 LPF 値

st_iq_lpf

st_mtr_lpf1_t--q 軸電流 LPF 構造体

st_id_lpf

st_mtr_lpf1_t--d 軸電流 LPF 構造体

st_pi_id

st_mtr_pi_t--d 軸電流 PI 構造体

st_pi_iq

st_mtr_pi_t--q 軸電流 PI 構造体

表 3-56
変数

Qn

内容

PU

備考
【1 シャントモード時】

構造体“r_mtr_foc_less_speed.h / 構造体：” st_mtr_pll_t” 変数一覧
型

Qn

内容

PU

s2_dt

int16_t

Q18

時間

制御周期

s2_speed_rad

int16_t

Q14

角周波数

速度

st_pi

st_mtr_pi_t--

PI 構造体備考

構造体

表 3-57 “r_mtr_foc_less_speed.h / 構造体：”st_mtr_deadtime_comp_t” 変数一覧
変数

型

Qn

内容

PU

s2_deadtime_error_voltage

int16_t

Q13

電圧

電圧誤差

s2_deadtime_limit_current

int16_t

Q13

電流

電流リミットs2_delta_v_uvw[3]int16_t

Q13電圧

3 相電圧補償値

R01AN7036JJ0110 Rev.1.10
2024.07.16

備考

Page 67 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24“r_mtr_foc_less_speed.h / 構造体：” st_mtr_asr_t” 変数一覧

表 3-58
変数

型

Qn

内容

PU

s1_ref_dir

int8_t--回転方向指令s2_speed_ctrl_period

int16_t

Q15

時間

速度制御周期

s2_ref_speed_rad

int16_t

Q14

角周波数

指令速度

s2_ramp_limit_speed_rad

int16_tQ14

角周波数

加速度制限値s2_ramp_deci_sample_cnt

int16_tQ14

角周波数

加速度制限値の間引き回数

s2_max_speed_rad

int16_t

Q14

角周波数

最大速度

s2_limit_speed_rad

int16_t

Q14

角周波数

制限速度

s2_init_intg

int16_t

Q13

電流センサレス切り替え時積分項初期値

s2_cl2ol_speed_rad

int16_tQ14

角周波数

s2_ol2cl_speed_rad

int16_tQ14

角周波数

s2_d0_div_pm

int16_t

Q13-

センサレスからオープンループ
への切り替え速度
オープンループからセンサレスへの切り替え速度
静止摩擦係数/(極対数×誘起電圧定数)

s2_d1_div_p2m

int16_t

Q19-

動摩擦係数/(極対数^2×誘起電圧定数)

u2_cl2ol_judge_wait_cnt

uint16_t

Q0

-

st_pi

st_mtr_pi_t--

センサレスからオープンループを判断するためのカウンタ
速度 PI 構造体

備考
1：CW
-1：CCW

構造体

表 3-59 “r_mtr_foc_less_speed.h / 構造体：” st_mtr_asr_cint_t” 変数一覧
変数型

st_lpfst_mtr_lpf1_t

Qn
-

内容

PU

備考
構造体

速度 LPF 構造体-

表 3-60 “r_mtr_foc_less_speed.h / 構造体：”st_mtr_mod_t” 変数一覧
変数型

u1_uvw_min_patternuint8_tu1_pre_uvw_min_patternuint8_ts2_2ph_bot_change_cnt

Qn

内容

PU

-

-

相電流最小パターン--

相電流最小パターン前回値

int16_t--

二相変調遷移カウンタ

s2_v_diff_sum

int16_t--

中間から最小の 2 相電圧差の積分

s2_com_v

int16_t

Q13

電圧

電圧オフセット

s2_mod_u

int16_t

Q12-U 相変調率s2_mod_v

int16_t

Q12-V 相変調率s2_mod_w

int16_t

Q12-

W 相変調率s2_reci_vdc

int16_t

Q13

1/電圧

電圧の逆数

s2_limit_vout

int16_t

Q13

電圧

電圧リミットs2_comp_v[3]int16_t

Q13

電圧

デッドタイム補償電圧

R01AN7036JJ0110 Rev.1.10
2024.07.16

備考[二相変調]

Page 68 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 3-61 “r_mtr_foc_less_speed.h / 構造体：”st_mtr_tscs_t” 変数一覧[3 シャントモード時]
変数型

u2_offset_idc_adc

uint16_tu4_offset_iu_sum

uint32_tu4_offset_iv_sum
u4_offset_iw_sum
u4_offset_idc_ad_sum
u2_offset_calc_cnt
u2_offset_sample_cnt

Qnuint32_t
uint32_t
uint32_t
uint16_t
uint16_t

PU

内容

Q0

-

DC リンク電流オフセット値

Q0-

U 相電流オフセット値積分値

Q0-

V 相電流オフセット値積分値

Q0-

W 相電流オフセット値積分値

Q0-

DC リンク電流オフセット値積分値

Q0-

オフセット電流測定回数

Q0-

オフセット電流測定サンプル数

備考

表 3-62 “r_mtr_foc_less_speed.h / 構造体：”st_mtr_tscs_cint_t” 変数一覧[3 シャントモード時]
変数型

s2_duty_u

int16_ts2_duty_v

int16_ts2_duty_w

int16_ts2_offset_iu

int16_ts2_offset_iv

int16_ts2_offset_iw

int16_tu2_crnt_ad[3]Qnuint16_t

PU

内容

Q0

-

U 相 Duty(PWM レジスタ設定値)

Q0-

V 相 Duty(PWM レジスタ設定値)

Q0-

W 相 Duty(PWM レジスタ設定値)

Q0-

U 相電流オフセット値

Q0-

V 相電流オフセット値

Q0-

W 相電流オフセット値

Q13-

UVW 相電流 AD 変換値

備考

表 3-63 “r_mtr_foc_less_speed.h / 構造体：”st_mtr_sscs_t” 変数一覧[1 シャントモード時]
変数型

u2_offset_idc_adc

uint16_tu4_offset_ia_sum

uint32_tu4_offset_ib_sum

uint32_tu2_offset_calc_cnt

uint16_tu2_offset_sample_cnt

uint16_t

R01AN7036JJ0110 Rev.1.10
2024.07.16

Qn

PU

内容

Q0

-

dc 電流オフセット

Q0-

ポイント A 電流オフセット値積分値

Q0-

ポイント B 電流オフセット値積分値

Q0-

オフセット電流測定回数

Q0-

オフセット電流測定サンプル数

備考

Page 69 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 3-64 “r_mtr_foc_less_speed.h / 構造体：”st_mtr_sscs_cint_t” 変数一覧[1 シャントモード時] (1/2)
変数型

u1_drv_pattern_get

uint8_tu1_drv_pattern_set

uint8_tu1_drv_pattern_put

uint8_tu1_flag_ctrl_loop

uint8_tu1_flag_mod_2phuint8_ts2_duty_max

int16_ts2_duty_mid

int16_ts2_duty_min

int16_ts2_duty_u

int16_ts2_duty_v

Qn

内容

PU

備考

Q0

-

変調率大小関係パターン参照

Q0-

変調率大小関係パターン設定

Q0-

変調率大小関係パターン出力

Q0-

制御ループフラグQ0-

二相変調フラグ

Q0-

最大デューティ値

Q0-

中間デューティ値

Q0-

最小デューティ値

Q0-

U 相デューティ値

int16_t

Q0-

V 相デューティ値

s2_duty_w

int16_t

Q0-

W 相デューティ値

s2_duty_max_adj

int16_t

Q0-

最大デューティ調整値

s2_duty_mid_adj

int16_t

Q0-

中間デューティ調整値

s2_duty_min_adj

int16_t

Q0-

最小デューティ調整値

s2_duty_max_adj_comp

int16_t

Q0-

最大デューティ調整補償値

s2_duty_mid_adj_comp

int16_t

Q0-

中間デューティ調整補償値

s2_duty_min_adj_comp

int16_t

Q0-

最小デューティ調整補償値

s2_duty_u_adj

int16_t

Q0-

U 相デューティ調整値

s2_duty_v_adj

int16_t

Q0-

V 相デューティ調整値

s2_duty_w_adj

int16_t

Q0-

W 相デューティ調整値

s2_duty_u_adjc

int16_t

Q0-

U 相デューティ調整補償値

s2_duty_v_adjc

int16_t

Q0-

V 相デューティ調整補償値

s2_duty_w_adjc

int16_t

Q0-

W 相デューティ調整補償値

s2_duty_diff_limit

int16_t

Q0-

デューティ差の最小値

s2_duty_diff_limit_half

int16_t

Q0-

デューティ差の最小値の半分

s2_duty_diff_limit2

int16_t

Q0-

相関の Duty 偏差のリミット値 2s2_ad_point_a_cnt

int16_t

Q0-

A/D 変換ポイント A タイマカウント値

s2_ad_point_b_cnt

int16_t

Q0-

A/D 変換ポイント B タイマカウント値

s2_mod_3ph2ph_speed_rad

int16_tQ0-

三相変調から二相変調への切り替え速度

s2_mod_2ph3ph_speed_rad

int16_tQ0-

二相変調から三相変調への切り替え速度

s2_ad_point_a_adj_cnt_2ph

int16_t-s2_ad_point_b_adj_cnt_2ph

int16_ts2_ad_point_a_adj_cnt_3ph

int16_ts2_ad_point_b_adj_cnt_3ph

int16_t

A/D 変換ポイント A カウント調整値(二相変調)
A/D 変換ポイント B カウント調整値(二相変調)
A/D 変換ポイント A カウント調整値(三相変調)
A/D 変換ポイント B カウント調整値(三相変調)

s2_ad_point_a_adj_cnt

int16_ts2_ad_point_b_adj_cnt

int16_t

R01AN7036JJ0110 Rev.1.10
2024.07.16

Q0
Q0
Q0
Q0

-

Q0

-

A/D 変換ポイント A カウント調整値

Q0-

A/D 変換ポイント B カウント調整値[二相変調]

Page 70 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 3-65 “r_mtr_foc_less_speed.h / 構造体：”st_mtr_sscs_cint_t” 変数一覧[1 シャントモード時] (2/2)
変数

型

Qn

s2_ad_ss_a

int16_ts2_ad_ss_b

int16_ts2_offset_ia

int16_ts2_offset_ib

int16_tu2_state_duty_diff

uint16_tu2_crnt_ad[2]uint16_t

内容

PU

備考

Q0

-

ポイント A A/D 変換結果

Q0-

ポイント A A/D 変換結果

Q0-

ポイント A 電流オフセット値

Q0-

ポイント B 電流オフセット値Q0-

3 相のうち 2 相が一致ステータス

Q0-

AB ポイント電流 AD 変換値

表 3-66 “r_mtr_foc_less_speed.h / 構造体：”st_mtr_common_foc_t” 変数一覧
変数

型

Qn

内容

PU

u2_ctrl_conf

uint16_t

-

-

制御入力

s1_direction

int8_t--

現在の回転方向s2_vdc_ad

int16_t

Q13

電圧

電源電圧

s2_ref_v_d

int16_tQ13

電圧d 軸指令電圧s2_ref_v_q

int16_t

Q13

電圧q 軸指令電圧s2_ref_i_d

int16_t

Q13

電流d 軸指令電流s2_ref_i_q

int16_t

Q13

電流q 軸指令電流s2_ad_i_d

int16_tQ13

電流d 軸検出電流s2_ad_i_q

int16_tQ13

電流q 軸検出電流s2_phe_ed

int16_t

Q13

電圧d 軸誘起電圧s2_phe_phase_err_rad

int16_t

Q12

角度

位相誤差

s2_asr_ref_speed_rad_c
trl
s2_asr_speed_rad

int16_t

Q14

速度

指令速度

int16_t

Q14

速度

速度積分値

s2_damp_ref_speed_rad_ctrl

int16_t

Q14

速度

ダンピング指令速度

R01AN7036JJ0110 Rev.1.10
2024.07.16

備考
0x01：電流制御
0x02：速度制御
0x04：位置制御
0x08：トルク制御
0x10：電圧制御
1：CW-1：CCW

Page 71 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 3-67 “r_mtr_foc_less_speed.h / 構造体：”st_mtr_common_cint_t” 変数一覧
変数

型

Qn

内容

PU

u2_ctrl_conf

uint16_t

-

-

制御入力

s1_direction

int8_t--

現在の回転方向s2_vdc_ad

int16_t

Q13

電圧

電源電圧

s2_ref_v_d

int16_tQ13

電圧d 軸指令電圧s2_ref_v_q

int16_t

Q13

電圧q 軸指令電圧s2_ref_i_d

int16_t

Q13

電流d 軸指令電流s2_ref_i_q

int16_t

Q13

電流q 軸指令電流s2_ad_i_d

int16_tQ13

電流d 軸検出電流s2_ad_i_q

int16_tQ13

電流q 軸検出電流s2_phe_ed

int16_t

Q13

電圧d 軸誘起電圧s2_phe_phase_err_rad

int16_t

Q12

角度

位相誤差

s2_asr_ref_speed_rad_c
trl
s2_asr_speed_rad

int16_t

Q14

速度

指令速度

int16_t

Q14

速度

速度積分値

s2_damp_ref_speed_rad_ctrl

int16_t

Q14

速度

ダンピング指令速度

備考
0x01：電流制御
0x02：速度制御
0x04：位置制御
0x08：トルク制御
0x10：電圧制御
1：CW-1：CCW

表 3-68 “r_mtr_foc_less_speed.h / 構造体：” st_mtr_foc_t” 変数一覧 (1/2)
変数

型

Qn

PU

s2_damp_speed

int16_t

Q14

速度

ダンピング速度出力内容

備考

s2_damp_ref_speed_rad_ctrl
s2_limit_over_voltage

int16_t

Q14

速度

ダンピング指令速度

int16_t

Q13

電圧

過電圧リミット値

s2_limit_under_voltage

int16_t

Q13

電圧

低電圧リミット値

u1_flag_charge_cap

uint8_t--0：オフセット計算処理実行
1：オフセット計算処理終了

u1_flag_down_to_ol

uint8_t--

電流オフセット値計算
フラグ
オープンループ遷移フラグ

u1_flag_draw_in

uint8_t--

引き込みフラグ

0：未到達
1：到達

u1_state_drive

uint8_t--

ドライブモードのステータス

u1_state_ref_id

uint8_t--d 軸電流指令値生成ステータス

0：オフセット除去中
1：オフセット除去完了
2：IPD 処理実行
3：IPD 処理完了
4：駆動開始5：d 軸電流 0 駆動
6：ブレーキ処理
7：駆動停止0：d 軸電流 01：d 軸電流直接制御
2：弱め磁束制御/最大トルク制御

u1_state_ref_iq

uint8_t--q 軸電流指令値生成ステータス

0：移行なし1：移行実行

0：q 軸電流 0
1：q 軸電流直接制御
2：センサレス切り替え制御
3：速度 PI 出力

u1_state_ref_speed

uint8_t

R01AN7036JJ0110 Rev.1.10
2024.07.16--

速度指令値生成ステータス

0：速度 01：速度変化

Page 72 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 3-69 “r_mtr_foc_less_speed.h / 構造体：”st_mtr_foc_t” 変数一覧 (2/2)
変数

型

Qn

内容

PU

備考

u2_draw_in_wait_cntu2_draw_in_wait_cn
t_buffu2_draw_in_time_ca
lc_cntu2_run_mode

uint16_t

Q0-

引き込み時間のカウント回数

uint16_t

Q0-

uint16_t

Q0-

引き込み時間のカウント回数
バッファ
引き込み時間の回数

uint16_t

-

-

運転モード

0x00：Init モード
0x01：Boot モード
0x02：Drive モード
0x03：Analysis モード
0x04：Tune モード

u2_error_status

uint16_t--

エラーステータス

0x0000：エラーなし
0x0001：過電流エラー(H/W)
0x0002：過電圧エラー
0x0004：回転速度エラー
0x0008：ホールタイムアウトエラー
0x0010：誘起電圧タイムアウトエラー
0x0020：ホールパターンエラー
0x0040：誘起電圧パターンエラー
0x0080：低電圧エラー
0x0100：過電流エラー(S/W)
0x0200：TRX オーバフローエラー
0xFFFF：未定義エラー

u1_flg_foc_run

uint8_t--

50us 周期制御の実行フラグ

0：周期制御の停止
1：周期制御の実行

u1_flg_get_vdc

uint8_t--インバータ母線電圧の取得フラグ0：取得する

u1_flag_rdy_trans_faa
u1_flag_pack

uint8_t---uint8_t---

st_stm--ステートマシン構造体

st_tscs

st_mtr_statem
achine_t
st_mtr_tscs_t--

3 相電流検出構造体[3 シャントモード時]

st_sscs

st_mtr_sscs_t--

1 シャント抵抗電流検出構造体[1 シャントモード時]

st_acrst_mtr_acr_t--

ACR 構造体

電流 PI 制御

st_asrst_mtr_asr_t--

ASR 構造体

速度 PI 制御

st_ipdst_mtr_ipd_t--

初期位置検出用構造体

st_m2fst_mtr_mtpa2f
w_t

-

-

st_ol2cl

st_mtr_ol2cl_t--

st_pe_lpf

st_mtr_lpf1_t--

最大トルク＆弱め磁束制御用
構造体
センサレス切り替え制御構造体
位相誤差 LPF 構造体

s2_phase_err_lpf_radst_do

int16_t

Q14

速度位相誤差 LPF

st_mtr_do_t--

外乱抑制構造体

st_common

st_mtr_common_foc_t--

1ms 周期/50us 周期共通構造体

R01AN7036JJ0110 Rev.1.10
2024.07.16

1：取得しない

Page 73 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24
表 3-70“r_mtr_foc_less_speed.h / 構造体：”st_mtr_cint_t” 変数一覧
Qn

PU

内容

s2_limit_over_current

変数
int16_t

型

Q13

電流

過電流リミット値

備考

u1_flag_over_current

uint8_t---st_ad_ist_coordinate13--

ADC 電流座標系

st_ref_v

st_coordinate13--

指令電圧座標系

st_ref_i

st_coordinate13--

指令電流座標系

st_i_repro

st_coordinate13--

再現電流座標系

st_iq_repro

st_mtr_lpf1_t--

電流再現用 q 軸電流 LPF

st_id_repro

st_mtr_lpf1_t--

電流再現用 d 軸電流 LPF

st_motorst_mtr_parameter_t--

モータパラメータ構造体

st_phest_mtr_est_phe_t--

位相誤差推定構造体

st_tscs

st_mtr_tscs_cint_t--

3 相電流検出構造体[3 シャントモード時]

st_sscs

st_mtr_sscs_cint_t--

1 シャント抵抗電流構造体[1 シャントモード時]

st_acrst_mtr_acr_cint_t--

ACR 構造体

電流 PI 制御

st_asrst_mtr_asr_cint_t--

ASR 構造体

速度 PI 制御

st_modst_mtr_mod_t

-

-

変調構造体

st_pllst_mtr_pll_t--

PLL 制御構造体

st_dt_comp

st_mtr_deadtime_comp_t--

デッドタイム補償構造体

st_common

st_mtr_common_cint_t--

1ms 周期/50us 周期共通構造体

表 3-71 “r_mtr_foc_less_speed.h / 構造体：”st_mtr_data _t” 変数一覧
変数

型

Qn

PU

内容

p_st_foc

st_mtr_foc_t--

1ms 周期制御構造体のポインタ

p_st_cint

st_mtr_cint_t--

50us 周期制御構造体のポインタ

R01AN7036JJ0110 Rev.1.10
2024.07.16

備考

Page 74 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 3-72 “r_mtr_ipd.h / 構造体：”st_mtr_ipd_t” 変数一覧
変数

型

Qn

内容

PU

備考

u1_state_ipd

uint8_t

Q0-

初期位置検出ステート

u1_judge_sal

uint8_t

Q0-

突極性判定結果

u1_flag_cmp_intr

uint8_t

Q0-

CMP 割り込み発生フラグ

u2_sal_angle_current

uint16_t

Q0-

突極性モータの角度検出における閾値電流

u1_sal_angle_cnt

uint8_t

Q0-

突極性モータの角度検出の測定回数

u2_sal_polarity_current

uint16_t

Q0-

突極性モータの極性検出における閾値電流

u1_sal_polarity_cnt

uint8_t

Q0-

突極性モータの極性検出の測定回数

u1_sal_polarity

uint8_tQ0-

極性検出結果u2_non_sal_current

uint16_t

Q0-

非突極の回転子の角度検出における閾値電流

u1_non_sal_cnt

uint8_tQ0-

非突極性の回転子の角度検出測定回数

u1_init_position

uint8_t

Q0-

初期位置検出判定結果

u2_temp_trx_cnt

uint16_t

Q0-

TRX カウント値取得

u2_sal_angle_discharge

uint16_t

Q0-

突極性モータの角度検出の放電時間

u2_sal_polarity_discharge

uint16_t

Q0-

突極性モータの極性検出の放電時間

u2_non_sal _discharge

uint16_t

Q0-

非突極性モータの角度検出の放電時間

u4_sal_angle_trx_sum[3]uint32_t

Q0-

突極性モータの角度検出の TRX カウント値

u4_sal_check_trx_sum

uint32_tQ0-

突極性検出時の TRX カウント値

u4_sal_polarity_trx_sum[2]uint32_t

Q0-

突極性モータの極性検出の TRX カウント値

u4_non_sal_trx_sum[6]uint32_tQ0-u4_sal_angle_trx_diff

uint32_tQ0-u4_sal_polarity_trx_diff

uint32_t

Q0-

u4_non_sal_trx_diff

uint32_tQ0-u4_sal_angle_thuint32_tQ0-u4_sal_angle_per

uint32_tQ0-u4_sal_polarity_thuint32_tQ0-u4_sal_polarity_per

uint32_t

Q0-

u4_non_sal_thuint32_t

Q0-

u4_non_sal_per

uint32_tQ0-

非突極性の回転子の角度検出の TRX カウン
ト値
突極性モータの角度検出の TRX カウント値
差分
突極性モータの極性検出の TRX カウント値
差分
非突極性の回転子の角度検出における TRX
カウント値差分
突極性モータの角度検出の TRX カウント値
差分閾値
突極性モータの角度検出の TRX カウント値
差分閾値の割合
突極性モータの極性検出の TRX カウント値
差分閾値
突極性モータの極性検出の TRX カウント値
差分閾値の割合
非突極性の回転子の角度検出における TRX
カウント値差分閾値
非突極性の回転子の角度検出における TRX
カウント値差分閾値の割合

R01AN7036JJ0110 Rev.1.10
2024.07.16【初期位置検出】

Page 75 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 3-73 “r_mtr_mtpa2fw_ctrl.h” / 構造体：”st_mtr_mtpa2fw_t” 変数一覧
変数

型

Qn

内容

PU

備考

Q13

電流

最大電流[PU]Q13

電圧

電圧リミット[PU]int16_tQ13電流

d 軸電流リミット[PU]s2_iq_lim

int16_t

Q13電流q 軸電流リミット[PU]s2_ref_id

int16_t

Q13

電流d 軸指令電流[PU]s2_ref_iq

int16_t

Q13

電流q 軸指令電流[PU]s2_mtr_r

int16_t

Q17

抵抗

抵抗[PU]

s2_mtr_ld

int16_t

インダクタンスd 軸インダクタンス[PU]s2_mtr_lq

int16_t

Q18 (1 shunt) /Q19 (3 shunt)
Q18 (1 shunt) /Q19 (3 shunt)

インダクタンスq 軸インダクタンス[PU]s2_mtr_m

int16_t

Q15

誘起電圧係数

誘起電圧係数[PU]s2_mtpa_ref_id

int16_t

Q13

電流

MTPA の d 軸電流値[PU]s2_va_max_gain_fp

int16_t

Q13

電圧

Va_max 算出ゲイン[PU]s2_mtpa_cof_i

int16_t

Q13

電流

MTPA 電流係数 (ld - lq) / ke[PU]s2_speed_err_th_rad

int16_t

Q14

速度速度偏差しきい値 [PU]s2_speed_err_rad

int16_tQ14

速度速度偏差[PU]s2_speed_err_rad_lpf

int16_t

Q14

速度速度偏差 LPF [PU]s2_va

int16_t

Q13

電圧

電圧振幅 [PU]s2_vd

int16_t

Q13電圧

d 軸電圧 [PU]s2_vq

int16_t

Q13電圧q 軸電圧 [PU]s2_fw_pi_ref_id

int16_t

Q13

電流

PI 出力 d 軸電流[PU]s2_fw_ref_id

int16_tQ13電流

d 軸電流指令値[PU]s2_fw_ref_id_ctrl

int16_tQ13電流

d 軸電流指令制御量[PU]s2_limit_current

int16_t

Q13

電流

電流リミット値[PU]s2_ramp_limit_current

int16_t

Q13

電流

電流増加減リミット値[PU]s2_fw_id_inc_const

int16_t

Q13

電流

Id 調整定数[PU]u1_fw_pi_intg_redct_cof

uint8_t-s2_ia_max

int16_ts2_vlimint16_ts2_id_lim

R01AN7036JJ0110 Rev.1.10
2024.07.16

Id PI 積分項減少係数

Page 76 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 3-74 “r_mtr_mtpa2fw_ctrl.h” / 構造体：”st_mtr_mtpa2fw_t” 変数一覧(2/2)
変数

型

Qn

内容

PU

備考

u1_q_iq_mtpa_cofi_calc

uint8_t--

iq * (ld - lq) / ke の Q 値

u1_q_voltage

uint8_t--

電圧の Q 値

u1_q_current

uint8_t--

電流の Q 値

u1_q_id_mtpa_calc

uint8_t--

MTPAId 指令値の Q 値

u1_q_r_mul_i

uint8_t--

抵抗×電流の Q 値

u1_q_speed_mul_l

uint8_t--

速度×インダクタンスの Q 値

u1_q_speed_mul_m

uint8_t--

速度×誘起電圧係数の Q 値

u1_q_wl_mu_i

uint8_t--

ωL×電流の Q 値

u1_q_fw_kp

uint8_t--

弱め磁束制御 PI 比例ゲインの Q 値

u1_q_fw_kidt

uint8_t--

弱め磁束制御 PI ki * dt の Q 値

u1_q_fw_lpf_co

uint8_t--

弱め磁束制御 LPF の Q 値

u1_pi_on_flag

uint8_t--

PI ON フラグ

u1_hys_flag

uint8_t--

ヒステリシスフラグ

st_pi

st_mtr_fw_pi_t--

PI 制御器構造体

st_lpfst_mtr_fw_lpf1_t--

1 次の LPF 構造体“r_mtr_mtpa2fw_ctrl.h / 構造体：” st_mtr_fw_pi_t” 変数一覧

表 3-75
変数

型

s2_kp

int16_ts2_kidt

int16_ts2_intg

int16_ts2_ilimit

int16_ts2_deadband

Int16_t

Qn

内容

PU

Q12

電圧/電流

比例ゲイン

Q19

電圧/電流

積分ゲイン×制御周期

Q26

電圧

積分項

Q26

電圧

積分制限（上下対称）

Q26

電流

積分項デッドバンド

備考

表 3-76 “r_mtr_mtpa2fw_ctrl.h” / 構造体：”st_mtr_fw_lpf1_t” 変数一覧
変数型

s2_in_k

int16_ts2_out_k

int16_ts2_pre_out

int16_t

Qn

内容

PU

Q15

-

LPF 入力ゲイン

Q15-

LPF 前回出力ゲイン

Q13

電流

前回出力値

備考

表 3-77 “r_mtr_ol2cl.h” / 構造体：”st_mtr_hpf1_t” 変数一覧
変数

型

Qn

内容

PU

Q15

-

HPF ゲインQ13

電圧

入力の前回値

int16_t

Q13

電圧

出力の前回値

int16_t

Q0-

HPF ゲイン Q 値

s2_k

int16_ts2_pre_input

int16_ts2_pre_output
u1_q_hpf_co

R01AN7036JJ0110 Rev.1.10
2024.07.16

備考

Page 77 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24
表 3-78変数“r_mtr_ol2cl.h” / 構造体：”st_mtr_damp_t” 変数一覧

型

内容

備考

Qn

PU

s2_k

int16_t

Q13 (1 シャント) /Q12 (3 シャント)

速度/電圧

ダンピング制御ゲイン

s2_speed_limit_rate

int16_t

Q14

速度

速度リミットu1_q_damp_speed_calc

uint8_t

Q0-

ダンピング制御速度 Q 値

u1_q_damp_speed_limit_calc

uint8_t

Q0-

ダンピング制御速度リミット Q 値

st_hpfst_mtr_hpf1_t--

HPF 構造体

表 3-79 “r_mtr_ol2cl.h” / 構造体：”st_mtr_ol2cl_t” 変数一覧
変数

型

Qn

内容

PU

int16_ts2_temp_ramp_limit_current

int16_t

Q13

電流切り替え処理時の電流の上昇制限値[A/ms]
電流の上昇制限値[A/ms]の一時保存データ

s2_q_axis_current

int16_t

Q13

電流切り替え処理時の q 軸電流s2_theta2crnt_k0

int16_t

Q13-

基準電流 = k0 + k1 × (位相誤差)s2_theta2crnt_k1

int16_t

Q21-

基準電流 = k0 + k1 × (位相誤差)s2_cl_swich_phase_err_rad

int16_t

Q12

角度センサレス切り替え処理時の位相誤差

u2_switch_cnt

uint16_t

Q0-

切り替え時間[cnt]u1_q_theta2crnt_k1

uint8_t

Q0-

基準電流の角度誤差のための Q 値

u1_q_idelta_calc

uint8_t

Q0-

電流の q 軸成分算出のための Q 値

st_ph_err

st_sincos12--

位相誤差の角度構造体

Q13

電流

備考

s2_ramp_limit_current

表 3-80 “r_mtr_disturb_suppress.h” / 構造体：”st_mtr_do_lpf1_t” 変数一覧
変数型

s2_in_k

int16_ts2_out_k

int16_ts2_pre_out

int16_t

Qn

内容

PU

Q15

-

LPF 入力ゲイン

Q15-

LPF 前回出力ゲイン

Q13

電流

前回出力値

備考

表 3-81 “r_mtr_disturb_suppress.h” / 構造体：”st_mtr_do_hpf1_t” 変数一覧
変数

型

Qn

内容

PU

Q15

-

HPF ゲインQ13

電流

入力の前回値

int16_t

Q13

電流

出力の前回値

uint8_t

Q0-

HPF ゲインの Q 値

s2_k

int16_ts2_pre_input

int16_ts2_pre_output
u1_q_hpf_co

R01AN7036JJ0110 Rev.1.10
2024.07.16

備考

Page 78 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 3-82 “r_mtr_disturb_suppress.h” / 構造体：” st_mtr_do_t” 変数一覧
変数

型

Qn

内容

PU

Q0

-

HPF 係数計算の Q 値

Q0-

LPF 係数計算の Q 値

uint8_t

Q0-

LPF の Q 値

s2_ref_current_buff

int16_t

Q13

電流

基準電流のバッファ値

s2_j_div_tc_p2m

int16_t-s2_disturbance

int16_t

Q13

電流(イナーシャ) / (LPF の時定数× 極対^2 ×誘起電圧定数)
外乱

st_lpfst_mtr_do_lpf1_t--

1 次 LPF 構造体

st_hpfst_mtr_do_hpf1_t--

1 次 HPF 構造体

u1_q_calc_hpf

uint8_tu1_q_calc_lpf

uint8_tu1_q_lpf_lpf_co

R01AN7036JJ0110 Rev.1.10
2024.07.16

Q26

備考

Page 79 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

3.5

センサレスベクトル制御ソフトマクロ定義一覧

本制御プログラムで使用するマクロ定義一覧を次に示します。
表 3-83 “r_mtr_config.h” マクロ定義一覧
マクロ

定義値

内容

IP_MCEK_1SHUNT-

インバータボードの選択

MP_TG_55L_KA-

モータパラメータの選択

CP_TG_55L_KA-

制御パラメータの選択

SINGLE_SHUNT

0

1 シャントモード

THREE_SHUNT

1

3 シャントモード

CURRENT_SENS_METHOD

電流検出方式 注 1

USE_DEADTIME_COMPSINGLE_SHUNTTHREE_SHUNT
0:1

USE_SPEED_LPF
USE_CURRENT_LPF_IQ

備考

デフォルト設定 1

0:1

デッドタイム補償使用の選択(1:Enable 0:Disable)
速度 LPF 使用の選択(1:Enable 0:Disable)

0:1

q 軸電流 LPF 使用の選択(1:Enable 0:Disable)

デフォルト設定 0

USE_CURRENT_LPF_ID

0:1d 軸電流 LPF 使用の選択(1:Enable 0:Disable)

デフォルト設定 0

USE_MTPA_AND_FW

0:1

デフォルト設定 1

USE_OPENLOOP_DAMPING

0:1

USE_DUTY_2PH_CROS_COMP

0:1

USE_OL2CL_CTRL

0:1

USE_DISTURBANCE_SUPPRESS

0:1

PS_IPD_SAL

0

弱め磁束制御/最大トルク制御使用の選択(1:Enable 0:Disable)
オープンループダンピング制御使用の選択(1:Enable 0:Disable)
2 相 Duty クロス時の電流補償(1:Enable 0:Disable)
センサレス切り替え制御使用の選択(1:Enable 0:Disable)
外乱抑制使用の選択(1:Enable 0:Disable)
突極モータ向け初期位置検出

PS_IPD_NON_SAL

1

非突極モータ向け初期位置検出

PS_IPD_UNKNOWN

2

突極情報無しモータ向け初期位置検出

PS_DRAW_IN

3

引き込み

PS_METHOD

始動準備方式

MOD_3PH_SPWM

PS_IPD_SAL
PS_IPD_NON_SAL
PS_IPD_UNKNOWN
PS_DRAW_IN
0

MOD_3PH_TOW

1

3 次高調波加算

MOD_2PH_BOT

2

二相変調

MOD_METHOD

MOD_3PH_SPWM
MOD_3PH_TOW
MOD_2PH_BOT

変調方式

デフォルト設定 1

デフォルト設定 1
デフォルト設定 1
デフォルト設定 0
デフォルト設定 0

デフォルト設定
PS_IPD_SAL

正弦波変調

デフォルト設定
MOD_3PH_TOW

注 1：本マクロの切り替えを行う場合、config フォルダ内の電流検出に関わるパラメータを適宜設定してください。

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 80 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 3-84 “r_mtr_motor_parameter.h”マクロ定義一覧
マクロ名

定義値

備考

備考

MP_POLE_PAIRS

2

極対数

MP_RESISTANCE

9.125f

抵抗 [Ω]

MP_D_INDUCTANCE

0.003844f

d 軸インダクタンス [H]

MP_Q_INDUCTANCE

0.004315f

q 軸インダクタンス [H]

MP_BEMF_CONSTANT

0.02144f

誘起電圧定数 [V･s/rad]

MP_ROTOR_INERTIA

0.00000205f

イナーシャ [kg･m^2/(rad^2)]

MP_FRICTION_0TH_ORDER

0.002748f

静止摩擦係数 [kg･m^2/(rad･s^2)]

MP_FRICTION_1ST_ORDER

0.000001873f

動摩擦係数 [kg･m^2/(rad^2･s)]

MP_RATED_CURRENT

0.42f

定格電流 [A]

MP_RATED_SPEED

2650

定格速度 [rpm]

STAR

0

スター結線

DELTA

1

デルタ結線

MP_MOTOR_WIRE_CONNECTION

STAR

モータの結線方式の選択

デフォルト設定

スター結線 or デルタ
結線

DELTA

表 3-85 “r_mtr_control_parameter.h”マクロ定義一覧 [1/3]
マクロ名

定義値

備考

備考

CP_PWM_TIMER_FREQ

96.0f

PWM タイマ周波数 [MHz]CP_INTVAL_TIMER_FREQ

48.0f

インターバル・タイマ周波数 [MHz]

CP_CARRIER_FREQ

20.0f

PWM キャリア周波数

CP_TRX_TIMER_FREQ

96.0f

TRX タイマ周波数 [MHz]CP_INT_DECIMATION

1

割り込み間引き回数

CP_V_PHASE_LEAD_COEF

1

電圧の位相進み係数

CP_SPEED_CTRL_PERIOD

0.001f

速度制御周期 [秒]CP_AD_CONVERSION_TIME

1.14583f

A/D 変換時間

CP_AD_RINGING_WAIT_CNT

264

A/D 変換安定待ち調整値

CP_AD_RINGING_WAIT_2PH_CNT

264

A/D 変換安定待ち調整値(二相変調)

CP_ACR_NF_HZ

500

電流 PI 制御固有周波数 [Hz]

CP_ASR_NF_HZ

11.19f

速度 PI 制御固有周波数 [Hz]

CP_PLL_NF_HZ

55.95f

PLL 制御固有周波数 [Hz]CP_ACR_DEADBAND_LSB

0.05f

電流 PI のデッドバンド [LSB]

CP_ASR_DEADBAND_LSB

0.05f

速度 PI のデッドバンド [LSB]

CP_PLL_DEADBAND_LSB

0.05f

PLL 制御のデッドバンド [LSB]

CP_ASR_LPF_COF_HZ

139.88f

速度 LPF のカットオフ周波数[Hz]CP_ACR_LPF_COF_HZ

2000

電流 LPF のカットオフ周波数[Hz]CP_I_REPRO_COF_HZ

2000

電流再現用 LPF のカットオフ周波数

CP_ASR_KI_AUG

8

速度 PI 制御積分器増幅率

CP_MAX_SPEED_RPM

4300 (1 シャント) /3900 (3 シャント)

最大速度(機械角)[rpm]

CP_SPEED_LIMIT_RPM

5590 (1 シャント) /4290 (3 シャント)

制限速度(機械角)[rpm]

CP_OC_LIMIT

1.47f

過電流リミット値 [A]

CP_OL_REF_ID

0.42fd 軸電流指令値 [A][Hz]

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 81 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 3-86 “r_mtr_control_parameter.h” マクロ定義一覧 [2/3]
マクロ名

定義値

備考

備考

CP_DRAW_IN_WAIT_TIME

0.2f

引き込み待ち時間

CP_INIT_ASR_INTEG

0.181244f

q 軸電流 PI 積分項初期値 [A]

CP_LAMP_LIMIT_CURRENT

0.00084f

CP_MOD_3PH2PH_SPEED_RPM

1060

CP_MOD_2PH3PH_SPEED_RPM

927

CP_OL2CL_SPEED_RPM

795

CP_CL2OL_SPEED_RPM

530

CP_CL2OL_JUDGE_WAIT_TIME

28.302f電流の上昇制限値[PU/ms]
3 相変調から 2 相変調への切り替え
速度[rpm]2 相変調から 3 相変調への切り替え
速度[rpm]
センサレスからオープンループ
への切り替え速度(機械角)[rpm]
オープンループからセンサレスへの切り替え速度(機械角)[rpm]
オープンループ判定の待ち時間 [ms]CP_LAMP_LIMIT_SPEED_RPM

1.677845f

加速度制限値 [rpm/ms]

CP_RAMP_SPEED_CNT_DECIMATION0

加速度制限の間引き回数

CP_OFFSET_CALC_TIME

128

電流オフセット値計算回数

CP_OFFSET_CALC_ST_WAIT_CNT

100

電融オフセット安定待ち回数

CP_AD_POINT_A_ADJ_CNT

264

A/D 変換タイミング A の調整値

CP_AD_POINT_B_ADJ_CNT

264

A/D 変換タイミング B の調整値

CP_AD_POINT_A_ADJ_2PH_CNT

264

A/D 変換タイミング A の調整値

CP_AD_POINT_B_ADJ_2PH_CNT

100

A/D 変換タイミング B の調整値

[1 シャントモー
ド・二相変調]CP_MOD_2PH_BOT_CHANGE_CNT

200

二相変調遷移カウンタ[二相変調]

CP_SAL_ANGLE_CURRENT

0.25f

突極性モータの角度検出における閾
値電流[A]【初期位置検出】

CP_ SAL _ANGLE_TRX_THRESHOLD

1012

突極性モータの角度検出の TRX カ
ウント値差分閾値CP_ SAL _ANGLE_DISCHARGE

601

突極性モータの角度検出の放電時間

CP_ SAL _POLARITY_CURRENT

0.42f

突極性モータの極性検出における閾
値電流[A]

CP_ SAL _POLARITY_TRX_ THRESHOLD

1019

突極性モータの極性検出の TRX カ
ウント値差分閾値CP_ SAL _POLARITY_DISCHARGE

745

突極性モータの極性検出の放電時間

CP_NON_SAL_CURRENT

0.4f

非突極性モータの角度検出における
閾値電流[A]

CP_NON_SAL_TRX_ THRESHOLD

852

非突極性モータの角度検出の TRX
カウント値差分閾値CP_NON_SAL_DISCHARGE

689

非突極性モータの角度検出の放電時
間

CP_IPD_NOISE_AVOID_CNT

97

ノイズ回避回数

CP_FW_CURRNT_LIMIT_RATIO

0.5f

弱め磁束制御の電流制限比

CP_FW_PI_NF_HZ

0

弱め磁束制御の PI 固有周波数[Hz]

CP_FW_SPEED_ERR_THRESHOLD_RPM

20

弱め磁束制御の速度偏差閾値

CP_FW_SPEED_ERR_LPF_COF_HZ

10弱め磁束制御の速度偏差 LPF カット
オフ周波数[Hz]

CP_FW_ID_INC_CONST

1

弱め磁束制御の Id 調整定数

CP_FW_PI_INTG_REDCT_COEF

2

弱め磁束制御の Id 積分項低減係数

R01AN7036JJ0110 Rev.1.10
2024.07.16[1 シャントモー
ド・二相変調][1 シャントモー
ド][弱め磁束制御/最大トルク制御]Page 82 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 3-87 “r_mtr_control_parameter.h” マクロ定義一覧 [3/3]
マクロ名

定義値

備考

備考
[オープンループ
ダンピング制御]

CP_DAMP_HPF_COF_HZ

5

ダンピング制御の HPF カットオフ
周波数

CP_DAMP_ZETA

1

ダンピング制御減衰係数

CP_DAMP_SPEED_LIMIT_RATE

0.2f

ダンピング制御速度リミット

CP_PHASE_ERR_LPF_COF_HZ

10

センサレス切り替え制御のための位
相誤差 LPF カットオフ周波数[Hz]

CP_OL2CL_SWITCH_TIME

0.1095f

センサレス切り替え時間[s]CP_OL2CL_SWITCH_ANGLE_MIN

5

オープンループ切り替え最小角度

CP_DO_LPF_COF_HZ

0.001f[センサレス切り
替え処理]

[deg]
外乱抑制 LPF [Hz]

[外乱抑制]

表 3-88 “r_mtr_inverter_parameter.h” マクロ定義一覧
マクロ

定義値

内容

IP_DEADTIME

1.0f

デッドタイムIP_CURRENT_RANGE

10電流スケーリングレンジ [A]

IP_VDC_RANGE

111

電圧スケーリングレンジ [V]IP_INPUT_V

24

入力電圧 [V]

IP_CURRENT_LIMIT

4.5f

電流リミット値 [A]

IP_OVERVOLTAGE_LIMIT

28

過電圧リミット [V]

IP_UNDERVOLTAGE_LIMIT

12低電圧リミット [V]IP_DC_SHUNT_RESISTANCE

0.01f

DC リンクシャント抵抗[Ω]IP_DC_AMPLIFICATION_GAIN

50

DC リンク電流増幅ゲイン

IP_BSC_CHARGE_TIME

150

ブートストラップコンデンサ充電時間

IP_CHARGE_CAP_WAIT_CNT

350

DC コンデンサの充電時間

R01AN7036JJ0110 Rev.1.10
2024.07.16

備考

Page 83 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 3-89 “r_mtr_scaling_parameter.h” マクロ定義一覧 [1/2]
マクロ

定義値

FP_SF_VOLTAGE

37888

FP_SF_CURRENT

195047

PU_BASE_CURRENT_
A
PU_BASE_VOLTAGE_V

MP_RATED_CURRENT

内容

備考

電圧 PU 変換値(((IP_VDC_RANGE)×PU_SF_VOLTAGE)
×(1<<MTR_Q_VOLTAGE))の値を設定
電流 PU 変換値(((IP_CURRENT_RANGE)×PU_SF_CURRENT)
×(1<<MTR_Q_CURRENT)) の値を設定
電流基準値 [A]
電圧基準値 [V]

PU_BASE_ANGLE_Rad

IP_INPUT_V
MTR_TWOPI*(CP_MAX_SPEED_RPM+1)*MP_POLE_PAIRS/60
1.0f

PU_SF_CURRENT

1.0f / PU_BASE_CURRENT_A

電流スケール [1/A]

PU_SF_VOLTAGE

1.0f / PU_BASE_VOLTAGE_V

電圧スケール [1/V]

PU_SF_AFREQ

1.0f / PU_BASE_FREQ_Hz

角周波数スケール [s /rad]

PU_SF_ANGLE

1.0f / PU_BASE_ANGLE_Rad

角度スケール [1/rad]

PU_SF_TIME
PU_SF_RES

時間スケール [1/s]

PU_SF_IND

PU_SF_ANGLE / PU_SF_AFREQ
PU_SF_VOLTAGE/ PU_SF_CURRENT
PU_SF_RES / PU_SF_AFREQ

PU_SF_BEMF_CONST

PU_SF_VOLTAGE / PU_SF_AFREQ

誘起電圧定数スケール [rad/(V･s)]

PU_SF_INERTIA

イナーシャスケール [rad^2/kg･m^2]

PU_SF_D1_DIV_P2M

PU_SF_BEMF_CONST*
PU_SF_CURRENT / (MP_POLE_PAIRS *MP_POLE_PAIRS * PU_SF_AFREQ *PU_SF_AFREQ)(PU_SF_CURRENT / PU_SF_AFREQ)

PU_SF_RPM_RAD

1.0f / (CP_MAX_SPEED_RPM+1)

動摩擦係数/ (極対数^2×誘起電圧定数)のスケール[A･s/rad][rpm]から[rad/s]への変換スケール

PU_SF_RAD_RPM

CP_MAX_SPEED_RPM+1[rad/s]から[rpm]への変換スケール

PU_SF_ACR_KP

PU_SF_RES

電流 PI 比例ゲインスケール

PU_SF_ACR_KIDT

PU_SF_RES

電流 PI 積分ゲインスケール

PU_SF_ASR_KP

PU_SF_CURRENT / PU_SF_AFREQ

速度 PI 比例ゲインスケール

PU_SF_ASR_KIDT

PU_SF_CURRENT / PU_SF_AFREQ

速度 PI 積分ゲインスケール

PU_SF_PLL_KP

PU_SF_AFREQ / PU_SF_ANGLE

PLL 比例ゲインスケール

PU_SF_PLL_KIDT

PU_SF_AFREQ / PU_SF_ANGLE

PLL 積分ゲインスケール

MTR_Q_ANGLE

12角度の Q 値

MTR_Q_CURRENT

13

電流の Q 値

MTR_Q_VOLTAGE
MTR_Q_VMOD

1312電圧の Q 値PWM 変調率の Q 値(変更不可)

MTR_Q_AFREQ

14角周波数の Q 値

MTR_Q_CTRL_TIME

18

FOC 制御周期の Q 値

MTR_Q_CTRL_TIME_S
PEED
MTR_Q_RESISTANCE

15

速度制御周期の Q 値

17

抵抗の Q 値

MTR_Q_INDUCTANCE

18

インダクタンスの Q 値

MTR_Q_BEMF_CONST

15

誘起電圧定数の Q 値

MTR_Q_INERTIA

9 (1 シャント)/ 10 (3 シャント)

イナーシャの Q 値

MTR_Q_D1_DIV_P2M

19

動摩擦係数/ (極対数^2×誘起電圧定数)の Q 値

MTR_Q_RECIV

13電圧の逆数の Q 値

MTR_Q_RECIM

14

誘起電圧定数の逆数の Q 値

PU_BASE_FREQ_Hz

R01AN7036JJ0110 Rev.1.10
2024.07.16

周波数基準値 [Hz]
角度基準値 [rad]抵抗スケール [1/Ω]
インダクタンススケール [rad/H]

Page 84 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 3-90 “r_mtr_scaling_parameter.h” マクロ定義一覧 [2/2]
マクロ

定義値

内容

備考

MTR_Q_ACR_KP

17

電流 PI 比例ゲインの Q 値

MTR_Q_ACR_KIDT19

電流 PI 積分ゲイン×制御周期の Q 値

MTR_Q_ASR_KP

12

速度 PI 比例ゲインの Q 値

MTR_Q_ASR_KIDT20

速度 PI 積分ゲイン×制御周期の Q 値

MTR_Q_PLL_KP

15

PLL 比例ゲインの Q 値

MTR_Q_PLL_KIDT23

PLL 積分ゲイン×制御周期の Q 値

MTR_Q_SPEED_LPF_CO

15

速度 LPF ゲインの Q 値

MTR_Q_CURRENT_LPF_CO

15

電流 LPF ゲインの Q 値

MTR_Q_CURRENT_REPO_LPF_CO

15

電流再現用 LPF ゲインの Q 値

MTR_Q_DAMP_K

13 (1 シャント) / 12 (3 シャント)

ダンピング制御ゲインの Q 値

MTR_Q_DAMP_HPF_CO

15

ダンピング制御 HPF ゲインの Q 値

MTR_Q_DAMP_SL_RATE

17

ダンピング制御速度リミットの Q 値

MTR_Q_PHERR_LPF_CO

15

位相誤差 LPF の Q 値

MTR_Q_OL2CL_K1

21

センサレス切り替え制御のゲインの Q 値

MTR_Q_MTPA_COEF_I

21(Lq-Ld)/ke の Q 値

MTR_Q_I_MUL_COEF_I

19

Iq* iq*(Lq-Ld)/ke の Q 値

MTR_Q_FW_KP

19

弱め磁束制御の PI 比例ゲインの Q 値

MTR_Q_FW_KIDT

26

弱め磁束制御の PI 積分ゲイン×制御周期の Q 値

MTR_Q_FW_LPF_CO

15弱め磁束制御の速度偏差 LPF の Q 値

MTR_Q_DO_LPF_CO

15

外乱抑制 LPF の Q 値

MTR_Q_J_DIV_TC_P2M26

動摩擦係数/ (極対数^2×誘起電圧定数)の Q 値

MTR_Q_V_PHASE_LEAD_COEF

14

電圧位相進み係数の Q 値

MTR_Q_DIV_DSP

16

DSP 関数割り算の Q 値(変更不可)

MTR_Q_SIN_COS_DSP

14

DSP 関数の三角関数の Q 値(変更不可)

表 3-91 “main.h” マクロ定義一覧
マクロ

定義値

内容

MODE_INACTIVE

0x00

インアクティブモード

MODE_ACTIVE

0x01

アクティブモード

MODE_ERROR

0x02

エラーモードSIZE_STATE

3

モード状態数

備考

表 3-92 “ICS_define.h” マクロ定義一覧
マクロ
RL78

定義値
-

R01AN7036JJ0110 Rev.1.10
2024.07.16

内容

備考

CPU 定義Page 85 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 3-93 “r_mtr_ics.h” マクロ定義一覧
マクロ

定義値

内容

TS_300US-

ICS 通信速度

ICS_BRR23

ICS ビットレートレジスタ選択

MTR_ICS_DECIMATION2

ICS 処理間引き回数

ICS_ADDR

0xFE00ICS 用アドレス指定

ICS_INT_LEVEL

3

ICS 用割り込みレベル設定

ICS_NUM

0x40

ICS 通信データサイズ

ICS_MODE0

ICS 割り込みモード設定

R01AN7036JJ0110 Rev.1.10
2024.07.16

備考

Page 86 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 3-94 “r_mtr_rl78g24.h” マクロ定義一覧 [1/2]
マクロ

定義値

内容

備考

PWMOPA による過電流使用の選択
CPU メインクロック[MHz]USE_PWMOPA

MTR_SET

MTR_MAIN_CLOCK_FREQ

48.0f

MTR_INT_DECIMATION

CP_INT_DECIMATIONTRD_SKIPPING_COUNT

CP_INT_DECIMATION

割り込み処理キャリア間引き数
TRD 割り込み間引き数

MTR_PWM_TIMER_FREQ

CP_PWM_TIMER_FREQPWM タイマ周波数[kHz]MTR_INTVAL_TIMER_FREQ

CP_INTVAL_TIMER_FREQ

MTR_CARRIER_FREQ

CP_CARRIER_FREQ

MTR_INVTVAL_PERIOD(MTR_INT_DECIMATION + 1) * 1000.0f /(MTR_CARRIER_FREQ)
IP_DEADTIME

インターバル・タイマ周波数[kHz]キ ャ リ ア割 り 込み 周 波数
[kHz]
インターバル・タイマ周期[µs]
デッドタイム [µs]MTR_DEADTIMEMTR_DEADTIME_CNT
MTR_CARRIER_CNT
MTR_HALF_CARRIER_CNT
MTR_CARRIER_DOWN_CNT
MTR_HALF_CARRIER_DOWN_C
NT
MTR_HALF_DEADTIME_CNT
MTR_DUTY_RANGE_CNT
MTR_CURRENT_ADCONV_TIME
MTR_VOLTAGE_LIMIT_OFFSET(int16)(MTR_DEADTIME *MTR_PWM_TIMER_FREQ)(uint16_t)(MTR_PWM_TIMER_FREQ * 1000 /MTR_CARRIER_FREQ * 0.5f)(uint16)(MTR_CARRIER_SET * 0.5f)

デッドタイム設定値(uint16_t)(MTR_PWM_TIMER_FREQ * 1000 /MTR_CARRIER_FREQ * 0.5f)(uint16_t)(MTR_CARRIER_DOWN_CNT * 0.5f)

キャリア最大設定値(uint16_t)(MTR_DEADTIME_CNT * 0.5f)

デッドタイム中間値(uint16_t)((MTR_CARRIER_CNTMTR_DEADTIME_CNT)*0.5f)
CP_AD_CONVERSION_TIME * 2.0f

変調率範囲のカウント値

MTR_CURRENT_ADCONV_TIME(int16_t)(((MTR_CURRENT_ADCONV_TIME +MTR_DEADTIME * 2) /(1000/MTR_CARRIER_FREQ)) * 0.5f * (1 <<MTR_Q_VOLTAGE))(uint16_t)((MTR_CARRIER_CNT+CP_AD_RIN
GING_WAIT_CNT+MTR_DEADTIME_CNT) *0.5f)
CP_AD_CONVERSION_TIME * 2.0f

MTR_VOLTAGE_LIMIT_OFFSET

0

MTR_CENTER_AMPLITUDE_CNT(int16_t )(MTR_HALF_CARRIER_CNT +MTR_DEADTIME_CNT)(int16_t)(CP_AD_CONVERSION_TIME*MTR_P
WM_TIMER_FREQ+CP_AD_RINGING_WAIT_
CNT+MTR_DEADTIME_CNT)50

MTR_CENTER_AMPLITUDE_CNT

MTR_AD_MINIMUM_TIME

MTR_AD_MINIMUM_TIME2

キャリア設定値
キャリア設定値(中間値)

キャリア中間値

A/D 変換開始を進める時間[µs]
電 圧 の オフ セ ット 制 限値
[PU(V)]PWM タイマの振幅中心
A/D 変換開始を進める時間[µs]
電 圧 の オフ セ ット 制 限値
[PU(V)]PWM タイマの振幅中心[3 シ ャ ン ト
モード・二相変調時]

A/D 変換時間カウント値[1 シ ャ ン ト
モード時]

A/D 変換時間の最小値
電 圧 の オフ セ ット 制 限値
[PU(V)]
A/D 変換時間カウント値

MTR_AD_MINIMUM_TIME2(int16_t)(((MTR_DEADTIME*2)/(1000/MTR_CA
RRIER_FREQ))*0.5f*(1<<MTR_Q_VOLTAGE))(int16_t)(CP_AD_CONVERSION_TIME*MTR_P
WM_TIMER_FREQ+CP_AD_RINGING_WAIT_
CNT+MTR_DEADTIME_CNT)50

MTR_CURRENT_ADCONV_TIME

CP_AD_CONVERSION_TIME * 2.0f

MTR_VOLTAGE_LIMIT_OFFSET

0

MTR_CENTER_AMPLITUDE_CNT(int16_t)(MTR_HALF_CARRIER_CNT +MTR_DEADTIME_CNT)

A/D 変換開始を進める時間[us]
電 圧 の オフ セ ット 制 限値
[PU(V)]PWM タイマの振幅中心

MTR_VOLTAGE_LIMIT_OFFSET
MTR_AD_MINIMUM_TIME

R01AN7036JJ0110 Rev.1.10
2024.07.16[3 シ ャ ン ト
モード時]

A/D 変換時間の最小値[1 シ ャ ン ト
モード・二相変調時]

Page 87 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 3-95 “r_mtr_rl78g24.h” マクロ定義一覧 [2/2]
マクロ

定義値

MTR_OFFSET_CALC_ST_WAIT_CN
T
MTR_DEADTIME_RATIO

CP_OFFSET_CALC_ST_WAIT_CNT(MTR_DEADTIME *MTR_CARRIER_FREQ * (1 <<MTR_Q_VOLTAGE))/1000
MP_RATED_CURRENT * 0.1f

MTR_DEADTIME_CURRENT_LIMIT

備考

内容
電流オフセット取得前の安定待ち時
間デッドタイム補償係数
電流制限値
電流制御周期

MTR_SPEED_CTRL_PERIOD(MTR_INT_DECIMATION + 1) /(MTR_CARRIER_FREQ * 1000)
CP_SPEED_CTRL_PERIOD

MTR_ADC_DATA_SHIFT0

AD 変換値シフト量

MTR_ADC_OFFSET

0x7FF

AD 変換値オフセット

ERROR_NONE

0x00

エラーなし

ERROR_CHANGE_CLK_TIMEOUT

0x01

クロック設定タイムアウトエラー

ERROR_CHARGE_CAP_TIMEOUT

0x02

コンデンサ充電タイムアウトエラー

MTR_CHARGE_CAP_WAIT_CNT

IP_CHARGE_CAP_WAIT_CNT

コンデンサ充電時間

MTR_OC_DETECT_REF(uint16_t)((IP_DC_AMPLIFICATION_GAIN* IP_DC_SHUNT_RESISTANCE *IP_CURRENT_LIMIT) * (1024 / 5))(uint16_t)(2.5f*(1024/5))

過電流リミット基準値

電圧位相進み係数

MTR_MAX_DUTY_CNT

FIX_fromfloat(CP_V_PHASE_LEAD_COE
F, TR_Q_V_PHASE_LEAD_COEF)
MTR_CARRIER_CNT +MTR_DEADTIME_CNT
MTR_CARRIER_CNT - 3

MTR_MIN_DUTY_CNT

MTR_DEADTIME_CNT + 1

タイマカウント：最小CARRIER_UL_CNT

MTR_CARRIER_CNT - 2

タイマカウント

MTR_CTRL_PERIOD

MTR_OC_DETECT_OFSETMTR_V_PHASE_LEAD_COEF
MTR_LOWEST_DUTY_CNT

表 3-96速度制御周期

過電流オフセット初期値

タイマカウント：最低
タイマカウント：最大“Config_ADC.h” [1 シャントモード時] マクロ定義一覧

マクロ

定義値

内容

備考

R_MTR_ADCR_IDC_A

ADCR2

ポイント A の ADCR 選択

R_MTR_ADCR_IDC_B

ADCR0

ポイント B の ADCR 選択

R_MTR_ADCR_VDC

ADCR3インバータ母線電圧の ADCR 選択

R_MTR_WaitIdc

マクロ関数

A/D 変換待ちのマクロ関数

表 3-97“Config_ADC.h” [3 シャントモード時] マクロ定義一覧

マクロ

定義値

内容

備考

R_MTR_ADCR_IU

ADCR1

Iu の ADCR 選択

R_MTR_ADCR_IV

ADCR0

Iv の ADCR 選択

R_MTR_ADCR_IW

ADCR2

Iw の ADCR 選択

R_MTR_ADCR_VDC

ADCR3インバータ母線電圧の ADCR 選択

R_MTR_ADCR_IDC

ADCR3

DC リンク電流の ADCR 選択

R_MTR_ADS_CHANNEL_VDC_06_AD_ADV_INPUT_ANI6

インバータ母線電圧のチャネル選択

R_MTR_ADS_CHANNEL_IDC_12_AD_ADV_INPUT_ANI18

DC リンク電流のチャネル選択

R_MTR_ChangeChanelDefault

マクロ関数

インバータ母線電圧のチャネル変更

R_MTR_ChangeChanelIdc

マクロ関数

DC リンク電流のチャネル変更

R_MTR_WaitIdc

マクロ関数

A/D 変換待ちのマクロ関数

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 88 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 3-98 “Config_Port.h” マクロ定義一覧
マクロ

定義値

内容

R_MTR_PORT_LED1

P4_bit.no2

LED1 出力ポート

R_MTR_PORT_LED2

P4_bit.no3

LED2 出力ポート

備考

表 3-99 “Config_TRD0_TRD1.h” マクロ定義一覧
マクロ

定義値

内容

備考

R_MTR_PORT_UP

P7_bit.no0

U 相 正相出力ポート

R_MTR_PORT_UN

P7_bit.no1

U 相 逆相出力ポート

R_MTR_PORT_VP

P7_bit.no2

V 相 正相出力ポート

R_MTR_PORT_VN

P7_bit.no3

V 相 逆相出力ポート

R_MTR_PORT_WP

P7_bit.no4

W 相 正相出力ポート

R_MTR_PORT_WN

P7_bit.no5

W 相 逆相出力ポート

R_MTR_StartADCTrigger

マクロ関数

A/D 変換のトリガタイミング設定

R_MTR_SetPwmDuty

マクロ関数

1 シャントモードの PWM 設定

R_MTR_SetPWMDutySym

マクロ関数

3 シャントモードの PWM 設定

表 3-100“r_mtr_common.h” マクロ定義一覧

マクロ

内容

定義値

MTR_TWOPI

2*3.14159265359f

2π

MTR_SQRT_2

1.4142136f√2

MTR_SQRT_3

1.7320508f√3

MTR_SQRT_3_half

1.7320508f / 2√3 ÷ 2

MTR_CW

1CW

MTR_CCW-1CCW

MTR_ON0オン

MTR_OFF1

オフ

MTR_CLR0

フラグクリア

MTR_SET1

フラグセット

MTR_OPL0

オープンループ

MTR_CLL

1

クローズドループ

MTR_UNREACHED

0

未到達

MTR_REACHED

1

到達

MTR_WAIT_CNT_5US30

5us 待ちMTR_WAIT_CNT_20US

120

20us 待ちMTR_WAIT_CNT_300US

1500

300us 待ちMTR_ADC_12BIT

1212bit ADCMTR_ADC_10BIT

10

10bit ADC

R01AN7036JJ0110 Rev.1.10
2024.07.16

備考

Page 89 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24
表 3-101“r_mtr_parameter.h” マクロ定義一覧

マクロ

定義値

内容

備考

MTR_PWM_DUTY_RANGE

4095

Duty レンジ

MTR_INPUT_V

IP_INPUT_V

入力電圧

MTR_HALF_VDC

MTR_INPUT_V * 0.5f

電圧の 50％

MTR_MCU_ON_V

MTR_INPUT_V * 0.8f

電圧の 80％

MTR_OVERVOLTAGE_LIMITIP_OVERVOLTAGE_LIMIT

過電圧リミット値

MTR_UNDERVOLTAGE_LIMIT

IP_UNDERVOLTAGE_LIMIT

低電圧リミット値

MTR_ANGLE_RANGE

角度レンジ 2π

MTR_ANGLE_HALF_RANGE(int16_t)(MTR_TWOPI* PU_SF_ANGLE *(1<<MTR_Q_ANGLE))(int16_t)(MTR_ANGLE_RANGE/2))

MTR_ANGLE_QUAT_RANGE(int16_t)(MTR_ANGLE_RANGE/4))

角度レンジ π/2

MTR_OVERCURRENT_LIMIT

CP_OC_LIMIT

電流リミット値

MTR_I_LIMIT_VD

IP_INPUT_V * 0.5f

Vd の電流 PI リミット

MTR_I_LIMIT_VQ

IP_INPUT_V * 0.5f

Vq の電流 PI リミット

MTR_RPM_RAD[rpm]から[rad/s]への変換

MTR_SPEED_LIMIT_RAD(MP_POLE_PAIRS *MTR_TWOPI) / 60.0f
CP_SPEED_LIMIT_RPM * MTR_RPM_RAD

MTR_MAX_SPEED_RAD

CP_MAX_SPEED_RPM * MTR_RPM_RAD

最大速度[rad/s]

MTR_LIMIT_IQ

MP_RATED_CURRENT * MTR_SQRT_3

速度 PI の出力制限値

MTR_I_LIMIT_IQ

MP_RATED_CURRENT * MTR_SQRT_3

速度 PI の積分項の出力制限値

MTR_CL2OL_SPEED_RAD

CP_LESS2OL_SPEED_RPM *MTR_RPM_RAD

MTR_OL2CL_SPEED_RAD

CP_OL2LESS_SPEED_RPM *MTR_RPM_RAD

MTR_RECIM

1.0f/(MP_BEMF_CONSTANT *PU_SF_BEMF_CONST)
CP_DRAW_IN_WAIT_TIME /MTR_SPEED_CTRL_PERIOD(uint16_t)(CP_OL2CL_SWITCH_TIME /MTR_SPEED_CTRL_PERIOD)

センサレスからオープンループ
への切り替え速度 [rad/s]
オープンループからセンサレスへの切り替え速度[rad/s]
誘起電圧定数の逆数[PU]

MTR_DRAW_IN_WAIT_CNT
MTR_SWITCH_COUNTMTR_CL2OL_JUDGE_WAIT_CN
T(uint16_t)(CP_CL2OL_JUDGE_WAIT_TIME /(CP_SPEED_CTRL_PERIOD * 1000))

R01AN7036JJ0110 Rev.1.10
2024.07.16

角度レンジ π

速度制限値[rad/s]

引き込み時間のカウント値
センサレス切り替え制御時間カ
ウント値[cnt]
オープンループ判定の待ち回数

Page 90 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24
表 3-102“r_mtr_statemachine.h” マクロ定義一覧

マクロ

定義値

内容

MTR_MODE_INIT

0x00

初期化モードMTR_MODE_DRIVE

0x01

ドライブモード

MTR_MODE_STOP

0x02

ストップモード

MTR_SIZE_STATE

3

ステート数

MTR_EVENT_STOP

0x00

ストップイベント

MTR_EVENT_DRIVE

0x01

ランイベント

MTR_EVENT_ERROR

0x02

エラーイベント

MTR_EVENT_RESET

0x03

リセットイベント

MTR_SIZE_EVENT

4

イベント数

MTR_STATEMACHINE_ERROR_NONE

0x00

ステートマシンエラーなし

MTR_STATEMACHINE_ERROR_EVENTOUTBOUND

0x01

イベントインデックスが範囲外

MTR_STATEMACHINE_ERROR_STATEOUTBOUND

0x02

ステートインデックスが範囲外

MTR_STATEMACHINE_ERROR_ACTIONEXCEPTION

0x04

アクションの失敗

R01AN7036JJ0110 Rev.1.10
2024.07.16

備考

Page 91 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24
表 3-103“r_mtr_foc_less_speed.h” マクロ定義一覧

マクロ

定義値

内容

MTR_CONTROL_CURRENT

0x01

電流制御

MTR_CONTROL_SPEED

0x02

速度制御

MTR_CONTROL_POSITION

0x04

位置制御

MTR_CONTROL_TORQUE

0x08

トルク制御

MTR_CONTROL_VOLTAGE

0x10

電圧制御

MTR_ERROR_NONE

0x00

エラーなし

MTR_ERROR_OVER_CURRENT

0x0001

過電流エラー

MTR_ERROR_OVER_VOLTAGE

0x0002

過電圧エラー

MTR_ERROR_OVER_SPEED

0x0004

過速度エラー

MTR_ERROR_HALL_TIMEOUT

0x0008

ホールタイムアウトエラー

MTR_ERROR_BEMF_TIMEOUT

0x0010

誘起電圧タイムアウトエラー

MTR_ERROR_HALL_PATTERN

0x0020

ホールパターンエラー

MTR_ERROR_BEMF_PATTERN

0x0040

誘起電圧パターンエラー

MTR_ERROR_UNDER_VOLTAGE

0x0080低電圧エラー

MTR_ERROR_OVERCURRENT_SW
MTR_ERROR_IPD_TRX_OVERFLOW

0x01000x0200

ソフトウェア過電流エラー
初期位置検出時 TRX オーバフローエラー

MTR_ERROR_UNKNOWN

0xffff

未定義エラー

MTR_ID_ZERO_CONST

0d 軸電流 0 制御

MTR_ID_MANUAL

1d 軸電流マニュアル制御

MTR_ID_MTPA2FW

2d 軸電流最大トルク＆弱め磁束制御

MTR_IQ_ZERO_CONST

0q 軸電流 0 制御

MTR_IQ_MANUAL

1q 軸電流マニュアル制御

MTR_IQ_OL2CL2q 軸電流のセンサレス切り替え制御

MTR_IQ_SPEED_PI_OUTPUT

3

速度 PI 制御出力

MTR_SPEED_ZERO_CONST0

速度 0 制御

MTR_SPEED_MANUAL

1

速度マニュアル制御

MTR_OFFSET_CALC_EXE

0

オフセット除去中

MTE_OFFSET_CALC_END

1

オフセット除去完了

MTR_IPD_EXE

2

IPD 処理実行

MTR_IPD_END

3

IPD 処理完了

MTR_DRIVE_START

4

駆動開始

MTR_DRIVE_ID_ZERO5d 軸電流 0 駆動

MTR_DRIVE_BRAKE

6

ブレーキ処理MTR_DRIVE_END

7

駆動停止

MTR_PHASE_U

0

U相

MTR_PHASE_V

1

V相

MTR_PHASE_W

2

W相

R01AN7036JJ0110 Rev.1.10
2024.07.16

備考

Page 92 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24
表 3-104
マクロ“r_mtr_foc_less_speed.h” マクロ定義一覧
定義値

内容

MTR_DRV_UVW

1

デューティ大小関係 U>V>W

MTR_DRV_UWV

2

デューティ大小関係 U>W>V

MTR_DRV_VUW

3

デューティ大小関係 V>U>W

MTR_DRV_VWU

4

デューティ大小関係 V>W>U

MTR_DRV_WUV

5

デューティ大小関係 W>U>V

MTR_DRV_WVU

6

デューティ大小関係 W>V>U

MTR_DRV_MASK

0x0F

デューティ大小関係のマスク

MTR_DRV_USE_REPRO

0x10

再現電流使用フラグ

MTR_CROSS_MID_MIN

1

Duty 中間と最小値がクロス

MTR_CROSS_MAX_MID

2

Duty 最大と中間値がクロス

R01AN7036JJ0110 Rev.1.10
2024.07.16

備考[1 シャントモード時]

Page 93 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 3-105 “r_mtr_ipd.h” マクロ定義一覧
マクロ

定義値

内容

備考

CMP 閾値電流設定スケールファクタ

MTR_SAL_ANGLE_MAX_CNT(float)IP_DC_AMPLIFICATION_GAIN*
IP_DC_SHUNT_RESISTANCE * 1024 / 5)
CP_IPD_NOISE_AVOID_C
NT
20

MTR_SAL_ANGLE_PERCENTAGE30

MTR_SAL_POLARITY_MAX_CNT

20

突極性モータの角度検出の閾値カウント割合
突極性モータの極性検出の最大測定回数

MTR_SAL_POLARITY_PERCENTAGE30

MTR_NON_SAL_MAX_CNT

20

MTR_NON_SAL_PERCENTAGE30

MTR_PERCENTAGE

100

非突極性モータの角度検出の閾値カウント
割合
百分率計算

MTR_ENERGIZE_2_PHASES

0

2 相通電

MTR_ENERGIZE_3_PHASES

1

3 相通電

MTR_REVERSE_DIRECTION

3

極性反転

MTR_PRE_JUDGE

0

極性未判定

MTR_SALIENT

1

突極性あり

MTR_NON_SALIENT

2

突極性なし

MTR_ENERGIZE_U2V

02 相通電時の電圧パターン

MTR_ENERGIZE_V2W

1

MTR_ENERGIZE_W2U

2

MTR_ENERGIZE_V2U

3

MTR_ENERGIZE_W2V

4

MTR_ENERGIZE_U2W

5

MTR_ENERGIZE_U2VW

0

MTR_ENERGIZE_V2WU

1

MTR_ENERGIZE_W2UV

2

MTR_ENERGIZE_VW2U

3

MTR_ENERGIZE_WU2V

4

MTR_ENERGIZE_UV2W

5

MTR_MAX_PHASE

0

最大カウント相

MTR_MN_PHASE

1

最小カウント相

MTR_POLARITY_NONE

0

極性デフォルト値

MTR_POLARITY_POSITIVE

1

極性正方向

MTR_POLARITY_NEGATIVE

2

極性負方向

MTR_IPD_NONE

0

デフォルトステート

MTR_IPD_SAL_ANGLE

1

突極性モータの角度検出

MTR_IPD_SAL_POLARITY

2

突極性モータの極性検出

MTR_IPD_NON_SAL

3

非突極性時の角度検出

MTR_IPD_FINISH

4

初期位置検出終了

MTR_IPD_UNDETECTED

5

初期位置検出未検出

MTR_IPD_ERROR

6

初期位置検出エラー

MTR_TRX_CNTTRX

TRX カウントレジスタ

MTR_REF_CURRENT_BASE

MTR_IPD_NOISE_AVOID_CNT

R01AN7036JJ0110 Rev.1.10
2024.07.16

【初期位
置検出】

ノイズ回避回数
突極性モータの角度検出の最大測定回数

突極性モータの極性検出の閾値カウント割合
非突極性モータの角度検出の最大測定回数

3 相通電時の電圧パターン

Page 94 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

3.6

割り込み処理の仕様

本サンプルソフトウェアの割り込み処理について説明します。
割り込み処理は、1 シャントモード、3 シャントモードともに、キャリア周期割り込み(50[μs]で間引き 1回→100[μs])と 1[ms]周期割り込みの 2 つの周期割り込みにより構成されます。
1[ms] Interrupt

1shunt : Carrier Interrupt (100[µs]) / 3shunt : 100[µs] Interrupt
+

id*

ACR

+

vγ*

+

iq*=0

vu*

dq

-

ACR

-

vv*
UVW

+ vδ*

PWM

Motor

vw*

-

1/s
decoupling
control

*
iγ
est

iu
UVW
iδ
dq

iδ
K_damp

iw

HPF
ed

lpf
LPF

図 3-22

e

1/ψ

(ed^2
＋eq^2)eq

Δestimation

制御ブロック内の割り込み処理(オープンループ制御時)

オープンループ時の駆動概略を説明します。d 軸電流指令値を与えて、速度 0 から指令速度をランプ状に上昇させ、速度指令値を積分した角度情報を用いて角度を更新します。軸誤差推定器から出力される誘起電圧値を用いて推定速度を観測します。
1[ms] Interrupt
id*=0

1shunt : Carrier Interrupt (100[µs]) / 3shunt : 100[µs] Interrupt+

field weakening

+

ACR

*

+

ASR

iq*

+

vu*
dq

+ vδ*

ACR

-

-

vγ*

-

-

vv*

UVW

PWM

Motor

vw*

decoupling
control

iγ

iu
UVW
iδ

iδ

dq

iw

est
1/s
Δ

lpf
LPF

図 3-23PLL

Δ
estimation

制御ブロック内の割り込み処理(クローズドループ制御時)

クローズドループ時の駆動概略を説明します。d 軸電流を 0 として、速度指令値と軸誤差推定器から出力される軸誤差から求める推定速度の偏差を速度制御器に入力し、出力として q 軸電流指令値を得ます。推定
速度を積分した角度情報を用いて角度を更新します。
割り込み処理の占有率を 60%程度とするため、キャリア周期割り込みは 1 回間引きの設定になっています。キャリア割り込み内の電流制御系の制御周期は 50[μs]の 1 回間引きとなるため 100[μs]です。

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 95 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

1[ms]周期割り込み内では速度制御系の処理と dq 軸電流の指令値を出力します。速度制御系の制御周期は
1[ms]です。
1 シャントモード、3 シャントモードの割り込みタイミングは同じです。キャリア周期割り込みは 50[µs]の 1 回間引き設定のため 100[µs]ごとの谷で発生し、PWM デューティも同様に谷で更新されます。
割り込みタイミング
20kHz： 50µs

TRD0 カウンタ

TRD1 カウンタ

デューティ更新
50[µs]周期50us 割り込み(INTTRD1)

電流指令更新1[ms] 周期1ms 割り込み(INTTM00)

図 3-24 割り込み発生と出力値の更新イメージ

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 96 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

3.7

制御フロー（フローチャート）

3.7.1

メイン処理

メイン処理

周辺機能の初期化

RMWとの通信初期化

モータ構造体変数の初期化

メイン使用変数の初期化

シーケンス処理の初期化

母線電圧の安定待ち[ERROR]
System Error Check[ERROR_NONE]
システムモードをアクティブ状態

システムモードをエラー状態

RMWを使用したUI制御

LED制御

ウォッチドッグタイマクリア

図 3-25 メイン処理フローチャート

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 97 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

3.7.2 キャリア周期割り込み処理 (1 シャントモード時)
キャリア周期割り込み

駆動？

No
Yes

1シャントモード時の電流検出
検出電流情報の変換(U,V,W相 d,q軸)
軸誤差推定処理

制御方法？

電流制御
速度制御
角度更新・位相進め処理

速度・角度の処理

検出情報の取得

電流PI制御非干渉制御

指令電圧情報の変換(d,q軸 U,V,W相)
1シャントモード時のPWM出力設定

A/D変換タイミングの計算

2相近接の電流補償インバータ母線電圧の取得

RMWの通信準備終了

図 3-26 キャリア周期割り込み処理フローチャート

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 98 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

3.7.3 キャリア周期割り込み処理 (3 シャントモード時)
キャリア周期割り込み

駆動？
No
Yes
3シャントモード時の電流検出
検出電流情報の変換(U,V,W相 d,q軸)
軸誤差推定処理

制御方法？

電流制御
速度制御

角度更新・位相進め処理

速度・角度の処理

検出情報の取得

電流PI制御非干渉制御
指令電圧情報の変換(d,q軸 U,V,W相)
3シャントモード時のPWM出力設定

インバータ母線電圧の取得

RMWの通信準備終了

図 3-27 キャリア周期割り込み処理フローチャート

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 99 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24
3.7.4

1 [ms]割り込み処理
1 [ms] 割り込み

ステートマシンの状態取得[Other MODE]
ステートマシンの状態[MTR_MODE_STOP][Other MODE]

RUN MODE[MTR_MODE_DRIVE]
RUN MODE=ステートマシンの状態

DRIVEステータス=MTR_DRIVE_END

Iq指令ステータス==Iqゼロ制御
or センサレス切り替え制御

位相誤差のLPF処理

位相誤差からSin Cosの算出[Other MODE]
RUN MODE[DRIVE][MTE_OFFSET_CALC_END][MTR_IPD_END][MTR_DRIVE_ID_ZERO][MTR_DRIVE_END]

回転速度指令値設定

PWM出力の停止

速度指令値==
制御器入力の指令速度

RUNモードの更新

DRIVE ステータス[MTR_DRIVE_START][No]

各指令値の初期化

d軸電流が指令値に到達
[Yes]
[No]

各指令値の初期化

電流制御モード中[Yes]
速度をゼロから指令値に設定
OL切り替えフラグセット

OL切り替えフラグ=CLEAR[SET]

ダンピング制御速度の算出
OL切り替えフラグ[CLR]
速度指令値にダンピング速度の足しこみ[No]
モータの速度<OL切り替え速度[CLR]
OL切り替えフラグ
[Yes]
[SET]
[No]

オープンループへの切り替え処理

モータの速度＞
CL切り替え速度
[Yes]

[No]
[No]

速度指令値＞
CLへの切り替え速度

指令速度！＝０

[Yes]
[Yes]
速度指令値=0d軸電流指令値=0
Iq指令ステータス=センサレス切り替え制御

センサレス切り替え時のトルク電流算出
d軸・q軸電流[No]
MTPA/弱め磁束制御処理

指令速度＞
CL切り替え速度
[Yes]

[No]
モータの速度＜OLへの切り替え速度[Yes]
速度指令値=0

d軸・q軸電流、回転速度指令値設定

RMW入力内容の反映処理

エラー処理

終了

図 3-28 1 [ms]割り込み処理フローチャート

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 100 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24
3.7.5

コンパレータ 3 割り込み処理
コンパレータ3割り込み

TRXカウント値取得

CMP3割り込み発生フラグをセット終了

図 3-29 コンパレータ 3 割り込み処理フローチャート

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 101 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

4. モータ制御開発支援ツール「Renesas Motor Workbench」の利用方法
4.1

概要

本アプリケーションノート対象サンプルプログラムでは、モータ制御開発支援ツール｢Renesas Motor
Workbench｣をユーザインタフェース(回転/停止指令、回転速度指令等)として使用します。使用方法などの詳細は「Renesas Motor Workbench ユーザーズマニュアル」を参照してください。モータ制御開発支援
ツール｢Renesas Motor Workbench｣は弊社 WEB サイトより入手してください。

Main Window

Analyzer Window
Scope Window

Control Window

図 4-1 Renesas Motor Workbench 外観
モータ制御開発支援ツール「Renesas Motor Workbench」の使い方①ツールアイコンをクリックしツールを起動する。
②Main Window の MENU バーから、[File] → [Open RMT File(O)]を選択。
” [プロジェクトフォルダ]/application/ics/”フォルダ内にある RMT ファイルを読み込む。
③”Connection”の COM で接続されたキットの COM を選択する。
④右側の Select Tool の Analyzer ボタンをクリックし、Analyzer 機能を起動する。
（起動すると Analyzer Window 画面に切り替わります。）⑤”Analyzer 操作例”を元にモータを駆動させる。

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 102 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

4.2

Analyzer 機能用変数一覧

Analyzer ユーザインタフェース使用時の入力用変数一覧を表 4-1 に示します。なお、これらの変数の値
は com_s2_enable_write に g_s2_enable_write と同じ値を書き込んだ際に反映されます。ただし、(*)が付けられた変数は com_s2_enable_write に依存しません。
表 4-1 Analyzer 機能入力用変数一覧(1/3)

変数名

型

内容

備考
([ ]: 反映先の変数名)

com_u1_run_event (*)

uint8_t[g_u1_run_event]com_u1_direction

uint8_tcom_f4_mtr_r

float

ランモード遷移用変数
0: ストップイベント
1: ドライブイベント
2: エラーイベント
3: リセットイベント
回転方向
0：CW 1：CCW
抵抗 [Ω]

com_f4_mtr_ld

float

d 軸インダクタンス[H][gst_cint.st_motor.s2_mtr_ld]

com_f4_mtr_lq

float

q 軸インダクタンス[H][gst_cint.st_motor.s2_mtr_lq]

com_f4_mtr_m

float

誘起電圧定数 [V･s/rad][gst_cint.st_motor.s2_mtr_m]

com_f4_mtr_j
com_f4_mtr_d0
com_f4_mtr_d1
com_u2_mtr_pp

float
float
float
uint16_t

イナーシャ [kg･m^2/(rad^2)]静止摩擦係数 [kg･m^2/(rad･s^2)]
動摩擦係数 [kg･m^2/(rad^2･s)]
極対数[gst_cint.st_motor.s2_mtr_j][gst_foc.st_asr.s2_d0_div_pm][gst_foc.st_asr.s2_d1_div_p2m][gst_cint.st_motor.u2_mtr_pp]

com_u2_offset_calc_cnt

uint16_t

電流オフセット検出時間[gst_foc.st_sscs.u2_offset_calc_cnt]

com_s2_ref_speed_rpm
com_f4_ramp_limit_speed_rpm
com_s2_max_speed_rpm
com_f4_acr_nf_hz

int16_t
float
int16_t
float

目標速度［rpm］
加速度制限値 [rpm/ms]
最大速度［rpm］
電流 PI 制御固有周波数 [Hz]com_f4_asr_nf_hz

float

速度 PI 固有周波数 [Hz]com_f4_asr_lpf_cof_hz

float

速度 LPF 固有周波数 [Hz]com_f4_acr_lpf_cof_hz

float

電流 LPF 固有周波数 [Hz]com_f4_pll_nf_hz

float

PLL 固有周波数 [Hz]com_f4_acr_deadband_lsb

float

電流 PI のデッドバンド [LSB]

com_f4_asr_deadband_lsb

float

速度 PI のデッドバンド [LSB][gst_foc.st_asr.s2_ref_speed_rad][gst_foc.st_asr.s2_ramp_limit_speed_rad][gst_foc.st_asr.s2_max_speed_rad][gst_cint.st_acr.st_pi_id.s2_kp][gst_cint.st_acr.st_pi_id.s2_kidt][gst_cint.st_acr.st_pi_iq.s2_kp][gst_cint.st_acr.st_pi_iq.s2_kidt][gst_foc.st_asr.st_pi.s2_kp][gst_foc.st_asr.st_pi.s2_kidt][gst_cint.st_asr.st_lpf.s2_in_k][gst_cint.st_asr.st_lpf.s2_out_k][gst_cint.st_acr.st_iq_lpf.s2_in_k][gst_cint.st_acr.st_iq_lpf.s2_out_k][gst_cint.st_acr.st_id_lpf.s2_in_k][gst_cint.st_acr.st_id_lpf.s2_out_k][gst_cint.st_pll.st_pi.s2_kp][gst_cint.st_pll.st_pi.s2_kidt][gst_cint.st_acr.st_pi_id.s2_deadband][gst_cint.st_acr.st_pi_iq.s2_deadband][gst_foc.st_asr.st_pi.s2_deadband]

com_f4_pll_deadband_lsb

float

PLL のデッドバンド [LSB][gst_foc.st_asr.st_pi.s2_deadband]

com_f4_asr_ki_aug

float

速度 PI 制御積分器増幅率[gst_foc.st_asr.st_pi.s2_kidt]

com_s2_cl2ol_speed_rpm

int16_t[gst_foc.st_asr.s2_cl2ol_speed_rad]com_s2_ol2cl_speed_rpm

int16_tcom_f4_ol_ref_id
com_f4_draw_in_wait_time
com_f4_init_asr_intg

float
float
float

com_f4_ramp_limit_current

float

センサレスからオープンループへの切り替え速度[rpm]
オープンループからセンサレスへの切り替え速度[rpm]
オープンループ d 軸指令電流[A]引き込み待ち時間 [sec]センサレス移行時の ASR の積分項
初期値
電流の上昇制限値[A/ms]

com_s2_duty_diff_limit

int16_t

相間の Duty 偏差の最小値[gst_cint.st_sscs.s2_duty_diff_limit]

R01AN7036JJ0110 Rev.1.10
2024.07.16[gst_foc.st_asr.s1_ref_dir][gst_cint.st_motor.s2_mtr_r][gst_foc.st_asr.s2_ol2cl_speed_rad][gst_foc.st_acr.s2_ol_ref_id][gst_foc.u2_draw_in_wait_cnt][gst_foc.st_asr.s2_init_intg][gst_foc.st_acr.s2_ramp_limit_current]

Page 103 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 4-2 Analyzer 機能入力用変数一覧(2/3)

変数名

型

内容

備考
([ ]: 反映先の変数名)

com_f4_i_repro_cof_hz

float

電流再現用 LPF カットオフ周波数[Hz]

com_s2_duty_diff_limit2

int16_t

相間の Duty 偏差のリミット値 2[gst_cint.st_id_repro.s2_in_k][gst_cint.st_id_repro.s2_out_k][gst_cint.st_iq_repro.s2_in_k][gst_cint.st_id_repro.s2_out_k][gst_cint.st_sscs.s2_duty_diff_limit2]

com_s2_mod_3ph2ph_speed_rpm

int16_tcom_s2_mod_2ph3ph_speed_rpm

int16_tcom_s2_ad_point_a_adj_cnt_3ph

int16_tcom_s2_ad_point_b_adj_cnt_3ph

int16_tcom_s2_ad_point_a_adj_cnt_2ph

int16_tcom_s2_ad_point_b_adj_cnt_2ph

int16_tcom_s2_ad_point_a_adj_cnt

int16_t

三相変調から二相変調への切り替
え速度[rpm]
二相変調から三相変調への切り替
え速度[rpm]
A/D 変換タイミング A の調整値
(三相変調)
A/D 変換タイミング B の調整値
(三相変調)
A/D 変換タイミング A の調整値
(二相変調)
A/D 変換タイミング B の調整値
(二相変調)
A/D 変換タイミング A の調整値

com_s2_ad_point_b_adj_cnt

int16_t

A/D 変換タイミング B の調整値

com_s2_mod_2ph_bot_change_cnt

int16_t

二相変調遷移時のカウント回数

com_f4_sal_angle_current

Float

com_u4_sal_angle_thuint32_t

com_u2_sal_angle_discharge

uint16_t

com_f4_sal_polarity_current

float

com_u4_sal_polarity_thuint32_t

com_u2_sal_polarity_discharge

uint16_t

com_f4_non_sal_current

float

com_u4_non_sal_thuint32_t

com_u2_non_sal_discharge

uint16_t

com_f4_fw_pi_nf_hz

float

com_s2_fw_speed_err_th_rpm

int16_tcom_f4_fw_speed_err_lpf_cof_hz

float

突極性モータの角度検出における
閾値電流[A]
突極性モータの角度検出の TRX
カウント値差分閾値
突極性モータの角度検出の放電時
間
突極性モータの極性検出における
閾値電流[A]
突極性モータの極性検出の TRX
カウント値差分閾値
突極性モータの極性検出の放電時
間
非突極性モータの角度検出における閾値電流[A]
非突極性の回転子の角度検出における TRX カウント値差分閾値
突極性モータの極性検出の放電時
間弱め磁束制御 PI コントローラ固有
周波数[Hz］
弱め磁束制御の速度偏差しきい値[rpm］
速度偏差 LPF カットオフ周波数[Hz］

com_s2_fw_id_inc_const

int16_t

弱め磁束制御 Id 調整定数

com_u1_fw_pi_intg_redct_cof

uint8_t

弱め磁束制御 Id 積分項値減少係数

com_f4_do_lpf_cof_hz

float

外乱抑制 LPF 固有周波数[Hz]

R01AN7036JJ0110 Rev.1.10
2024.07.16[gst_cint.st_sscs.s2_mod_3ph2ph_spe
ed_rad][gst_cint.st_sscs.s2_mod_2ph3ph_spe
ed_rad][gst_cint.st_sscs.s2_ad_point_a_adj_c
nt_3ph][gst_cint.st_sscs.s2_ad_point_b_adj_c
nt_3ph][gst_cint.st_sscs.s2_ad_point_a_adj_c
nt_2ph][gst_cint.st_sscs.s2_ad_point_b_adj_c
nt_2ph][gst_cint.st_sscs.s2_ad_point_a_adj_c
nt][gst_cint.st_sscs.s2_ad_point_b_adj_c
nt][gst_cint.st_mod.s2_2ph_bot_change_cnt][gst_foc.st_ipd.u2_sal_angle_current][gst_foc.st_ipd.u4_sal_angle_th][gst_foc.st_ipd.u2_sal_angle_discharge][gst_foc.st_ipd.u2_sal_polarity_current][gst_foc.st_ipd.u4_sal_polarity_th][gst_foc.st_ipd.u2_sal_polarity_discharge][gst_foc.st_ipd.u2_non_sal_current][gst_foc.st_ipd.u4_non_sal_th][gst_foc.st_ipd.u2_non_sal_discharge][gst_foc.st_m2f.st_pi.s2_kp][gst_foc.st_m2f.st_pi.s2_kidt][gst_foc.st_m2f.s2_speed_err_th_rad][gst_foc.st_m2f.s2_speed_err_th_rad][gst_foc.st_m2f.st_lpf.s2_in_k][gst_foc.st_m2f.st_lpf.s2_out_k][gst_foc.st_m2f. s2_fw_id_inc_const][gst_foc.st_m2f.u1_fw_pi_intg_redct_cof][gst_foc.st_do.st_lpf.s2_in_k][gst_foc.st_do.st_lpf.s2_out_k]

Page 104 of 109

永久磁石同期モータのセンサレスベクトル制御

RL78/G24

表 4-3 Analyzer 機能入力用変数一覧(3/3)

変数名

型

内容

備考
([ ]: 反映先の変数名)

com_f4_damp_hpf_cof_hz

float[gst_foc.st_damp.st_hpf.s2_k]

com_f4_damp_zeta

float

ダンピング制御の HPF カットオ
フ周波数[Hz]
ダンピング制御の減衰係数

com_f4_damp_speed_limit_rate

float

ダンピング制御の速度制限値[gst_foc.st_damp.s2_speed_limit_rate]

com_f4_pherr_lpf_cof_hz

float

com_f4_ol2cl_switch_time

float

切り替え制御のための位相誤差の
LPF カットオフ周波数[Hz]センサレス切り替え時間[sec]com_s2_enable_write

int16_t

変数書き換え許可[gst_foc.st_pe_lpf.s2_in_k][gst_foc.st_pe_lpf.s2_out_k][gst_foc.st_ol2cl.u2_switch_cnt][gst_foc.st_ol2cl.s2_theta2crnt_k1][g_s2_enable_write]

R01AN7036JJ0110 Rev.1.10
2024.07.16[gst_foc.st_damp.s2_k]

Page 105 of 109

RL78/G24

4.3

永久磁石同期モータのセンサレスベクトル制御

Analyzer 操作例

Analyzer 機能を使用し、モータを操作する例を以下に示します。操作は、図 4-1 で示す“Control Window”で行います。“Control Window”の詳細は、「Renesas Motor Workbench V 3.1 ユーザーズマニュアル」を参照して下さい。

モータを回転させる① “com_u1_run_event”,“com_s2_ref_speed_rpm”, “com_s2_enable_write”の [W?] 欄に”チェック”が入っていることを確認する。
② 指令回転速度を“com_u2_ref_speed_rpm”の [Write] 欄に入力する。
③ “Write”ボタンを押す。
④ “Read”ボタンを押して現在の“com_s2_ref_speed_rpm”,“g_s2_enable_write”の [Read] 欄を確認する。
⑤ MCU 内の変数値へ反映させるため、“com_s2_enable_write”に④で確認した“g_s2_enable_write”と同じ値を入力する。
⑥ “com_u1_run_event”の [Write]欄に“1”を入力する。
⑦ “Write”ボタンを押す。

図 4-2 モータ回転の手順
①②

モータを停止させる“com_u1_run_event”の[Write]欄に“0”を入力する。
“Write”ボタンを押す。

図 4-3 モータ停止の手順


止まってしまった（エラー）場合の処理① “com_u1_run_event”の[Write]欄に“3”を入力する。
② “Write”ボタンを押す。

図 4-4 エラー解除の手順

R01AN7036JJ0110 Rev.1.10
2024.07.16

Page 106 of 109

アプリケーションノート
改訂記録
Rev.
1.00
1.10

発行日
2023/11/27
2024/07/16

R01AN7036JJ0110 Rev.1.10
2024.07.16

ページ
－
－

改訂内容
ポイント
新規発行
FAA 版ソフトからの改版情報の更新。

Page 107 of 109

製品ご使用上の注意事項
ここでは、マイコン製品全体に適用する「使用上の注意事項」について説明します。個別の使用上の注意事項については、本ドキュメントおよびテクニ
カルアップデートを参照してください。
1.

静電気対策
CMOS 製品の取り扱いの際は静電気防止を心がけてください。CMOS 製品は強い静電気によってゲート絶縁破壊を生じることがあります。運搬や保存の際には、当社が出荷梱包に使用している導電性のトレーやマガジンケース、導電性の緩衝材、金属ケースなどを利用し、組み立て工程にはアースを施してください。プラスチック板上に放置したり、端子を触ったりしないでください。また、CMOS 製品を実装したボードについても同様の扱いをしてください。

2.

電源投入時の処置
電源投入時は、製品の状態は不定です。電源投入時には、LSI の内部回路の状態は不確定であり、レジスタの設定や各端子の状態は不定です。外部
リセット端子でリセットする製品の場合、電源投入からリセットが有効になるまでの期間、端子の状態は保証できません。同様に、内蔵パワーオン
リセット機能を使用してリセットする製品の場合、電源投入からリセットのかかる一定電圧に達するまでの期間、端子の状態は保証できません。

3.

電源オフ時における入力信号
当該製品の電源がオフ状態のときに、入力信号や入出力プルアップ電源を入れないでください。入力信号や入出力プルアップ電源からの電流注入により、誤動作を引き起こしたり、異常電流が流れ内部素子を劣化させたりする場合があります。資料中に「電源オフ時における入力信号」についての記載のある製品は、その内容を守ってください。

4.

未使用端子の処理
未使用端子は、「未使用端子の処理」に従って処理してください。CMOS 製品の入力端子のインピーダンスは、一般に、ハイインピーダンスとなっています。未使用端子を開放状態で動作させると、誘導現象により、LSI 周辺のノイズが印加され、LSI 内部で貫通電流が流れたり、入力信号と認識されて誤動作を起こす恐れがあります。

5.

クロックについてリセット時は、クロックが安定した後、リセットを解除してください。プログラム実行中のクロック切り替え時は、切り替え先クロックが安定した
後に切り替えてください。リセット時、外部発振子（または外部発振回路）を用いたクロックで動作を開始するシステムでは、クロックが十分安定した後、リセットを解除してください。また、プログラムの途中で外部発振子（または外部発振回路）を用いたクロックに切り替える場合は、切り替え先のクロックが十分安定してから切り替えてください。

6.

入力端子の印加波形
入力ノイズや反射波による波形歪みは誤動作の原因になりますので注意してください。CMOS 製品の入力がノイズなどに起因して、VIL（Max.）から VIH（Min.）までの領域にとどまるような場合は、誤動作を引き起こす恐れがあります。入力レベルが固定の場合はもちろん、VIL（Max.）から VIH（Min.）までの領域を通過する遷移期間中にチャタリングノイズなどが入らないように使用してください。

7.

リザーブアドレス（予約領域）のアクセス禁止
リザーブアドレス（予約領域）のアクセスを禁止します。アドレス領域には、将来の拡張機能用に割り付けられている リザーブアドレス（予約領域）があります。これらのアドレスをアクセスしたときの動作については、保証できませんので、アクセスしないようにしてください。

8.

製品間の相違について
型名の異なる製品に変更する場合は、製品型名ごとにシステム評価試験を実施してください。同じグループのマイコンでも型名が違うと、フラッ
シュメモリ、レイアウトパターンの相違などにより、電気的特性の範囲で、特性値、動作マージン、ノイズ耐量、ノイズ幅射量などが異なる場合があります。型名が違う製品に変更する場合は、個々の製品ごとにシステム評価試験を実施してください。

ご注意書き1.

本資料に記載された回路、ソフトウェアおよびこれらに関連する情報は、半導体製品の動作例、応用例を説明するものです。回路、ソフトウェアおよびこれらに関連する情報を使用する場合、お客様の責任において、お客様の機器・システムを設計ください。これらの使用に起因して生じた損害（お客様または第三者いずれに生じた損害も含みます。以下同じです。）に関し、当社は、一切その責任を負いません。

2.

当社製品または本資料に記載された製品デ－タ、図、表、プログラム、アルゴリズム、応用回路例等の情報の使用に起因して発生した第三者の特許権、著作権その他の知的財産権に対する侵害またはこれらに関する紛争について、当社は、何らの保証を行うものではなく、また責任を負うものではありません。

3.

当社は、本資料に基づき当社または第三者の特許権、著作権その他の知的財産権を何ら許諾するものではありません。

4.

当社製品を組み込んだ製品の輸出入、製造、販売、利用、配布その他の行為を行うにあたり、第三者保有の技術の利用に関するライセンスが必要となる場合、当該ライセンス取得の判断および取得はお客様の責任において行ってください。

5.

当社製品を、全部または一部を問わず、改造、改変、複製、リバースエンジニアリング、その他、不適切に使用しないでください。かかる改造、改変、複製、リバースエンジニアリング等により生じた損害に関し、当社は、一切その責任を負いません。

6.

当社は、当社製品の品質水準を「標準水準」および「高品質水準」に分類しており、各品質水準は、以下に示す用途に製品が使用されることを意図しております。
標準水準：

コンピュータ、OA 機器、通信機器、計測機器、AV 機器、家電、工作機械、パーソナル機器、産業用ロボット等

高品質水準： 輸送機器（自動車、電車、船舶等）、交通制御（信号）、大規模通信機器、金融端末基幹システム、各種安全制御装置等
当社製品は、データシート等により高信頼性、Harsh environment 向け製品と定義しているものを除き、直接生命・身体に危害を及ぼす可能性のある機器・システム（生命維持装置、人体に埋め込み使用するもの等）、もしくは多大な物的損害を発生させるおそれのある機器・システム（宇宙機器と、海底中継器、原子力制御システム、航空機制御システム、プラント基幹システム、軍事機器等）に使用されることを意図しておらず、これらの用途に使用することは想定していません。たとえ、当社が想定していない用途に当社製品を使用したことにより損害が生じても、当社は一切その責任を負いません。
7.

あらゆる半導体製品は、外部攻撃からの安全性を 100％保証されているわけではありません。当社ハードウェア／ソフトウェア製品にはセキュリ
ティ対策が組み込まれているものもありますが、これによって、当社は、セキュリティ脆弱性または侵害（当社製品または当社製品が使用されているシステムに対する不正アクセス・不正使用を含みますが、これに限りません。）から生じる責任を負うものではありません。当社は、当社製品または当社製品が使用されたあらゆるシステムが、不正な改変、攻撃、ウイルス、干渉、ハッキング、データの破壊または窃盗その他の不正な侵入行為（「脆弱性問題」といいます。）によって影響を受けないことを保証しません。当社は、脆弱性問題に起因しまたはこれに関連して生じた損害について、一切責任を負いません。また、法令において認められる限りにおいて、本資料および当社ハードウェア／ソフトウェア製品について、商品性および特定目的との合致に関する保証ならびに第三者の権利を侵害しないことの保証を含め、明示または黙示のいかなる保証も行いません。

8.

当社製品をご使用の際は、最新の製品情報（データシート、ユーザーズマニュアル、アプリケーションノート、信頼性ハンドブックに記載の「半導体デバイスの使用上の一般的な注意事項」等）をご確認の上、当社が指定する最大定格、動作電源電圧範囲、放熱特性、実装条件その他指定条件の範囲内でご使用ください。指定条件の範囲を超えて当社製品をご使用された場合の故障、誤動作の不具合および事故につきましては、当社は、一切その責任を負いません。

9.

当社は、当社製品の品質および信頼性の向上に努めていますが、半導体製品はある確率で故障が発生したり、使用条件によっては誤動作したりする場合があります。また、当社製品は、データシート等において高信頼性、Harsh environment 向け製品と定義しているものを除き、耐放射線設計を行っておりません。仮に当社製品の故障または誤動作が生じた場合であっても、人身事故、火災事故その他社会的損害等を生じさせないよう、お客様の責任において、冗長設計、延焼対策設計、誤動作防止設計等の安全設計およびエージング処理等、お客様の機器・システムとしての出荷保証を行ってください。特に、マイコンソフトウェアは、単独での検証は困難なため、お客様の機器・システムとしての安全検証をお客様の責任で行ってください。

10. 当社製品の環境適合性等の詳細につきましては、製品個別に必ず当社営業窓口までお問合せください。ご使用に際しては、特定の物質の含有・使用を規制する RoHS 指令等、適用される環境関連法令を十分調査のうえ、かかる法令に適合するようご使用ください。かかる法令を遵守しないことにより生じた損害に関して、当社は、一切その責任を負いません。
11. 当社製品および技術を国内外の法令および規則により製造・使用・販売を禁止されている機器・システムに使用することはできません。当社製品および技術を輸出、販売または移転等する場合は、「外国為替及び外国貿易法」その他日本国および適用される外国の輸出管理関連法規を遵守し、それらの定めるところに従い必要な手続きを行ってください。
12. お客様が当社製品を第三者に転売等される場合には、事前に当該第三者に対して、本ご注意書き記載の諸条件を通知する責任を負うものといたします。
13. 本資料の全部または一部を当社の文書による事前の承諾を得ることなく転載または複製することを禁じます。
14. 本資料に記載されている内容または当社製品についてご不明な点がございましたら、当社の営業担当者までお問合せください。
注 1. 本資料において使用されている「当社」とは、ルネサス エレクトロニクス株式会社およびルネサス エレクトロニクス株式会社が直接的、間接的に支配する会社をいいます。
注 2. 本資料において使用されている「当社製品」とは、注１において定義された当社の開発、製造製品をいいます。
(Rev.5.0-1

2020.10)

本社所在地

お問合せ窓口〒135-0061 東京都江東区豊洲 3-2-24（豊洲フォレシア）弊社の製品や技術、ドキュメントの最新情報、最寄の営業お問合せ窓

www.renesas.com

口に関する情報などは、弊社ウェブサイトをご覧ください。
www.renesas.com/contact/

商標についてルネサスおよびルネサスロゴはルネサス エレクトロニクス株式会社の商標です。すべての商標および登録商標は、それぞれの所有者に帰属します。

© 2024 Renesas Electronics Corporation. All rights reserved.