From 09b9871c5b586ca8d57e6468b9b4564e98b0ed75 Mon Sep 17 00:00:00 2001 From: Michael Chemic Date: Sun, 28 Jul 2024 22:32:34 +0800 Subject: [PATCH 1/4] Update README.md --- README.md | 97 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 95 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 08ce284..c5d9adf 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,95 @@ -# STM32G4-DRV8301-FOC -Supports ABZ Hall IIC encoders, using the standard hal library. +# ReadMe + + + +## About this document +此文档将会详细解析软件上各个模块功能,FOC控制原理,硬件电路相关内容。 + +## 第一章 硬件部分(Hardware) +### 使用的硬件设备 +该项目使用 ST公司生产的 STM32G474RE-Nucleo-64 评估板,TI 生产的 BOOSTXL-DRV8301 电机驱动板为主要开发套件。 + +![](STM32G474-Nucleo.png) + +相关资料请访问: +[](https://www.st.com/en/evaluation-tools/nucleo-g474re.html) +(ST的开发板在接口和设计上是深入思考后的产品,在开发中节约了很多时间) + +![](TI DRV8301.png) + +相关资料请访问: +[](https://www.ti.com.cn/tool/cn/BOOSTXL-DRV8301) + +* 由于这是一个前期验证的项目,硬件电路就先使用杜邦线连接了,后期完善后将会重新设计一块PCB。 + +### MCU 管脚分配 + +此项目使用了ST的cubeMX进行硬件上面的管脚分配,cubemx使用起来十分方便,强烈推荐。 + +![stm32cubemx](st cubeMX.png) + +### 接线图与实物图 + + +## 第二章 软件部分 + +### FOC算法(FOC algorithm) + +![FOC计算过程.png](FOC计算过程.png) + +#### clack变换 +![foc控制流程图.png](foc控制流程图.png) + +![电流环.png](电流环.png) + +本项目暂时使用的是SPWM调制的正弦波,想要提高效率请使用SVPWM调制马鞍波形(效率可以提高15%)。 + +![坐标变换.png](坐标变换.png) + +1,把基变换将其正交化为一个直角坐标系,把三相电流波形的相位变化变成二轴坐标系中α和β矢量长短变化。 + +![正弦与余弦.png](正弦与余弦.png) + +2,三角函数投影计算过程 + +![三角函数投影.png](三角函数投影.png) + +三角函数复习: + +![三角函数复习资料.png](三角函数复习资料.png) + +摘自:[](https://www.cnblogs.com/sunsky303/p/17248071.html) + +![Clarke变换.png](Clarke变换.png) + +3,Clarke变换写成矩阵形式 + +![Clarke变换写成矩阵形式.png](Clarke变换写成矩阵形式.png) + +4,此为变换后的波形对比图 + +![clarke 变换生成的波形与原波形一致.png](clarke 变换生成的波形与原波形一致.png) + +参考资料: +[](https://zhuanlan.zhihu.com/p/147659820) + +#### Park变换(将变量线性化) + +1,让转子旋转起来! + +![旋转二维坐标系.png](旋转二维坐标系.png) + +![旋转的坐标系映射.png](旋转的坐标系映射.png) + +2,写成矩阵形式: + +![Park变换矩阵描述形式.png](Park变换矩阵描述形式.png) + +3,Park变换前后波形对比,已经可以从设置正弦波变为设置Iq 和 Id了。 + +![Park变换前后波形对比.png](Park变换前后波形对比.png) + +4,Iq代表了期望的力矩输出, Id不需要的,我们希望尽可能把它控制为0。 + + From 8808e6ad398e6c3099fe2019313a475a710736d9 Mon Sep 17 00:00:00 2001 From: Michael Chemic Date: Sun, 28 Jul 2024 22:36:39 +0800 Subject: [PATCH 2/4] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c5d9adf..14ab9db 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ You can use it as a sandbox to play with Writerside features, and remove it from ### 使用的硬件设备 该项目使用 ST公司生产的 STM32G474RE-Nucleo-64 评估板,TI 生产的 BOOSTXL-DRV8301 电机驱动板为主要开发套件。 -![](STM32G474-Nucleo.png) +![image](https://github.com/michaelchemic/STM32G4-DRV8301-FOC/blob/main/Readme/Writerside/images/STM32G474-Nucleo.png) 相关资料请访问: [](https://www.st.com/en/evaluation-tools/nucleo-g474re.html) From 010aed32df49914b082e5ee3fdb00fcb9b28ca00 Mon Sep 17 00:00:00 2001 From: Michael Chemic Date: Sun, 28 Jul 2024 22:45:08 +0800 Subject: [PATCH 3/4] Update README.md --- README.md | 39 +++++++++++++++++++-------------------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 14ab9db..e218988 100644 --- a/README.md +++ b/README.md @@ -12,14 +12,13 @@ You can use it as a sandbox to play with Writerside features, and remove it from ![image](https://github.com/michaelchemic/STM32G4-DRV8301-FOC/blob/main/Readme/Writerside/images/STM32G474-Nucleo.png) -相关资料请访问: -[](https://www.st.com/en/evaluation-tools/nucleo-g474re.html) +相关资料请访问:(https://www.st.com/en/evaluation-tools/nucleo-g474re.html) + (ST的开发板在接口和设计上是深入思考后的产品,在开发中节约了很多时间) -![](TI DRV8301.png) +![image](https://github.com/michaelchemic/STM32G4-DRV8301-FOC/blob/main/Readme/Writerside/images/TI%20DRV8301.png) -相关资料请访问: -[](https://www.ti.com.cn/tool/cn/BOOSTXL-DRV8301) +相关资料请访问:(https://www.ti.com.cn/tool/cn/BOOSTXL-DRV8301) * 由于这是一个前期验证的项目,硬件电路就先使用杜邦线连接了,后期完善后将会重新设计一块PCB。 @@ -27,7 +26,7 @@ You can use it as a sandbox to play with Writerside features, and remove it from 此项目使用了ST的cubeMX进行硬件上面的管脚分配,cubemx使用起来十分方便,强烈推荐。 -![stm32cubemx](st cubeMX.png) +![image](https://github.com/michaelchemic/STM32G4-DRV8301-FOC/blob/main/Readme/Writerside/images/st%20cubeMX.png)) ### 接线图与实物图 @@ -36,40 +35,40 @@ You can use it as a sandbox to play with Writerside features, and remove it from ### FOC算法(FOC algorithm) -![FOC计算过程.png](FOC计算过程.png) +![image](https://github.com/michaelchemic/STM32G4-DRV8301-FOC/blob/main/Readme/Writerside/images/FOC%E8%AE%A1%E7%AE%97%E8%BF%87%E7%A8%8B.png) #### clack变换 -![foc控制流程图.png](foc控制流程图.png) +![image](https://github.com/michaelchemic/STM32G4-DRV8301-FOC/blob/main/Readme/Writerside/images/Clarke%E5%8F%98%E6%8D%A2.png) -![电流环.png](电流环.png) +![image](电流环.png) 本项目暂时使用的是SPWM调制的正弦波,想要提高效率请使用SVPWM调制马鞍波形(效率可以提高15%)。 -![坐标变换.png](坐标变换.png) +![image](坐标变换.png) 1,把基变换将其正交化为一个直角坐标系,把三相电流波形的相位变化变成二轴坐标系中α和β矢量长短变化。 -![正弦与余弦.png](正弦与余弦.png) +![image](正弦与余弦.png) 2,三角函数投影计算过程 -![三角函数投影.png](三角函数投影.png) +![image](三角函数投影.png) 三角函数复习: -![三角函数复习资料.png](三角函数复习资料.png) +![image](三角函数复习资料.png) 摘自:[](https://www.cnblogs.com/sunsky303/p/17248071.html) -![Clarke变换.png](Clarke变换.png) +![image](Clarke变换.png) 3,Clarke变换写成矩阵形式 -![Clarke变换写成矩阵形式.png](Clarke变换写成矩阵形式.png) +![image](Clarke变换写成矩阵形式.png) 4,此为变换后的波形对比图 -![clarke 变换生成的波形与原波形一致.png](clarke 变换生成的波形与原波形一致.png) +![image](clarke 变换生成的波形与原波形一致.png) 参考资料: [](https://zhuanlan.zhihu.com/p/147659820) @@ -78,17 +77,17 @@ You can use it as a sandbox to play with Writerside features, and remove it from 1,让转子旋转起来! -![旋转二维坐标系.png](旋转二维坐标系.png) +![image](旋转二维坐标系.png) -![旋转的坐标系映射.png](旋转的坐标系映射.png) +![image](旋转的坐标系映射.png) 2,写成矩阵形式: -![Park变换矩阵描述形式.png](Park变换矩阵描述形式.png) +![image](Park变换矩阵描述形式.png) 3,Park变换前后波形对比,已经可以从设置正弦波变为设置Iq 和 Id了。 -![Park变换前后波形对比.png](Park变换前后波形对比.png) +![image](Park变换前后波形对比.png) 4,Iq代表了期望的力矩输出, Id不需要的,我们希望尽可能把它控制为0。 From 041ae1419ed5dc5e9a7eadb8e8584d7b8474c1ca Mon Sep 17 00:00:00 2001 From: Michael Chemic Date: Sun, 28 Jul 2024 22:49:16 +0800 Subject: [PATCH 4/4] Update README.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加图片 --- README.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index e218988..32be140 100644 --- a/README.md +++ b/README.md @@ -40,31 +40,31 @@ You can use it as a sandbox to play with Writerside features, and remove it from #### clack变换 ![image](https://github.com/michaelchemic/STM32G4-DRV8301-FOC/blob/main/Readme/Writerside/images/Clarke%E5%8F%98%E6%8D%A2.png) -![image](电流环.png) +![image](https://github.com/michaelchemic/STM32G4-DRV8301-FOC/blob/main/Readme/Writerside/images/%E7%94%B5%E6%B5%81%E7%8E%AF.png) 本项目暂时使用的是SPWM调制的正弦波,想要提高效率请使用SVPWM调制马鞍波形(效率可以提高15%)。 -![image](坐标变换.png) +![image](https://github.com/michaelchemic/STM32G4-DRV8301-FOC/blob/main/Readme/Writerside/images/%E5%9D%90%E6%A0%87%E5%8F%98%E6%8D%A2.png) 1,把基变换将其正交化为一个直角坐标系,把三相电流波形的相位变化变成二轴坐标系中α和β矢量长短变化。 -![image](正弦与余弦.png) +![image](https://github.com/michaelchemic/STM32G4-DRV8301-FOC/blob/main/Readme/Writerside/images/%E6%AD%A3%E5%BC%A6%E4%B8%8E%E4%BD%99%E5%BC%A6.png) 2,三角函数投影计算过程 -![image](三角函数投影.png) +![image](https://github.com/michaelchemic/STM32G4-DRV8301-FOC/blob/main/Readme/Writerside/images/%E4%B8%89%E8%A7%92%E5%87%BD%E6%95%B0%E6%8A%95%E5%BD%B1.png) 三角函数复习: -![image](三角函数复习资料.png) +![image](https://github.com/michaelchemic/STM32G4-DRV8301-FOC/blob/main/Readme/Writerside/images/%E4%B8%89%E8%A7%92%E5%87%BD%E6%95%B0%E5%A4%8D%E4%B9%A0%E8%B5%84%E6%96%99.png) 摘自:[](https://www.cnblogs.com/sunsky303/p/17248071.html) -![image](Clarke变换.png) +![image](https://github.com/michaelchemic/STM32G4-DRV8301-FOC/blob/main/Readme/Writerside/images/Clarke%E5%8F%98%E6%8D%A2.png) 3,Clarke变换写成矩阵形式 -![image](Clarke变换写成矩阵形式.png) +![image](https://github.com/michaelchemic/STM32G4-DRV8301-FOC/blob/main/Readme/Writerside/images/Clarke%E5%8F%98%E6%8D%A2%E5%86%99%E6%88%90%E7%9F%A9%E9%98%B5%E5%BD%A2%E5%BC%8F.png) 4,此为变换后的波形对比图 @@ -77,17 +77,17 @@ You can use it as a sandbox to play with Writerside features, and remove it from 1,让转子旋转起来! -![image](旋转二维坐标系.png) +![image](https://github.com/michaelchemic/STM32G4-DRV8301-FOC/blob/main/Readme/Writerside/images/%E6%97%8B%E8%BD%AC%E4%BA%8C%E7%BB%B4%E5%9D%90%E6%A0%87%E7%B3%BB.png) ![image](旋转的坐标系映射.png) 2,写成矩阵形式: -![image](Park变换矩阵描述形式.png) +![image](https://github.com/michaelchemic/STM32G4-DRV8301-FOC/blob/main/Readme/Writerside/images/Park%E5%8F%98%E6%8D%A2%E7%9F%A9%E9%98%B5%E6%8F%8F%E8%BF%B0%E5%BD%A2%E5%BC%8F.png) 3,Park变换前后波形对比,已经可以从设置正弦波变为设置Iq 和 Id了。 -![image](Park变换前后波形对比.png) +![image](https://github.com/michaelchemic/STM32G4-DRV8301-FOC/blob/main/Readme/Writerside/images/Park%E5%8F%98%E6%8D%A2%E5%89%8D%E5%90%8E%E6%B3%A2%E5%BD%A2%E5%AF%B9%E6%AF%94.png) 4,Iq代表了期望的力矩输出, Id不需要的,我们希望尽可能把它控制为0。