---
# System prepended metadata

title: 答主軸馬達，電感、電阻自學習功能。
tags: [sandal]

---

51513 定子電阻，基本上就是找 `MOTOR_STATORRESISTANCE` 這個關鍵字。
和參數識別相關的有
`control` `PMSMMotorIdentification`, `control` `EstInertia`

再來就是`imctrl` `InitEstimation`, `imctrl` `InitSMEstimation`。

imctrl 應該是 induction motorl control，estimation 偏向在estimate runtime 時的參數 e.g. flux, speed. 而非電阻電感這類。

---
看起來最像的是 `control` `ACIMotorIdentification`。



| index | name                                 |
|:----- |:------------------------------------ |
| 56012 | IDENTIFICATION_CURRENTLIMIT          |
| 57032 | DEVICE_AD_RATEDCURRENT               |
| 53004 | SETTING_INVERTER_SETDAXIS            |
| 51522 | MOTOR_ROTORRESISTANCE                |
| 51524 | MOTOR_MAGNETIZINGINDUCTANCE          |
| 51529 | MOTOR_ROTORLEAKAGEINDUCTANCE         |
| 51501 | MOTOR_RATEDCURRENT                   |
| 55500 | PWM_FREQUENCY                        |
| 55048 | CLOSELOOP_OPTIONMODE                 |
| 50500 | SAMPLINGTIME_CURRENTLOOP             |
| 52002 | ENCODER_OFFSET                       |
| 56002 | IDENTIFICATION_STATORINDUCTANCE      |
| 56021 | IDENTIFICATION_ROTORINDUCTANCE       |
| 56020 | IDENTIFICATION_ROTORRESISTANCE       |
| 56026 | IDENTIFICATION_ROTORTIMECONSTANT     |
| 56022 | IDENTIFICATION_MAGNETIZINGINDUCTANCE |
| 51504 | MOTOR_RATEDFREQUENCY                 |
| 51500 | MOTOR_RATEDVOLTAGE                   |
| 56023 | IDENTIFICATION_MAGNETIZINGCURRENT    |
| 56019 | IDENTIFICATION_ENCODER_REVERSE       |
| 52003 | ENCODER_REVERSE                      |
| 56009 | IDENTIFICATION_CURRENTCONTROLLER_KP  |
| 56010 | IDENTIFICATION_CURRENTCONTROLLER_KI  |
| 56024 | IDENTIFICATION_FLUXCONTROLLER_KP     |
| 56025 | IDENTIFICATION_FLUXCONTROLLER_TI     |
| 56001 | IDENTIFICATION_STATORRESISTANCE      |

看起來 `ACIMotorIdentification` 是 non-realtime 的calling ，`ACIMotorTestControl` 是 realtime ISR calling function。

`ACIMotorIdentification` function 的最後一區就是 存資料的地方。
有存的entry
* IDENTIFICATION_STATORRESISTANCE
* IDENTIFICATION_STATORINDUCTANCE
* IDENTIFICATION_ROTORINDUCTANCE
* IDENTIFICATION_ROTORRESISTANCE
* IDENTIFICATION_MAGNETIZINGINDUCTANCE
* IDENTIFICATION_MAGNETIZINGCURRENT
* 
* IDENTIFICATION_CURRENTCONTROLLER_KP
* IDENTIFICATION_CURRENTCONTROLLER_KI
* IDENTIFICATION_FLUXCONTROLLER_KP
* IDENTIFICATION_FLUXCONTROLLER_KI

其中 `IDENTIFICATION_STATORINDUCTANCE` 和 `IDENTIFICATION_ROTORINDUCTANCE` 相等。
```c=12058
		DBVALUE(IDENTIFICATION_STATORINDUCTANCE).fData = //(VMag / AMag * fabs(cos(VAng - AAng)) - fRs)/1.7320508;
		DBVALUE(IDENTIFICATION_ROTORINDUCTANCE).fData = fl;
```



這行很怪，voltage 為什麼乘一常數就變 current。
```c=12342
dbActualCurrent.fData = _IQtoF(volt1.Valpha) * 900.0;
```

這些Lr, Rs, inductance ... 本來應該是有一個對應的電路的，但現在沒有這個，就沒辦法。
大致可以猜測出是用 steady state response compare to model.


HDT output 的值有
phase resistor, Synchrony Inductance, Magnet flow, Max deflux speed




