STM32G4 Simulink FOC开发实战--第十三章:Clark变换及Simulink代码生成

Bilibili配套视频:

https://www.bilibili.com/video/BV12C4y1f78j/?spm_id_from=333.999.0.0&vd_source=eb375996b1aae493d63fe367f98b306c

文章中同款STM32G4电机开发板及完整代码模型资料,淘宝搜索店铺欧拉电子获取。

1.Clark变换建模 

  • 双击打开 MATLAB软件;

  • 点击Simulink,新建空白模型;

  • 新建子系统,命名为Clark变换;并在子系统中基于公式建立Clark变换模型;

  • 修改模型仿真步长及采样时间;建模->模型设置->类型->固定步长;

  • 增加三相电流生成模块;其中包含theta角度生成模块;生成的theta乘-1为了与Simulink电机模块生成三相电流相位一致;该模块感兴趣的小伙伴可以自行研究一下;

  • 增加示波器,点击运行按钮 ,观察三相电流及变换后的alpha和beta电流;

2.Simulink代码生成及实验现象 

按以下图片接线,并讲USB转UART模块连接至电脑:

  • 选中所有模型,点击创建子系统,将其封装成同一个模块;

  • 创建数据字典;

  • 将三相电流生成模块中的三个sin计算模块修改成以下配置:

  • 将ia,ib,ic定义为全局的Simulink signal,右键点击信号线,打开属性窗口,方便后续的在代码中观测;

  • 打开数据字典,发现已经建立好ia,ib,ic;模型中ia,ib,ic前方也多了一个叉子形状;

  • 点击模型设置,代码生成,将系统目标文件改为ert.tlc,嵌入式代码生成;

  • 在报告中打开创建代码生成报告;

  • 在硬件实现栏选择ARM CORTEX-M;

  • 在接口栏将代码替换库改成ARM CORTEX-M,选择浮点数;

  • 将Clark_test模型视为原子子单元;

  • 右键该模块,选择嵌入式代码生成;生成过程一直点NEXT即可;

  • 复制第九章 TIM1触发ADC电流采样工程,并打开IOC文件;添加DSP库;

安装流程详细可参考附录二:附录二:STM32CubeMX添加DSP库方法

  • 点击安装DSP库;

  • 安装完成后选中DSP库;

  • 修改uart3的波特率;

  • 生成代码 ,并打开keil工程;

  • 增加宏定义:,__TARGET_FPU_VFP,__FPU_PRESENT,ARM_MATH_CM4

  • 将DSP库由M4l改为M4LF;

  • 在keil工程中新建MATLAB文件夹;并将MATLAB生成的代码放进来;并添加到Keil工程中;

  • 在main.c中包换头文件;注释掉PWM1,2,3通道;注释while循环代码;

  1. ADC中断函数添加以下代码;

  1. 编译并下载代码;打开VOFA上位机;

  • 10
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Simulink是一种功能强大的工具,它可用于设计和仿真各种动态系统。在Simulink中,代码生成是其中一个重要的功能,它可以将Simulink模型转化为可执行的嵌入式代码。在代码生成过程中,应用层和底层之间的接口起着关键的作用。 在Simulink中,应用层通常是指涉及系统功能和实现的高级模块。它们通常是通过Simulink模块或子系统来实现的。底层则是指将高级模块转化为可执行代码的过程,通常涉及到底层硬件和驱动程序。 应用层和底层之间的接口在代码生成中起着桥梁的作用。它们定义了如何将高级模块转换为实际运行的代码。接口可以包括输入和输出参数、函数调用和数据传输等。通过定义这些接口,可以实现应用层和底层之间的数据交换和通信。 在代码生成的过程中,开发人员需要根据系统需求定义应用层和底层之间的接口。然后,使用Simulink中的代码生成工具将应用层模块转换为底层代码。在代码生成期间,底层代码可以根据接口的定义访问应用层模块和数据。代码生成工具可以自动生成相关的驱动程序和配置文件,以便在实际硬件上运行。 总之,Simulink代码生成的过程中,应用层和底层之间的接口起着关键的作用。通过定义好接口,可以实现应用层模块到底层代码的转换和数据交换。这样,开发人员可以更方便地设计和实现复杂的嵌入式系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值