当前位置: 首页 > news >正文

STM32G4 Park及反Park变换(二)实验

目录

  • 一、STM32G4 Park及反Park变换(二)实验
      • 1 Park及反Park变换
        • 1.1 代码
        • 1.2 上位机实验结果
    • 附学习参考网址
      • 欢迎大家有问题评论交流 (* ^ ω ^)

一、STM32G4 Park及反Park变换(二)实验

1 Park及反Park变换

1.1 代码
  1. 继续上一篇文章,选中所有模型,点击创建子系统,将其封装成同一个模块;并定义为原子单元;
    在这里插入图片描述
  2. 生成嵌入式代码,一直Next
    在这里插入图片描述
  3. 复制一份之前文章做的clark变换的实验结果文件夹,替换MATLAB文件夹中的四个文件
    在这里插入图片描述
  4. 修改Keil工程代码
  • 主要修改下面几个地方的代码:
/* USER CODE BEGIN Includes */
#include <stdio.h>
#include <string.h>
#include "Park_test.h"
/* USER CODE END Includes */
float temp[5];
static uint8_t tempData[24] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x80,0x7F};
extern ExtY rtY;
extern real32_T id;                    /* '<S3>/Sin1' */
extern real32_T iq;                    /* '<S3>/Sin2' */
extern real32_T ialpha;                    /* '<S3>/Sin' */
extern real32_T ibeta;                    /* '<S3>/Sin' */
/* USER CODE END PV */
void HAL_ADCEx_InjectedConvCpltCallback(ADC_HandleTypeDef *hadc)
{/* Prevent unused argument(s) compilation warning */UNUSED(hadc);if(hadc == &hadc1){
//		temp[0] = hadc1.Instance->JDR1;
//		temp[0] = (temp[0] - 0x7ef)*0.02197f;
//		temp[1] = hadc1.Instance->JDR2;
//		temp[1] = (temp[1] - 0x7f5)*0.02197f;
//		temp[2] = hadc2.Instance->JDR1;
//		temp[2] = (temp[2] - 0x7e8)*0.02197f;
//		TIM1->CCR1 = 2000;
//		TIM1->CCR2 = 4000;
//		TIM1->CCR3 = 6000;Park_test_step();temp[3] = rtY.ualpha;temp[4] = rtY.ubeta;temp[0] = id;temp[1] = iq;memcpy(tempData, (uint8_t *)&temp, sizeof(temp));HAL_UART_Transmit_DMA(&huart3,(uint8_t *)tempData,6*4);}/* NOTE : This function should not be modified. When the callback is needed,function HAL_ADCEx_InjectedConvCpltCallback must be implemented in the user file.*/
}
1.2 上位机实验结果
  • 按照如图所示接线
    在这里插入图片描述
  • 编译并下载代码,打开VOFA上位机:
    在这里插入图片描述
  • 实验完成

附学习参考网址

  1. STM32G4 FOC开发实战
  2. 03、park、clarke变换案例_哔哩哔哩_bilibili

欢迎大家有问题评论交流 (* ^ ω ^)

http://www.dtcms.com/a/338989.html

相关文章:

  • 推理还是训练 || KV缓存和CoT技术
  • 快速将 MySQL 数据库发布为 API:使用 QuickAPI 实现 SQL2API
  • SConscript 脚本入门教程
  • ChatBI驱动的智能商业决策:奥威BI的深度实践
  • 图像增强——灰度变换增强(线性,对数,指数)、空间滤波增强、频域增强、主成分/彩色合成增强(原理解释和代码示例)
  • 源码编译安装LAMP架构并部署WordPress(CentOS 7)
  • Unity音频管理:打造沉浸式游戏音效
  • BCT8937A Class T Audio Amplifier
  • 小程序开发APP
  • 车载以太网gPTP时间同步:从协议到工程实践
  • 如何用20%计算成本训练LLaMA4级大模型?MoE稀疏化架构实战指南
  • 第14章 现代React特性
  • 使用 MySQL 为 SpreadJS 协同服务器提供存储支持
  • 前后端联合实现文件下载,实现 SQL Server image 类型文件下载
  • PHP如何使用JpGraph生成折线图?
  • 如何在 uBlock Origin 中忽略指定网站的某一个拦截规则
  • 【数据可视化-94】2025 亚洲杯总决赛数据可视化分析:澳大利亚队 vs 中国队
  • HarmonyOS中AppStorageV2信息储存使用案例
  • 【git】 撤销revert一次commit中的某几个文件
  • HarmonyOS 实战:学会在鸿蒙中使用第三方 JavaScript 库(附完整 Demo)
  • CalMAN简介
  • ECharts漏斗图-漏斗图1,附视频讲解与代码下载
  • 程序员之电工基础-万用表、开关电源
  • Visual Studio中的常用调试功能(下)
  • peewee中db.create_tables(tables, safe=True),safe=True作用
  • 【Rust嵌入式键值对数据库redb】第一课 第一次写入
  • Matplotlib数据可视化实战:Matplotlib图表注释与美化入门
  • Kubernetes 的 YAML 配置文件-kind
  • 8.19作业
  • STM32 定时器(中断源)