跳转到主要内容

【周末创客】电机控制

judy 提交于

<p>本文转载自: <span id="profileBt"><a href="https://mp.weixin.qq.com/s?__biz=MzU0Mzk1MzMyNQ==&amp;mid=2247484345&am…; id="js_name">PYNQ开源社区微信公众号</a></span></p>

<center><img src="http://xilinx.eetrend.com/files/2020-06/wen_zhang_/100049838-99645-tu1…; alt=""></center>

IIoT-SPYN是一个基于IIoT-EDDP开源平台和PYNQ软件框架的项目,它展示了如何在PYNQ开源框架下对电机进行控制、监视、捕获数据、可视化和分析。
<center><img src="http://xilinx.eetrend.com/files/2020-06/wen_zhang_/100049838-99646-tu2…; alt=""></center>

上图为工程项目示意图,PL侧包含了对电机控制、状态采集的模块。在PYNQ中加载比特流后,就可以访问到这些已实现好的模块,对电机进行控制和状态检测。
<center><img src="http://xilinx.eetrend.com/files/2020-06/wen_zhang_/100049838-99647-tu3…; alt=""></center>

此项目中采用的FOC算法示意图,包括Clarke变换、Park变换、PWM编码器、PI控制器、电流采样等。Overlay中的算法模块通过Vivado HLS生成。

<strong>设备清单</strong>

<li>PYNQ-Z2套件</li>

<li>EDDP Kit</li>

<strong>快速开始</strong>

1)方法一

在Jupyter界面中new选项里选择新建一个终端,在终端输入:

udo pip3 install --upgrade git+https://github.com/Xilinx/IIoT-SPYN.git

2) 方法二

下载IIoT-SPYN的zip压缩包,上传压缩包到PYNQ板卡,在终端中unzip上传的压缩包,移动到解压的目录下然后采用pip安装

sudo pip3 install -e .

<strong>示例Notebook演示</strong>

Overlay自带2个Notebook,spyn.ipynb和spyn_dash.ipynb
<center><img src="http://xilinx.eetrend.com/files/2020-06/wen_zhang_/100049838-99648-tu4…; alt=""></center>

2个notebook均展示了完整的电机控制、状态检测和分析功能,不同的是spyn_dash.ipynb均在dashboard上实现。

以下为spyn.ipynb代码执行的部分截图。
<center><img src="http://xilinx.eetrend.com/files/2020-06/wen_zhang_/100049838-99649-tu5…; alt=""></center>
<center><img src="http://xilinx.eetrend.com/files/2020-06/wen_zhang_/100049838-99650-tu6…; alt=""></center>
<center><img src="http://xilinx.eetrend.com/files/2020-06/wen_zhang_/100049838-99651-tu7…; alt=""></center>

以下为spyn_dash.ipynb代码执行的部分截图。
<center><img src="http://xilinx.eetrend.com/files/2020-06/wen_zhang_/100049838-99652-tu8…; alt=""></center>
<center><img src="http://xilinx.eetrend.com/files/2020-06/wen_zhang_/100049838-99653-tu9…; alt=""></center>

<strong>总结与展望</strong>

本Overlay中使用了FOC算法,它在本质上就是一些线性代数中的矩阵变换,这里讲述的是有传感器的FOC算法,转子的位置信息是通过绝对式磁编码器反馈的,直接是数字量。关于FOC算法的详细内容,可以参考有关电机理论的专业书籍,这里不再赘述。

本项目中的FOC算法全部使用HLS编写,使用AXI-Stream接口完成各模块的通信。我们可以通过上述AXIS监测器来从PS端看到各关键数据。读者可以使用github提供的tcl文件恢复出完整的Vivado工程,以此为基础调整其中的算法或者功能,打造适合自身需要的电机控制Overlay。