Hella TAS-71 版本标定流程
******************Hella 强烈推荐对小总成进行标定******************
1.初始化
**连接传感器(最小总成)到测试台**
**上电。完成初始化,通过调用 APS.dll 文件,建立芯片目标、传感器目标、设置编程参数**
**下面四个函数中 asicName 参数可以设置成不同,比如 ASIC1,ASIC2,ASIC3,ASIC4。另外如果
使用 PGI 2 代注意通讯端口参数的设置,请参考帮助文件**
**生成芯片目标**
**初始化芯片目标,建立传感器目标**
**设置编程参数**
2.不受扭状态下标定(静态)
**检查传感器内部 OTP 位。调用 APS.dll 中函数读取**
**下面函数的输出是传感器内部已烧写的位串,可以保存以供追溯**
**下面两个函数将上面函数的 Bitstring 字符串作输入,写入传感器**
**这时候传感器有信号输出,检查 T1,T2 信号的频率和占空比**
**采样当前 T1,T2 的占空比,单位 [%],可以保留两位小数**
计算 T1ROC_1 =(T1 - 50)÷ 75 × 12 × 3072 ÷ 20 ,结果四舍五入保留整数
计算 T2ROC_1 =(T2 - 50)÷ 75 × 12 × 3072 ÷ 20 ,结果四舍五入保留整数
**然后将值设置到芯片**
**再次采集当前 T1,T2 的占空比,单位 [%],可以保留两位小数**
计算 T1ROC_2 =(T1 - 50)÷ 75 × 12 × 3072 ÷ 20 ,结果四舍五入保留整数
计算 T2ROC_2 =(T2 - 50)÷ 75 × 12 × 3072 ÷ 20 ,结果四舍五入保留整数
加入判断:
If ( (T1ROC_1 + T1ROC_2) < -1536 ) T1ROC_1 + T1ROC_2 = T1ROC_1 + T1ROC_2 + 3072;
If ( (T1ROC_1 + T1ROC_2) > 1535 ) T1ROC_1 + T1ROC_2 = T1ROC_1 + T1ROC_2 - 3072;
Else T1ROC_1 + T1ROC_2 = T1ROC_1 + T1ROC_2
T2 信号同理:
If ( (T2ROC_1 + T2ROC_2) < -1536 ) T2ROC_1 + T2ROC_2 = T2ROC_1 + T2ROC_2 + 3072;
If ( (T2ROC_1 + T2ROC_2) > 1535 ) T2ROC_1 + T2ROC_2 = T2ROC_1 + T2ROC_2 - 3072;
Else T2ROC_1 + T2ROC_2 = T2ROC_1 + T2ROC_2;
**然后将值设置到芯片**
**之所以计算两次,是因为对于传感器信号落在平台上的情况,即 12.5%或 87.5%的情况,一次标
定无法使信号标到 50%,所以需要进行第二次标定。对于传感器信号没有落在平台上的情况,第
二次标定相当于优化。此时,T1,T2 信号已经在 50%左右。**
**角度信号的静态标定**
**采样当前 P,S 信号的占空比 YP 和 YMLX,单位 [%],可以保留两位小数**
Temp (double) = (YP - 12.5) ÷ 75 × 40 + (50 - YMLX) ÷ 75 × 296
Temp_1 = Temp - ┌Temp ÷ 40┐ × 40, (┌ ┐为向上取整操作)
If (Temp_1 < 0) PROC = (Temp_1 + 20) × 3072 ÷ 40;结果四舍五入保留整数
Else PROC = (Temp_1 - 20) × 3072 ÷ 40;结果四舍五入保留整数
可参考 VI:
**然后将值设置到芯片**
**采样当前 P,S 信号的占空比,单位 [%],可以保留两位小数**
**通过游标算法计算 Vres,如果 Vres > 95%,说明角度静态标定成功。否则不成功。 **
**游标算法详见《游标算法_伪码.docx》**
3.动态优化
**驱动伺服电机,在不受扭的条件下,顺时针旋转 360°,测量并记录传感器输出 T1_cw, T2_cw,
P_cw, S_cw;逆时针旋转 360°,测量并记录传感器输出 T1_ccw, T2_ccw, P_ccw, S_ccw**
**先将扭矩采集数据加在一起取平均后(T1_AV 和 T2_AV)再算一个小的 ROC**
**T1_AV = (T1_cw + T1_ccw) ÷ 总采样点数,单位 [%],可以保留两位小数**
**T2_AV = (T2_cw + T2_ccw) ÷ 总采样点数,单位 [%],可以保留两位小数**
计算 T1ROC_3 =(T1_AV - 50)÷ 75 × 12 × 3072 ÷ 20 ,结果四舍五入保留整数
计算 T2ROC_3 =(T2_AV - 50)÷ 75 × 12 × 3072 ÷ 20 ,结果四舍五入保留整数
加入判断:
If( (T1ROC_1 + T1ROC_2 + T1ROC_3) < -1536 )
T1ROC_1 + T1ROC_2 + T1ROC_3 = T1ROC_1 + T1ROC_2 + T1ROC_3 + 3072;
If( (T1ROC_1 + T1ROC_2 + T1ROC_3) > 1535 )
T1ROC_1 + T1ROC_2 + T1ROC_3 = T1ROC_1 + T1ROC_2 + T1ROC_3 - 3072;
Else T1ROC_1 + T1ROC_2 + T1ROC_3 = T1ROC_1 + T1ROC_2 + T1ROC_3;
T2 信号同理:
If ( (T2ROC_1 + T2ROC_2 + T2ROC_3) < -1536 )
T2ROC_1 + T2ROC_2 + T2ROC_3 = T2ROC_1 + T2ROC_2 + T2ROC_3 + 3072;
If ( (T2ROC_1 + T2ROC_2 + T2ROC_3) > 1535 )
T2ROC_1 + T2ROC_2 + T2ROC_3 = T2ROC_1 + T2ROC_2 + T2ROC_3 - 3072;
Else T2ROC_1 + T2ROC_2 + T2ROC_3 = T2ROC_1 + T2ROC_2 + T2ROC_3
**然后将值设置到芯片**
以上为扭矩的动态优化。
**将 P 的采样数据都减去一个固定值**
P_cw_off = P_cw – (T1_AV – 50) * 0.3,单位 [%],可以保留两位小数
P_ccw_off = P_ccw – (T1_AV – 50) * 0.3 ,单位 [%],可以保留两位小数
**P 信号超限处理**
如果 P 信号减去固定值后小于 12.5%或大于 87.5%时,通过加减 75%,将其反转到前一个或下一个
周期。
**使用{P_cw_off 和 S_cw}, {P_ccw_off 和 S_ccw} 计算角度两个方向上的 Vres 值,最小值记为
Vres_min_cw 和 Vres_min_ccw**
如果 Vres_min_cw 大于 60%且 Vres_min_ccw 也大于 60%,则:
**将静态标定算出的 PROC 值写入芯片**
否则,判断 Vres_min_cw 和 Vres_min_ccw 中较小者属于哪个方向。
如果 Vres_min_cw 为较小者,则 PROC_1 (int) = PROC + (Vres_min_ccw - Vres_min_cw) * 160
如果 Vres_min_ccw 为较小者,则 PROC_1 (int) = PROC - (Vres_min_cw - Vres_min_ccw) * 160
加入判断:
If ( PROC_1 < -1536 ) PROC_1 = PROC_1 + 3072;