在使用自行设计的控制板后,使用28069M control board,使用motorware中lab2b实验例程,运行程序时,在RoverL状态下,电机有旋转的迹象,有些卡顿,发出声音;在RampUp状态下,电机能正常转动,没有异常的声音,在RatedFlux状态下,电机停转,同时报错CTRL_STATE_ERROR和EST_STATE_ERROR。电机识别的时候,看示波器的电流波形,觉得输出电流比TMDSHVMTRINSPIN套件的输出电流要大,识别失败以后,电机有稍许发热,不是很热
控制板的相电压采集和电流采集使用差分电路,电压采集三路相电压和一路直流电压,电流采集两路相电流,程序中修改一下参数:
1、USER_IQ_FULL_SCALE_VOLTAGE_V;2、USER_ADC_FULL_SCALE_VOLTAGE_V;3、USER_IQ_FULL_SCALE_CURRENT_A ;4、USER_ADC_FULL_SCALE_CURRENT_A ;5、USER_NUM_CURRENT_SENSORS ;
6、在hal.c中修改HAL_setupADCs()函数将8个AD采集通道改为6个采集通道,并将AD通道与原理图一一对应,将ADC_setIntSrc()函数最后一个形参改为ADC_IntSrc_EOC6;
7.、在hal.h中修改HAL_readAdcData()函数,将第一个ADC_readResult()的形参改为ADC_ResultNumber_0,最后一个ADC_readResult()的形参改为ADC_ResultNumber_6。
下面将修改后的hal.c ,user.h , hal.h以及单相电压、单相电流采集的原理图发一下,请大家看一下哈。
原理图简述如下:
1、电压采集电路:VB,VC等同于VA电路,其中,V-代表直流电压的负极,电机的相电压均相对于直流电压负极即V-,直流电压采集与相电压采集电路参数相同,同为差分电路,比例关系一致,增益为0.004333;
2、电流采集电路:I是电流传感器,电流传感器为13A,输出20mA,Vout=1.65-I*180*(3.3/10)
请问,这是为什么啊?程序还需要修改哪些地方呢?请大家指教
Eric Ma:
你的完整电压采样电路和电流采样电路呢?没看明白。
关于InstaSPIN 典型的电压采样和电流采样电路见controlsuite对应的开发板。
C:\ti\controlSUITE\development_kits\HVMotorCtrl+PfcKit_v2.1\~HVMotorCtrl+PFC-HWdevPkg
在ratedFlux时会进行电流闭环,所以看起来你的电流回馈出问题。
另外注意,电压采样一般采用电阻分压方式,而且分压电阻处会有一个滤波电容。
ERIC
在使用自行设计的控制板后,使用28069M control board,使用motorware中lab2b实验例程,运行程序时,在RoverL状态下,电机有旋转的迹象,有些卡顿,发出声音;在RampUp状态下,电机能正常转动,没有异常的声音,在RatedFlux状态下,电机停转,同时报错CTRL_STATE_ERROR和EST_STATE_ERROR。电机识别的时候,看示波器的电流波形,觉得输出电流比TMDSHVMTRINSPIN套件的输出电流要大,识别失败以后,电机有稍许发热,不是很热
控制板的相电压采集和电流采集使用差分电路,电压采集三路相电压和一路直流电压,电流采集两路相电流,程序中修改一下参数:
1、USER_IQ_FULL_SCALE_VOLTAGE_V;2、USER_ADC_FULL_SCALE_VOLTAGE_V;3、USER_IQ_FULL_SCALE_CURRENT_A ;4、USER_ADC_FULL_SCALE_CURRENT_A ;5、USER_NUM_CURRENT_SENSORS ;
6、在hal.c中修改HAL_setupADCs()函数将8个AD采集通道改为6个采集通道,并将AD通道与原理图一一对应,将ADC_setIntSrc()函数最后一个形参改为ADC_IntSrc_EOC6;
7.、在hal.h中修改HAL_readAdcData()函数,将第一个ADC_readResult()的形参改为ADC_ResultNumber_0,最后一个ADC_readResult()的形参改为ADC_ResultNumber_6。
下面将修改后的hal.c ,user.h , hal.h以及单相电压、单相电流采集的原理图发一下,请大家看一下哈。
原理图简述如下:
1、电压采集电路:VB,VC等同于VA电路,其中,V-代表直流电压的负极,电机的相电压均相对于直流电压负极即V-,直流电压采集与相电压采集电路参数相同,同为差分电路,比例关系一致,增益为0.004333;
2、电流采集电路:I是电流传感器,电流传感器为13A,输出20mA,Vout=1.65-I*180*(3.3/10)
请问,这是为什么啊?程序还需要修改哪些地方呢?请大家指教
Martin Yu:
关于新作的板子如何调试InstaSPIN,我自己根据经验总结下:
1. 运行lab1 , 目的:检查输出相电压检测是否正常:切记不用接电机!!
首先需要根据自己的板子硬件原理图进行更改代码,主要有四部分,PWM输出通道、ADC采样通道和ADC采样方向、user.h中的采样范围:
A:PWM输出通道;
B:ADC采样通道更改: <hal.c>;
C. ADC采样方向:
D. user.h中更改采样范围,具体指的是电压和电流的采样范围,以及电压滤波参数;
如果看到的是电压采样的值三个数据基本一致且不为0,则可以判断电压采样是正常的,可以进行下一步,否则检查电压采样的硬件电路以及user.h中的采样范围设置。
2. 运行lab3a , 目的:检查电流检测电路是否正常:
按照< instaspin_labs.pdf>中的指导运行lab3a,切记不用接电机!!
运行lab3a,默认使能电压电流的offset校准,在变量窗口中查看gMotorVars.I_bias.value[X]和gMotorVars.V_bias.value[X]:
对已电流偏置I_bias,如果三个值一样(相差小数点后几位),且值在1.0左右(0.9~1.1),则说明电流采样电路稳态是正常的,即说明电流的偏置1.65V采样正常;否则需要检查电流检测电路的硬件!!
电压偏置,只要三个值一样,则可以认为正常;
上述步骤通过后,可以跑lab2a/b或者lab3a带电机;
3. 运行lab2a/b或lab3a , 目的:检查电流检测电路是否正常:
完全按照< instaspin_labs.pdf>的说明跑程序,如更改user.h中的电机参数,辨识电流等,直至完全能通过电机参数辨识,则说明硬件基本OK,可以跑后面的速度环、电流环等。
切记,参数辨识时非常关键的一步,如果参数辨识存在异常,如电阻电感参数明显异常或辨识过程电机跑的不顺畅,则需要调整user.h中的辨识电流频率等,并确定硬件上是有有bug,如PCB布线的合理性、电源波动等。
谢谢!
在使用自行设计的控制板后,使用28069M control board,使用motorware中lab2b实验例程,运行程序时,在RoverL状态下,电机有旋转的迹象,有些卡顿,发出声音;在RampUp状态下,电机能正常转动,没有异常的声音,在RatedFlux状态下,电机停转,同时报错CTRL_STATE_ERROR和EST_STATE_ERROR。电机识别的时候,看示波器的电流波形,觉得输出电流比TMDSHVMTRINSPIN套件的输出电流要大,识别失败以后,电机有稍许发热,不是很热
控制板的相电压采集和电流采集使用差分电路,电压采集三路相电压和一路直流电压,电流采集两路相电流,程序中修改一下参数:
1、USER_IQ_FULL_SCALE_VOLTAGE_V;2、USER_ADC_FULL_SCALE_VOLTAGE_V;3、USER_IQ_FULL_SCALE_CURRENT_A ;4、USER_ADC_FULL_SCALE_CURRENT_A ;5、USER_NUM_CURRENT_SENSORS ;
6、在hal.c中修改HAL_setupADCs()函数将8个AD采集通道改为6个采集通道,并将AD通道与原理图一一对应,将ADC_setIntSrc()函数最后一个形参改为ADC_IntSrc_EOC6;
7.、在hal.h中修改HAL_readAdcData()函数,将第一个ADC_readResult()的形参改为ADC_ResultNumber_0,最后一个ADC_readResult()的形参改为ADC_ResultNumber_6。
下面将修改后的hal.c ,user.h , hal.h以及单相电压、单相电流采集的原理图发一下,请大家看一下哈。
原理图简述如下:
1、电压采集电路:VB,VC等同于VA电路,其中,V-代表直流电压的负极,电机的相电压均相对于直流电压负极即V-,直流电压采集与相电压采集电路参数相同,同为差分电路,比例关系一致,增益为0.004333;
2、电流采集电路:I是电流传感器,电流传感器为13A,输出20mA,Vout=1.65-I*180*(3.3/10)
请问,这是为什么啊?程序还需要修改哪些地方呢?请大家指教
min zhou2:
回复 Martin Yu:
运行lab1 , 目的:检查输出相电压检测是否正常:切记不用接电机!!
输出电压一般接在IGBT的输出,lab1例程PWM都没有输出,怎么可能用lab1判别输出相电压正常与否?任何电压采样值都可能吧(未接电机负载,相当于悬空)
?