TI中文支持网
TI专业的中文技术问题搜集分享网站

IDDK_PM_Servo_F2837x 电机控制开发板问题:

HI!你好!目前在官网购买一款电机控制开发板,配套的代码是IDDK_PM_Servo_F2837x.,我们的目的是使用38279做伺服电机控制,使用的是电阻采样电流,多摩川绝对值编码器。

问题:

1、在文件IDDK_PM_Servo_F2837x-Settings.h中有定义电机参数:

// Define the electrical motor parametes (Estun Servomotor)
#defineRS 2.35 // Stator resistance (ohm)
#define RR // Rotor resistance (ohm)
#define LS 0.0065 // Stator inductance (H)
#define LR // Rotor inductance (H)
#define LM // Magnatizing inductance (H)
#define POLES 8 // Number of poles
// Number of poles

// Define the base quantites
#define BASE_VOLTAGE 236.14 // Base peak phase voltage (volt), Vdc/sqrt(3)
#define BASE_SHUNT_CURRENT 9.95 // Base peak phase current (amp), Max. measurable peak curr.
#define BASE_LEM_CURRENT 12.0 // —– do —–

但是在程序中找不到使用参数的函数,如找不到哪里使用 RS、LS、BASE_VOLTAGE 等。

并且在文件IDDK_PM_Servo_F2837x.C中,进行IPARK变换到SVGENDQ_MACRO(svgen1)调动,都没有找到关于电机参数R 、L。

// ——————————————————————————
ipark1.Qs = pi_iq.Out;
ipark1.Ds = pi_id.Out;
ipark1.Sine = park1.Sine;
ipark1.Cosine = park1.Cosine;
IPARK_MACRO(ipark1);

// ——————————————————————————
// Connect inputs of the SVGEN_DQ module and call the space-vector gen. macro
// ——————————————————————————
svgen1.Ualpha = ipark1.Alpha;
svgen1.Ubeta = ipark1.Beta;
SVGENDQ_MACRO(svgen1)

2、在在文件IDDK_PM_Servo_F2837x.C中,有调用采集电流后的值,可是使用电阻如何采电流部分没有找到,(应该存在不同临界点划分,采电流算法)。

current_sensor[SHUNT_CURRENT_SENSE-1].As = (float)IFB_SV_PPB* ADC_PU_PPB_SCALE_FACTOR;
current_sensor[SHUNT_CURRENT_SENSE-1].Bs = (float)IFB_SW_PPB* ADC_PU_PPB_SCALE_FACTOR;
current_sensor[SHUNT_CURRENT_SENSE-1].Cs = -current_sensor[SHUNT_CURRENT_SENSE-1].As

3、另外,与该套程序相关的汇编指令到哪里下载?以下段代码看不懂代表什么意思。

_currentSensorSuite:
                                    ;* AR4 assigned to $O$C3
                                    ;* AL assigned to $O$C4
                                   ;* AL assigned to $O$C5
                                     $C$DW$199 .dwtag DW_TAG_variable
                                     .dwattr   $C$DW$199, DW_AT_name("temp")
                                    .dwattr    $C$DW$199, DW_AT_TI_symbol_name("_temp")
                                    .dwattr    $C$DW$199, DW_AT_type(*$C$DW$T$978)
                                    .dwattr    $C$DW$199, DW_AT_location[DW_OP_breg20 -1]

以上是使用IDDK_PM_Servo_F2837x 电机控制开发板问题,希望能给与支持,多谢!QQ:3340086096

HeiHei:

对于问题

1.ti确实好多例程里很多变量用不到,一方面由于是这些代码可能是从其他版本的程序中拷贝过来的,另一方面,ti的工程师会在这个平台上开发一些新的算法,比如参数辨识,无传感等等,那么在这个时候这几个没用到的变量就显得很关键了。只不过目前realease的代码使用不到而已。

2在IDDK_PM_Servo_F2837x-Settings.h中一些宏定义定义了关于电流采样的一些设置 比如用电阻采样还是霍尔采样,电阻值大小等

HI!你好!目前在官网购买一款电机控制开发板,配套的代码是IDDK_PM_Servo_F2837x.,我们的目的是使用38279做伺服电机控制,使用的是电阻采样电流,多摩川绝对值编码器。

问题:

1、在文件IDDK_PM_Servo_F2837x-Settings.h中有定义电机参数:

// Define the electrical motor parametes (Estun Servomotor)
#defineRS 2.35 // Stator resistance (ohm)
#define RR // Rotor resistance (ohm)
#define LS 0.0065 // Stator inductance (H)
#define LR // Rotor inductance (H)
#define LM // Magnatizing inductance (H)
#define POLES 8 // Number of poles
// Number of poles

// Define the base quantites
#define BASE_VOLTAGE 236.14 // Base peak phase voltage (volt), Vdc/sqrt(3)
#define BASE_SHUNT_CURRENT 9.95 // Base peak phase current (amp), Max. measurable peak curr.
#define BASE_LEM_CURRENT 12.0 // —– do —–

但是在程序中找不到使用参数的函数,如找不到哪里使用 RS、LS、BASE_VOLTAGE 等。

并且在文件IDDK_PM_Servo_F2837x.C中,进行IPARK变换到SVGENDQ_MACRO(svgen1)调动,都没有找到关于电机参数R 、L。

// ——————————————————————————
ipark1.Qs = pi_iq.Out;
ipark1.Ds = pi_id.Out;
ipark1.Sine = park1.Sine;
ipark1.Cosine = park1.Cosine;
IPARK_MACRO(ipark1);

// ——————————————————————————
// Connect inputs of the SVGEN_DQ module and call the space-vector gen. macro
// ——————————————————————————
svgen1.Ualpha = ipark1.Alpha;
svgen1.Ubeta = ipark1.Beta;
SVGENDQ_MACRO(svgen1)

2、在在文件IDDK_PM_Servo_F2837x.C中,有调用采集电流后的值,可是使用电阻如何采电流部分没有找到,(应该存在不同临界点划分,采电流算法)。

current_sensor[SHUNT_CURRENT_SENSE-1].As = (float)IFB_SV_PPB* ADC_PU_PPB_SCALE_FACTOR;
current_sensor[SHUNT_CURRENT_SENSE-1].Bs = (float)IFB_SW_PPB* ADC_PU_PPB_SCALE_FACTOR;
current_sensor[SHUNT_CURRENT_SENSE-1].Cs = -current_sensor[SHUNT_CURRENT_SENSE-1].As

3、另外,与该套程序相关的汇编指令到哪里下载?以下段代码看不懂代表什么意思。

_currentSensorSuite:
                                    ;* AR4 assigned to $O$C3
                                    ;* AL assigned to $O$C4
                                   ;* AL assigned to $O$C5
                                     $C$DW$199 .dwtag DW_TAG_variable
                                     .dwattr   $C$DW$199, DW_AT_name("temp")
                                    .dwattr    $C$DW$199, DW_AT_TI_symbol_name("_temp")
                                    .dwattr    $C$DW$199, DW_AT_type(*$C$DW$T$978)
                                    .dwattr    $C$DW$199, DW_AT_location[DW_OP_breg20 -1]

以上是使用IDDK_PM_Servo_F2837x 电机控制开发板问题,希望能给与支持,多谢!QQ:3340086096

dxss dx:

回复 HeiHei:

SP:你好!

1、在我的理解中,使用矢量控制中,无论是带绝对值编码器还是无传感(我使用其它方案平台,无论有感还是无感,电机参数R,L都参与运算的。),也都应该是用到电机参数的!我想确定一下,使用IDDK_PM_Servo_F2837x-这套代码,使用传感器,是否还需要电机参数R、L?使用位置闭环控制是否还有电机惯性参数参与运算?

2、在在文件IDDK_PM_Servo_F2837x.C中,有调用采集电流后的值,可是使用电阻如何采电流部分没有找到,(应该存在不同临界点划分,采电流算法)。下面这两个电流,仅是最终采集到的到的A、B两相电流。

current_sensor[SHUNT_CURRENT_SENSE-1].As = (float)IFB_SV_PPB* ADC_PU_PPB_SCALE_FACTOR;current_sensor[SHUNT_CURRENT_SENSE-1].Bs = (float)IFB_SW_PPB* ADC_PU_PPB_SCALE_FACTOR;current_sensor[SHUNT_CURRENT_SENSE-1].Cs = -current_sensor[SHUNT_CURRENT_SENSE-1].As

另外,使用互感器与使用电阻采样电流的算法是不一样的,请问电阻采电流的那部分算法代码在哪里啊?还是软件封起来,不对外开放?

3、另外,与该套程序相关的汇编指令到哪里下载?以下段代码看不懂代表什么意思;在Sensored FOC of PMSM_IDDK.pdf中也没有说明。寻找一些汇编语言,也没有找相匹配的汇编指令(可能是没有找到资料)。

_currentSensorSuite:                                    ;* AR4 assigned to $O$C3                                    ;* AL assigned to $O$C4                                   ;* AL assigned to $O$C5                                     $C$DW$199 .dwtag DW_TAG_variable                                     .dwattr   $C$DW$199, DW_AT_name("temp")                                    .dwattr    $C$DW$199, DW_AT_TI_symbol_name("_temp")                                    .dwattr    $C$DW$199, DW_AT_type(*$C$DW$T$978)                                    .dwattr    $C$DW$199, DW_AT_location[DW_OP_breg20 -1]

4、使用IDDK_PM_Servo_F2837x.的开发板,是否有(GUI)上位机调试界面?如果有在哪里下载?

我在官网上没有找到,在controlSUITE安装路径中也没有找到。

以上是目前碰到的一些问题,麻烦你费心支持一下!多谢!

HI!你好!目前在官网购买一款电机控制开发板,配套的代码是IDDK_PM_Servo_F2837x.,我们的目的是使用38279做伺服电机控制,使用的是电阻采样电流,多摩川绝对值编码器。

问题:

1、在文件IDDK_PM_Servo_F2837x-Settings.h中有定义电机参数:

// Define the electrical motor parametes (Estun Servomotor)
#defineRS 2.35 // Stator resistance (ohm)
#define RR // Rotor resistance (ohm)
#define LS 0.0065 // Stator inductance (H)
#define LR // Rotor inductance (H)
#define LM // Magnatizing inductance (H)
#define POLES 8 // Number of poles
// Number of poles

// Define the base quantites
#define BASE_VOLTAGE 236.14 // Base peak phase voltage (volt), Vdc/sqrt(3)
#define BASE_SHUNT_CURRENT 9.95 // Base peak phase current (amp), Max. measurable peak curr.
#define BASE_LEM_CURRENT 12.0 // —– do —–

但是在程序中找不到使用参数的函数,如找不到哪里使用 RS、LS、BASE_VOLTAGE 等。

并且在文件IDDK_PM_Servo_F2837x.C中,进行IPARK变换到SVGENDQ_MACRO(svgen1)调动,都没有找到关于电机参数R 、L。

// ——————————————————————————
ipark1.Qs = pi_iq.Out;
ipark1.Ds = pi_id.Out;
ipark1.Sine = park1.Sine;
ipark1.Cosine = park1.Cosine;
IPARK_MACRO(ipark1);

// ——————————————————————————
// Connect inputs of the SVGEN_DQ module and call the space-vector gen. macro
// ——————————————————————————
svgen1.Ualpha = ipark1.Alpha;
svgen1.Ubeta = ipark1.Beta;
SVGENDQ_MACRO(svgen1)

2、在在文件IDDK_PM_Servo_F2837x.C中,有调用采集电流后的值,可是使用电阻如何采电流部分没有找到,(应该存在不同临界点划分,采电流算法)。

current_sensor[SHUNT_CURRENT_SENSE-1].As = (float)IFB_SV_PPB* ADC_PU_PPB_SCALE_FACTOR;
current_sensor[SHUNT_CURRENT_SENSE-1].Bs = (float)IFB_SW_PPB* ADC_PU_PPB_SCALE_FACTOR;
current_sensor[SHUNT_CURRENT_SENSE-1].Cs = -current_sensor[SHUNT_CURRENT_SENSE-1].As

3、另外,与该套程序相关的汇编指令到哪里下载?以下段代码看不懂代表什么意思。

_currentSensorSuite:
                                    ;* AR4 assigned to $O$C3
                                    ;* AL assigned to $O$C4
                                   ;* AL assigned to $O$C5
                                     $C$DW$199 .dwtag DW_TAG_variable
                                     .dwattr   $C$DW$199, DW_AT_name("temp")
                                    .dwattr    $C$DW$199, DW_AT_TI_symbol_name("_temp")
                                    .dwattr    $C$DW$199, DW_AT_type(*$C$DW$T$978)
                                    .dwattr    $C$DW$199, DW_AT_location[DW_OP_breg20 -1]

以上是使用IDDK_PM_Servo_F2837x 电机控制开发板问题,希望能给与支持,多谢!QQ:3340086096

HeiHei:

回复 dxss dx:

你好

1、这个位置环没有用到电机的RL等参数 具体你可以看这个工程中带的pdf文档,第38页是整个闭环系统框图。也没有涉及到电机惯量辨识。

2、我不理解你说的电阻采样电流算法的的是什么意思?你是想知道模拟量值是怎么转换为实际标幺值的吗?我的理解是这样的,在ti例程的矢量变换算法里,电流部分的处理过程就是 电阻采样->减去offset值->乘以某个转换系数转换成对应的标幺值。

current_sensor[LEM_CURRENT_SENSE-1].As   = (float)IFB_LEMV_PPB* ADC_PU_PPB_SCALE_FACTOR * LEM_TO_SHUNT;

以这句代码为例,在执行完以后,current_sensor[SHUNT_CURRENT_SENSE-1].As的值已经转换为了标幺值。具体你可以看看每个变量代表的意义以及电路图。程序中不管是用电阻采样还是霍尔采样 只要更改一个相应的宏定义值即可。

3.这套程序没有相应的汇编代码,最多只能通过ccs看到反汇编后的代码,毕竟汇编指令已经没有多少人在用了,也不利于产品推广维护。目前还没有对应的gui界面。

HI!你好!目前在官网购买一款电机控制开发板,配套的代码是IDDK_PM_Servo_F2837x.,我们的目的是使用38279做伺服电机控制,使用的是电阻采样电流,多摩川绝对值编码器。

问题:

1、在文件IDDK_PM_Servo_F2837x-Settings.h中有定义电机参数:

// Define the electrical motor parametes (Estun Servomotor)
#defineRS 2.35 // Stator resistance (ohm)
#define RR // Rotor resistance (ohm)
#define LS 0.0065 // Stator inductance (H)
#define LR // Rotor inductance (H)
#define LM // Magnatizing inductance (H)
#define POLES 8 // Number of poles
// Number of poles

// Define the base quantites
#define BASE_VOLTAGE 236.14 // Base peak phase voltage (volt), Vdc/sqrt(3)
#define BASE_SHUNT_CURRENT 9.95 // Base peak phase current (amp), Max. measurable peak curr.
#define BASE_LEM_CURRENT 12.0 // —– do —–

但是在程序中找不到使用参数的函数,如找不到哪里使用 RS、LS、BASE_VOLTAGE 等。

并且在文件IDDK_PM_Servo_F2837x.C中,进行IPARK变换到SVGENDQ_MACRO(svgen1)调动,都没有找到关于电机参数R 、L。

// ——————————————————————————
ipark1.Qs = pi_iq.Out;
ipark1.Ds = pi_id.Out;
ipark1.Sine = park1.Sine;
ipark1.Cosine = park1.Cosine;
IPARK_MACRO(ipark1);

// ——————————————————————————
// Connect inputs of the SVGEN_DQ module and call the space-vector gen. macro
// ——————————————————————————
svgen1.Ualpha = ipark1.Alpha;
svgen1.Ubeta = ipark1.Beta;
SVGENDQ_MACRO(svgen1)

2、在在文件IDDK_PM_Servo_F2837x.C中,有调用采集电流后的值,可是使用电阻如何采电流部分没有找到,(应该存在不同临界点划分,采电流算法)。

current_sensor[SHUNT_CURRENT_SENSE-1].As = (float)IFB_SV_PPB* ADC_PU_PPB_SCALE_FACTOR;
current_sensor[SHUNT_CURRENT_SENSE-1].Bs = (float)IFB_SW_PPB* ADC_PU_PPB_SCALE_FACTOR;
current_sensor[SHUNT_CURRENT_SENSE-1].Cs = -current_sensor[SHUNT_CURRENT_SENSE-1].As

3、另外,与该套程序相关的汇编指令到哪里下载?以下段代码看不懂代表什么意思。

_currentSensorSuite:
                                    ;* AR4 assigned to $O$C3
                                    ;* AL assigned to $O$C4
                                   ;* AL assigned to $O$C5
                                     $C$DW$199 .dwtag DW_TAG_variable
                                     .dwattr   $C$DW$199, DW_AT_name("temp")
                                    .dwattr    $C$DW$199, DW_AT_TI_symbol_name("_temp")
                                    .dwattr    $C$DW$199, DW_AT_type(*$C$DW$T$978)
                                    .dwattr    $C$DW$199, DW_AT_location[DW_OP_breg20 -1]

以上是使用IDDK_PM_Servo_F2837x 电机控制开发板问题,希望能给与支持,多谢!QQ:3340086096

dxss dx:

回复 HeiHei:

SP:首先感谢你的回复!

2、使用电阻进行电流采样时,应该有在PWM有效点上采集的才可以在运算中使用;而矢量控制时,三路上下桥的PWM脉宽是根据位置在变换的,电流采样点要始终保持在有效点上,就要进行处理跳过MOS开关毛刺时间和电阻噪音时间,再同过边界计算何时才是ADC才电流的合适时间点,这就是我所谓的电阻电流采样算法,而在该程序中,我没有找到。

current_sensor[SHUNT_CURRENT_SENSE-1].As = (float)IFB_SV_PPB* ADC_PU_PPB_SCALE_FACTOR; current_sensor[SHUNT_CURRENT_SENSE-1].Bs = (float)IFB_SW_PPB* ADC_PU_PPB_SCALE_FACTOR;

而程序中只有(#define IFB_SV_PPB    ((signed int)AdcaResultRegs.ADCPPB1RESULT.all))采样电流结果,前面何时采样电流没有体现出来!而不是选用哪种电流采样模式。

谢谢!

HI!你好!目前在官网购买一款电机控制开发板,配套的代码是IDDK_PM_Servo_F2837x.,我们的目的是使用38279做伺服电机控制,使用的是电阻采样电流,多摩川绝对值编码器。

问题:

1、在文件IDDK_PM_Servo_F2837x-Settings.h中有定义电机参数:

// Define the electrical motor parametes (Estun Servomotor)
#defineRS 2.35 // Stator resistance (ohm)
#define RR // Rotor resistance (ohm)
#define LS 0.0065 // Stator inductance (H)
#define LR // Rotor inductance (H)
#define LM // Magnatizing inductance (H)
#define POLES 8 // Number of poles
// Number of poles

// Define the base quantites
#define BASE_VOLTAGE 236.14 // Base peak phase voltage (volt), Vdc/sqrt(3)
#define BASE_SHUNT_CURRENT 9.95 // Base peak phase current (amp), Max. measurable peak curr.
#define BASE_LEM_CURRENT 12.0 // —– do —–

但是在程序中找不到使用参数的函数,如找不到哪里使用 RS、LS、BASE_VOLTAGE 等。

并且在文件IDDK_PM_Servo_F2837x.C中,进行IPARK变换到SVGENDQ_MACRO(svgen1)调动,都没有找到关于电机参数R 、L。

// ——————————————————————————
ipark1.Qs = pi_iq.Out;
ipark1.Ds = pi_id.Out;
ipark1.Sine = park1.Sine;
ipark1.Cosine = park1.Cosine;
IPARK_MACRO(ipark1);

// ——————————————————————————
// Connect inputs of the SVGEN_DQ module and call the space-vector gen. macro
// ——————————————————————————
svgen1.Ualpha = ipark1.Alpha;
svgen1.Ubeta = ipark1.Beta;
SVGENDQ_MACRO(svgen1)

2、在在文件IDDK_PM_Servo_F2837x.C中,有调用采集电流后的值,可是使用电阻如何采电流部分没有找到,(应该存在不同临界点划分,采电流算法)。

current_sensor[SHUNT_CURRENT_SENSE-1].As = (float)IFB_SV_PPB* ADC_PU_PPB_SCALE_FACTOR;
current_sensor[SHUNT_CURRENT_SENSE-1].Bs = (float)IFB_SW_PPB* ADC_PU_PPB_SCALE_FACTOR;
current_sensor[SHUNT_CURRENT_SENSE-1].Cs = -current_sensor[SHUNT_CURRENT_SENSE-1].As

3、另外,与该套程序相关的汇编指令到哪里下载?以下段代码看不懂代表什么意思。

_currentSensorSuite:
                                    ;* AR4 assigned to $O$C3
                                    ;* AL assigned to $O$C4
                                   ;* AL assigned to $O$C5
                                     $C$DW$199 .dwtag DW_TAG_variable
                                     .dwattr   $C$DW$199, DW_AT_name("temp")
                                    .dwattr    $C$DW$199, DW_AT_TI_symbol_name("_temp")
                                    .dwattr    $C$DW$199, DW_AT_type(*$C$DW$T$978)
                                    .dwattr    $C$DW$199, DW_AT_location[DW_OP_breg20 -1]

以上是使用IDDK_PM_Servo_F2837x 电机控制开发板问题,希望能给与支持,多谢!QQ:3340086096

HeiHei:

回复 dxss dx:

你好 明白你的意思了。是这样的 不知道你有没有调试过ti之前的一些电机例程。ti的电机例程中 一般都选择pwm的下溢中断时刻采样电流,根据svpwm算法 此时上桥是关闭的 下桥正好开通 而且是开通了一段时间  而采样电阻也位于下桥 此时采样电流最佳 你可以看一下程序中对于pwm的配置和adc的配置

HI!你好!目前在官网购买一款电机控制开发板,配套的代码是IDDK_PM_Servo_F2837x.,我们的目的是使用38279做伺服电机控制,使用的是电阻采样电流,多摩川绝对值编码器。

问题:

1、在文件IDDK_PM_Servo_F2837x-Settings.h中有定义电机参数:

// Define the electrical motor parametes (Estun Servomotor)
#defineRS 2.35 // Stator resistance (ohm)
#define RR // Rotor resistance (ohm)
#define LS 0.0065 // Stator inductance (H)
#define LR // Rotor inductance (H)
#define LM // Magnatizing inductance (H)
#define POLES 8 // Number of poles
// Number of poles

// Define the base quantites
#define BASE_VOLTAGE 236.14 // Base peak phase voltage (volt), Vdc/sqrt(3)
#define BASE_SHUNT_CURRENT 9.95 // Base peak phase current (amp), Max. measurable peak curr.
#define BASE_LEM_CURRENT 12.0 // —– do —–

但是在程序中找不到使用参数的函数,如找不到哪里使用 RS、LS、BASE_VOLTAGE 等。

并且在文件IDDK_PM_Servo_F2837x.C中,进行IPARK变换到SVGENDQ_MACRO(svgen1)调动,都没有找到关于电机参数R 、L。

// ——————————————————————————
ipark1.Qs = pi_iq.Out;
ipark1.Ds = pi_id.Out;
ipark1.Sine = park1.Sine;
ipark1.Cosine = park1.Cosine;
IPARK_MACRO(ipark1);

// ——————————————————————————
// Connect inputs of the SVGEN_DQ module and call the space-vector gen. macro
// ——————————————————————————
svgen1.Ualpha = ipark1.Alpha;
svgen1.Ubeta = ipark1.Beta;
SVGENDQ_MACRO(svgen1)

2、在在文件IDDK_PM_Servo_F2837x.C中,有调用采集电流后的值,可是使用电阻如何采电流部分没有找到,(应该存在不同临界点划分,采电流算法)。

current_sensor[SHUNT_CURRENT_SENSE-1].As = (float)IFB_SV_PPB* ADC_PU_PPB_SCALE_FACTOR;
current_sensor[SHUNT_CURRENT_SENSE-1].Bs = (float)IFB_SW_PPB* ADC_PU_PPB_SCALE_FACTOR;
current_sensor[SHUNT_CURRENT_SENSE-1].Cs = -current_sensor[SHUNT_CURRENT_SENSE-1].As

3、另外,与该套程序相关的汇编指令到哪里下载?以下段代码看不懂代表什么意思。

_currentSensorSuite:
                                    ;* AR4 assigned to $O$C3
                                    ;* AL assigned to $O$C4
                                   ;* AL assigned to $O$C5
                                     $C$DW$199 .dwtag DW_TAG_variable
                                     .dwattr   $C$DW$199, DW_AT_name("temp")
                                    .dwattr    $C$DW$199, DW_AT_TI_symbol_name("_temp")
                                    .dwattr    $C$DW$199, DW_AT_type(*$C$DW$T$978)
                                    .dwattr    $C$DW$199, DW_AT_location[DW_OP_breg20 -1]

以上是使用IDDK_PM_Servo_F2837x 电机控制开发板问题,希望能给与支持,多谢!QQ:3340086096

dxss dx:

回复 HeiHei:

SP:

首先感谢你在百忙中给予支持,其它问题基本清楚了,只是对于电流采样,还是有点疑问,电流采样的确是要在下桥打开是采电流的,如果仅仅是在PWM配置和ADC配置上初始化上看,应该是看不到的,如果是在程序运行中或中断中有相应ADC配置改动,进行采电流,那就应该是我需要研究的,由于程序没有分析完,所以不是很清楚,若有疑问再来请教!再次感谢你的回复!谢谢!

HI!你好!目前在官网购买一款电机控制开发板,配套的代码是IDDK_PM_Servo_F2837x.,我们的目的是使用38279做伺服电机控制,使用的是电阻采样电流,多摩川绝对值编码器。

问题:

1、在文件IDDK_PM_Servo_F2837x-Settings.h中有定义电机参数:

// Define the electrical motor parametes (Estun Servomotor)
#defineRS 2.35 // Stator resistance (ohm)
#define RR // Rotor resistance (ohm)
#define LS 0.0065 // Stator inductance (H)
#define LR // Rotor inductance (H)
#define LM // Magnatizing inductance (H)
#define POLES 8 // Number of poles
// Number of poles

// Define the base quantites
#define BASE_VOLTAGE 236.14 // Base peak phase voltage (volt), Vdc/sqrt(3)
#define BASE_SHUNT_CURRENT 9.95 // Base peak phase current (amp), Max. measurable peak curr.
#define BASE_LEM_CURRENT 12.0 // —– do —–

但是在程序中找不到使用参数的函数,如找不到哪里使用 RS、LS、BASE_VOLTAGE 等。

并且在文件IDDK_PM_Servo_F2837x.C中,进行IPARK变换到SVGENDQ_MACRO(svgen1)调动,都没有找到关于电机参数R 、L。

// ——————————————————————————
ipark1.Qs = pi_iq.Out;
ipark1.Ds = pi_id.Out;
ipark1.Sine = park1.Sine;
ipark1.Cosine = park1.Cosine;
IPARK_MACRO(ipark1);

// ——————————————————————————
// Connect inputs of the SVGEN_DQ module and call the space-vector gen. macro
// ——————————————————————————
svgen1.Ualpha = ipark1.Alpha;
svgen1.Ubeta = ipark1.Beta;
SVGENDQ_MACRO(svgen1)

2、在在文件IDDK_PM_Servo_F2837x.C中,有调用采集电流后的值,可是使用电阻如何采电流部分没有找到,(应该存在不同临界点划分,采电流算法)。

current_sensor[SHUNT_CURRENT_SENSE-1].As = (float)IFB_SV_PPB* ADC_PU_PPB_SCALE_FACTOR;
current_sensor[SHUNT_CURRENT_SENSE-1].Bs = (float)IFB_SW_PPB* ADC_PU_PPB_SCALE_FACTOR;
current_sensor[SHUNT_CURRENT_SENSE-1].Cs = -current_sensor[SHUNT_CURRENT_SENSE-1].As

3、另外,与该套程序相关的汇编指令到哪里下载?以下段代码看不懂代表什么意思。

_currentSensorSuite:
                                    ;* AR4 assigned to $O$C3
                                    ;* AL assigned to $O$C4
                                   ;* AL assigned to $O$C5
                                     $C$DW$199 .dwtag DW_TAG_variable
                                     .dwattr   $C$DW$199, DW_AT_name("temp")
                                    .dwattr    $C$DW$199, DW_AT_TI_symbol_name("_temp")
                                    .dwattr    $C$DW$199, DW_AT_type(*$C$DW$T$978)
                                    .dwattr    $C$DW$199, DW_AT_location[DW_OP_breg20 -1]

以上是使用IDDK_PM_Servo_F2837x 电机控制开发板问题,希望能给与支持,多谢!QQ:3340086096

dxss dx:

回复 HeiHei:

SP:

你好!我们目前使用IDDK_PM_Servo_F2837x 电机控制开发板连接多摩川伺服电机,多摩川伺服电机使用的是NIC协议,而在开发板子代码中有以下几种编码器定义,我不知道选哪种可以与电机通讯。(之前与Ti的工程师沟通过,说TI的开发板支持多摩川伺服通讯协议)

// Select Position Feedback Option#define QEP_POS_ENCODER 1#define RESOLVER_POS_ENCODER 2#define BISS_POS_ENCODER 3#define ENDAT_POS_ENCODER 4#define SINCOS_POS_ENCODER 5

或在其它位置有定义?

HI!你好!目前在官网购买一款电机控制开发板,配套的代码是IDDK_PM_Servo_F2837x.,我们的目的是使用38279做伺服电机控制,使用的是电阻采样电流,多摩川绝对值编码器。

问题:

1、在文件IDDK_PM_Servo_F2837x-Settings.h中有定义电机参数:

// Define the electrical motor parametes (Estun Servomotor)
#defineRS 2.35 // Stator resistance (ohm)
#define RR // Rotor resistance (ohm)
#define LS 0.0065 // Stator inductance (H)
#define LR // Rotor inductance (H)
#define LM // Magnatizing inductance (H)
#define POLES 8 // Number of poles
// Number of poles

// Define the base quantites
#define BASE_VOLTAGE 236.14 // Base peak phase voltage (volt), Vdc/sqrt(3)
#define BASE_SHUNT_CURRENT 9.95 // Base peak phase current (amp), Max. measurable peak curr.
#define BASE_LEM_CURRENT 12.0 // —– do —–

但是在程序中找不到使用参数的函数,如找不到哪里使用 RS、LS、BASE_VOLTAGE 等。

并且在文件IDDK_PM_Servo_F2837x.C中,进行IPARK变换到SVGENDQ_MACRO(svgen1)调动,都没有找到关于电机参数R 、L。

// ——————————————————————————
ipark1.Qs = pi_iq.Out;
ipark1.Ds = pi_id.Out;
ipark1.Sine = park1.Sine;
ipark1.Cosine = park1.Cosine;
IPARK_MACRO(ipark1);

// ——————————————————————————
// Connect inputs of the SVGEN_DQ module and call the space-vector gen. macro
// ——————————————————————————
svgen1.Ualpha = ipark1.Alpha;
svgen1.Ubeta = ipark1.Beta;
SVGENDQ_MACRO(svgen1)

2、在在文件IDDK_PM_Servo_F2837x.C中,有调用采集电流后的值,可是使用电阻如何采电流部分没有找到,(应该存在不同临界点划分,采电流算法)。

current_sensor[SHUNT_CURRENT_SENSE-1].As = (float)IFB_SV_PPB* ADC_PU_PPB_SCALE_FACTOR;
current_sensor[SHUNT_CURRENT_SENSE-1].Bs = (float)IFB_SW_PPB* ADC_PU_PPB_SCALE_FACTOR;
current_sensor[SHUNT_CURRENT_SENSE-1].Cs = -current_sensor[SHUNT_CURRENT_SENSE-1].As

3、另外,与该套程序相关的汇编指令到哪里下载?以下段代码看不懂代表什么意思。

_currentSensorSuite:
                                    ;* AR4 assigned to $O$C3
                                    ;* AL assigned to $O$C4
                                   ;* AL assigned to $O$C5
                                     $C$DW$199 .dwtag DW_TAG_variable
                                     .dwattr   $C$DW$199, DW_AT_name("temp")
                                    .dwattr    $C$DW$199, DW_AT_TI_symbol_name("_temp")
                                    .dwattr    $C$DW$199, DW_AT_type(*$C$DW$T$978)
                                    .dwattr    $C$DW$199, DW_AT_location[DW_OP_breg20 -1]

以上是使用IDDK_PM_Servo_F2837x 电机控制开发板问题,希望能给与支持,多谢!QQ:3340086096

HeiHei:

回复 dxss dx:

你好 目前iddk支持的编码器类型就这五种,其中3和4是绝对值编码器 支持的协议分别为biss协议和EnData协议 你最好要确认下你那款伺服电机编码器是不是这个协议,或者说nic协议是不是以上两种协议的一个分支。 因为biss和endata是行业内用的比较多的两种编码协议 。而且像多摩川这种企业的产品肯定是针对不同的市场有不同的协议 。你最好根据你电机的型号查一查他具体用的协议是什么

HI!你好!目前在官网购买一款电机控制开发板,配套的代码是IDDK_PM_Servo_F2837x.,我们的目的是使用38279做伺服电机控制,使用的是电阻采样电流,多摩川绝对值编码器。

问题:

1、在文件IDDK_PM_Servo_F2837x-Settings.h中有定义电机参数:

// Define the electrical motor parametes (Estun Servomotor)
#defineRS 2.35 // Stator resistance (ohm)
#define RR // Rotor resistance (ohm)
#define LS 0.0065 // Stator inductance (H)
#define LR // Rotor inductance (H)
#define LM // Magnatizing inductance (H)
#define POLES 8 // Number of poles
// Number of poles

// Define the base quantites
#define BASE_VOLTAGE 236.14 // Base peak phase voltage (volt), Vdc/sqrt(3)
#define BASE_SHUNT_CURRENT 9.95 // Base peak phase current (amp), Max. measurable peak curr.
#define BASE_LEM_CURRENT 12.0 // —– do —–

但是在程序中找不到使用参数的函数,如找不到哪里使用 RS、LS、BASE_VOLTAGE 等。

并且在文件IDDK_PM_Servo_F2837x.C中,进行IPARK变换到SVGENDQ_MACRO(svgen1)调动,都没有找到关于电机参数R 、L。

// ——————————————————————————
ipark1.Qs = pi_iq.Out;
ipark1.Ds = pi_id.Out;
ipark1.Sine = park1.Sine;
ipark1.Cosine = park1.Cosine;
IPARK_MACRO(ipark1);

// ——————————————————————————
// Connect inputs of the SVGEN_DQ module and call the space-vector gen. macro
// ——————————————————————————
svgen1.Ualpha = ipark1.Alpha;
svgen1.Ubeta = ipark1.Beta;
SVGENDQ_MACRO(svgen1)

2、在在文件IDDK_PM_Servo_F2837x.C中,有调用采集电流后的值,可是使用电阻如何采电流部分没有找到,(应该存在不同临界点划分,采电流算法)。

current_sensor[SHUNT_CURRENT_SENSE-1].As = (float)IFB_SV_PPB* ADC_PU_PPB_SCALE_FACTOR;
current_sensor[SHUNT_CURRENT_SENSE-1].Bs = (float)IFB_SW_PPB* ADC_PU_PPB_SCALE_FACTOR;
current_sensor[SHUNT_CURRENT_SENSE-1].Cs = -current_sensor[SHUNT_CURRENT_SENSE-1].As

3、另外,与该套程序相关的汇编指令到哪里下载?以下段代码看不懂代表什么意思。

_currentSensorSuite:
                                    ;* AR4 assigned to $O$C3
                                    ;* AL assigned to $O$C4
                                   ;* AL assigned to $O$C5
                                     $C$DW$199 .dwtag DW_TAG_variable
                                     .dwattr   $C$DW$199, DW_AT_name("temp")
                                    .dwattr    $C$DW$199, DW_AT_TI_symbol_name("_temp")
                                    .dwattr    $C$DW$199, DW_AT_type(*$C$DW$T$978)
                                    .dwattr    $C$DW$199, DW_AT_location[DW_OP_breg20 -1]

以上是使用IDDK_PM_Servo_F2837x 电机控制开发板问题,希望能给与支持,多谢!QQ:3340086096

dxss dx:

回复 HeiHei:

SP:

我问过多摩川代理了,他们就一种通讯协议,没有多种;之前Ti工程师说,TI支持多摩川伺服协议的。电机型号是TS4609N2331E200.

HI!你好!目前在官网购买一款电机控制开发板,配套的代码是IDDK_PM_Servo_F2837x.,我们的目的是使用38279做伺服电机控制,使用的是电阻采样电流,多摩川绝对值编码器。

问题:

1、在文件IDDK_PM_Servo_F2837x-Settings.h中有定义电机参数:

// Define the electrical motor parametes (Estun Servomotor)
#defineRS 2.35 // Stator resistance (ohm)
#define RR // Rotor resistance (ohm)
#define LS 0.0065 // Stator inductance (H)
#define LR // Rotor inductance (H)
#define LM // Magnatizing inductance (H)
#define POLES 8 // Number of poles
// Number of poles

// Define the base quantites
#define BASE_VOLTAGE 236.14 // Base peak phase voltage (volt), Vdc/sqrt(3)
#define BASE_SHUNT_CURRENT 9.95 // Base peak phase current (amp), Max. measurable peak curr.
#define BASE_LEM_CURRENT 12.0 // —– do —–

但是在程序中找不到使用参数的函数,如找不到哪里使用 RS、LS、BASE_VOLTAGE 等。

并且在文件IDDK_PM_Servo_F2837x.C中,进行IPARK变换到SVGENDQ_MACRO(svgen1)调动,都没有找到关于电机参数R 、L。

// ——————————————————————————
ipark1.Qs = pi_iq.Out;
ipark1.Ds = pi_id.Out;
ipark1.Sine = park1.Sine;
ipark1.Cosine = park1.Cosine;
IPARK_MACRO(ipark1);

// ——————————————————————————
// Connect inputs of the SVGEN_DQ module and call the space-vector gen. macro
// ——————————————————————————
svgen1.Ualpha = ipark1.Alpha;
svgen1.Ubeta = ipark1.Beta;
SVGENDQ_MACRO(svgen1)

2、在在文件IDDK_PM_Servo_F2837x.C中,有调用采集电流后的值,可是使用电阻如何采电流部分没有找到,(应该存在不同临界点划分,采电流算法)。

current_sensor[SHUNT_CURRENT_SENSE-1].As = (float)IFB_SV_PPB* ADC_PU_PPB_SCALE_FACTOR;
current_sensor[SHUNT_CURRENT_SENSE-1].Bs = (float)IFB_SW_PPB* ADC_PU_PPB_SCALE_FACTOR;
current_sensor[SHUNT_CURRENT_SENSE-1].Cs = -current_sensor[SHUNT_CURRENT_SENSE-1].As

3、另外,与该套程序相关的汇编指令到哪里下载?以下段代码看不懂代表什么意思。

_currentSensorSuite:
                                    ;* AR4 assigned to $O$C3
                                    ;* AL assigned to $O$C4
                                   ;* AL assigned to $O$C5
                                     $C$DW$199 .dwtag DW_TAG_variable
                                     .dwattr   $C$DW$199, DW_AT_name("temp")
                                    .dwattr    $C$DW$199, DW_AT_TI_symbol_name("_temp")
                                    .dwattr    $C$DW$199, DW_AT_type(*$C$DW$T$978)
                                    .dwattr    $C$DW$199, DW_AT_location[DW_OP_breg20 -1]

以上是使用IDDK_PM_Servo_F2837x 电机控制开发板问题,希望能给与支持,多谢!QQ:3340086096

10#:

回复 dxss dx:

Tamagawa的编码器解码方案TI已经开发完成并发布了,请更新controlsuite进行升级然后在以下路径查找:

C:\ti\controlSUITE\libs\app_libs\position_manager\v01_01_00_00\tformat

赞(0)
未经允许不得转载:TI中文支持网 » IDDK_PM_Servo_F2837x 电机控制开发板问题:
分享到: 更多 (0)