5957|5

44

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

【ST电机评测】任务一、二、进阶任务、默认任务 [复制链接]

本帖最后由 gyp1 于 2018-6-15 15:42 编辑

       快过节了,就把全部内容都发出来吧,至此全部任务完成(包括基本任务、扩展任务、默认任务、自拟任务),感谢EE。

任务一:电机运行时, 使用P-NUCLEO-IHM002测量 三电阻电流采样波形,并且通过DA 输出此波形, 并且截图

首先了解一下三电阻电流采样的原理图

程序使用三电阻取样,放大器各个参数如下图:

可以根据实际电路更改放大器各部分电阻配比,根据软件计算得出ADC偏置电压为1.559V,放大倍数为1.528,ADC读取时减去这个OFFSET在除以放大倍数就是实际电压了。换算后即可得到相电流。

1.首先进行Ia与电机OUT1相电压波形的对比
       测试中实际接线如下图,示波器通道1接到了F302的PA4(DAC1)引脚,示波器通道2接到了电机CH1相。


       接好后开启示波器,打开调试界面,开启电机,设置转速为18000转(电流最大),同时将DAC通道1设置为Ia,将示波器测得的波形截图记录,然后将DAC通道1设置为Ib,示波器截图并保存。

下图为Ia和电机OUT1相波形:

局部放大:



下图为Ib与电机OUT1相波形:


2.Ia与OUT1相实际电流相对比

使用霍尔电流传感器(ACS758)测量电机OUT1相实际电流波形与三相电阻采样Ia波形相对比图如下(CH2开启数字滤波,否则噪声太大),可见经过ADC采集得到的电流基本和实际的相电流变化趋势一致。


任务二:得到FOC控制时的关键变量:Ia, Ib, Ic, Ialpha, Ibeta, Id, Iq, Vd, Vq , 并且截图

Ia,Ib, Ic, Ialpha, Ibeta, Id, Iq, Vd, Vq各个变量之间关系如下图:


最开始我并不了解这些变量在程序中的所对应的变量命名,后来发现Workbench调试界面中的寄存器界面是有这些变量的,如下图:

但是实际使用中,连接板子后,启动电机,将各个变量后边的使能复选框点上后,重新读取寄存器时发现,这些复选框会失去原来的选中状态,对比发现,大部分可读取的变量(如Id、Iq等),在另一个界面是有显示的(也就是说使用到了),但是这些如Ia, Ib等变量。在其他界面未使用到,推测Workbench调试寄存器界面部分功能并没有完善。不过这个给了我一些提示。回到程序中,

找到串口相关函数,

int32_t UI_GetReg(UI_Handle_t *pHandle, MC_Protocol_REG_t bRegID)



获取寄存器值:


这个函数很清楚的告诉我们每个变量所对应的程序中的变量名称,然后根据这些提示可以学习到每个变量的功能。 这次使用STM Studio软件配合Workbench进行观测。电机设置为速度环模式,向STMstudio中添加相应变量,并启动记录。


     取其中一瞬间截图:

图片中由上到下依次是Ia,Ib,Ic,Ialpha,Ibeta,Id,Iq,Vd,Vq。可见Ia、Ib、Ic是有数学关系的,Ia+Ib+Ic=0;不过截图时数据可能不同步(不是同一时间点的数据)。下图为整个过程中各变量的变化趋势。

在400时刻启动电机,电机进入开环启动模式(400-1750时刻),之后电机进入闭环。




进阶任务:新旧版本电机驱动库的对比评测

      界面对比:
      SDK4.3:

       SDK5.0.3:

SDK 4.3版本的库是不完全开源的,使用之前需要先生成一个lib库,进入工程文件夹,打开STM32F30x_Workspace工程文件。点击Batch bulid,lib工程部分选择F302单电机模式,UserProject部分选择P-NUCLEO-IHM001_SINGLEDRIVE,然后编译即可使用。使用时应该将整个STM32 PMSM FOC LIB_051文件夹拷贝到自定义的目录下,然后进行编辑,以防修改错误无法还原。

\STM32PMSM FOC LIB_051\Web\SystemDriveParams文件夹中的配置文件如下图。

而5.0版本工程目录如下图,配置文件位于Inc文件夹中,而部分自定义源码在Src文件夹中,FOC库函数则在MCSDK_v5.x.x文件夹中。


4.3版本库提供了一些例子程序,加入到工程中并添加对应的宏定义即可使用。(\STM32 PMSM FOC LIB_051\Web\Project\STM32_SDK_Examples\)

4.3与5.0版本之间程序之间最大的差别就是,4.3版本库为了通用各个版本的控制板,各种函数使用条件编译的形式编写,这样不利于程序的阅读,而5.0版本则改进了这个问题,使用Cube来生成需要的函数,不需要的部分不添加进来,下图为mc_Task.c文件中状态机切换函数对比:

4.3

5.0


下载到板子上就可以调试电机了,调试界面如下:



       实际测试中两个版本的程序,运行起来并没有太大的差别,调速的效果基本一致。


       相比于SDK 5.0,界面方面没有什么太大的差别,SDK5.0与其最大的差别在于程序开源,导致程序的生成方式不同,4.3是通过Workbench在工程中的SystemDriveParams文件夹下生成.h文件。而5.0则是通过STM32Cube来生成整个工程,他所有的配置文件和可变源码是分别放在SRC与INC文件夹里的,不过这样在研发调试阶段不是很方便,因为不可避免的是需要在设计中加入自定义的IO口(外部中断,ADC,USART等),一旦使用Workbench编译,这些自定义的IO(在CUBE中配置的)都会消失,重新配置很麻烦。所以现在基本上通过Workbench来在线调试,调试好后记下参数,直接在工程中drive_parameters.h文件来直接修改PID等相关参数(可以说是上一版的优点,新版本Workbench在生成文件的时候会改变Cube的ioc文件,导致自定义的IO口消失)。

参与评测者默认领取的任务:您对SDK5.0的建议和反馈
       5.0相对于老版本库的优点:首先5.0库完全开源,可以让开发者去学习其中的算法,了解电机控制逻辑。4.3版本程序使用条件编译的方式,所有程序全包含在工程内,导致阅读不方便,现在新版本程序只会将需要的程序加入(依赖Cube),程序更加直观整洁。
建议和反馈:
       1.如果可以的话,在SDK5.0 Workbench的主界面增加一个功能,就是只修改.h文件,例如drive_parameters.h,同时用户可以选择要修改的.h配置文件(可以带有复选框),当然这还是要加一些相关的判断,毕竟在SDK5.0下增加一个功能或者修改传感器模式,.C源文件也是要改变的,这样的话如果用户只修改了PID,那么完全没必要重新编译,这样节省时间,可以提高效率。
       2.STM32 cube,其实是和上一个问题是一个,是另一种解决思路,如果用户添加了自定义的io或者功能,用户可以设置将其锁定(当然前提是不和FOC库冲突),Workbench不能对其修改(现在5.0 Workbench直接将CUBE的ioc文件替换。。。)。
       3.关于FOC内部算法,现在的库是可以使电机正反方向运转,但是很多种情况,我们是不希望电机倒转的(有些情况倒转是很危险的),所以如果可以是否可以增加一个选项(或者改变算法)完全限制电机反转。
       4.另外,现在5.0版本似乎还不支持中文目录(4.3是支持中文目录的)。
       5.On-the-FLY (顺风启动功能)不支持有感模式。
       6.希望将Workbench寄存器界面完善好。

感谢!


此内容由EEWORLD论坛网友gyp1原创,如需转载或用于商业用途需征得作者同意并注明出处

此帖出自stm32/stm8论坛

最新回复

我这个 DAC 接PA4 我的波形竟然是正弦波  正弦波感觉不对啊 而且还比较好的正弦波  详情 回复 发表于 2018-6-27 11:26
点赞 关注(1)
 

回复
举报

7219

帖子

195

TA的资源

五彩晶圆(高级)

沙发
 
主要任务一 不知道怎么完成  
请教下:直接用DAC输出么 需要自己另外编程么 官方程序里已经用了DAC了
此帖出自stm32/stm8论坛

点评

对的直接用就可以了,如果不好使可以试试加上DAC启动转换函数,然后在 Workbench里边就可以切换输出模式了  详情 回复 发表于 2018-6-15 15:41
 
 

回复

44

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
常见泽1 发表于 2018-6-15 15:24
主要任务一 不知道怎么完成  
请教下:直接用DAC输出么 需要自己另外编程么 官方程序里已经用了DAC了

对的直接用就可以了,如果不好使可以试试加上DAC启动转换函数,然后在 Workbench里边就可以切换输出模式了
此帖出自stm32/stm8论坛

点评

我这个 DAC 接PA4 我的波形竟然是正弦波 正弦波感觉不对啊 而且还比较好的正弦波  详情 回复 发表于 2018-6-27 11:26
 
 

回复

6

帖子

5

TA的资源

一粒金砂(初级)

4
 
热TFT热帖突然热通过热通过热提供
此帖出自stm32/stm8论坛
 
 
 

回复

7219

帖子

195

TA的资源

五彩晶圆(高级)

5
 
gyp1 发表于 2018-6-15 15:41
对的直接用就可以了,如果不好使可以试试加上DAC启动转换函数,然后在 Workbench里边就可以切换输出模式 ...

我这个 DAC 接PA4 我的波形竟然是正弦波  正弦波感觉不对啊 而且还比较好的正弦波
此帖出自stm32/stm8论坛

点评

有木有可能DAC是选上Valpha 了呢?  详情 回复 发表于 2018-6-27 11:30
 
 
 

回复

44

帖子

0

TA的资源

一粒金砂(中级)

6
 
常见泽1 发表于 2018-6-27 11:26
我这个 DAC 接PA4 我的波形竟然是正弦波  正弦波感觉不对啊 而且还比较好的正弦波

有木有可能DAC是选上Valpha 了呢?
此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表