本次活动的任务二和任务三如下所示:
任务二:得到FOC控制时的关键变量:Ia, Ib, Ic, Ialpha, Ibeta, Id, Iq, Vd, Vq , 并且截图
任务三:监控任意数据变量,并且截图
个人觉得在某种意义上这两个任务可以算是并立的,在监控数据的同时也就得到了变量的值。许多网友都使用STMStudio 这个工具完成了本次的任务,曾在项目开发过程中苦于实现实时数据的获取,切身体验了一把才发现实在是开发利器。对于要监控的这九个变量,首先感谢见泽哥指出位置,在生成的工程文件 /src/mc_tasks.c 里可以找到如下的代码:
捣鼓过电机的人都看得出,这段代码是FOC 控制算法里的本质内容,借用ST 家的培训资料,可分为如下几个步骤:
1.通过ADC 采样获得电机两相电流,三相电流间存在Ia+Ib+Ic =0 的关系;
2.静止坐标变换,三相 120 度 abc 坐标转为 两相 90 度 alpha, beta 坐标,ST 家公式如下:
3.旋转坐标变换,加入编码器读到的电转角,将坐标由定子映射到转子上,即 alpha,beta 坐标转为 d,q 坐标,ST 家公式如下:
4.得到的 Id,Iq 和作为反馈量和目标Id,Iq 进行PI 调整,得到 Vd,Vq 变量
5.反 park 变换,将两相的电压值重新转为三相
6.用SVPWM 算法实现输出调制,经硬件逆变成三相电流进入马达
仔细观看能发现中间还有 Circle_Limitation 这个函数,在MCSDK 固件说明文档里是这样介绍的:
其要实现的功能在培训文档也有提到:
内容介绍至此,用 STMStudio 抓数据试试
软件的获取和相关文档说明都可以在 ST 官网直接获得,下边简要讲解下步骤:
1.打开软件,导入工程目录下的 .axf 文件
2.选择要查看的变量,将其import 到观察表中
3.右键选择想观察的变量,将数据发送到显示图上
4.如下为 clarke 变化
5.如下为 park 变化
6.如下为 PI 调节
7.如下为 反 PARK 变换
8.变量还能记录生成 .txt 文档,大赞
此内容由EEWORLD论坛网友我的学号原创,如需转载或用于商业用途需征得作者同意并注明出处
本帖最后由 我的学号 于 2018-7-3 22:44 编辑