PMSM FOC控制 Matlab/Simulink仿真 SVPWM算法

6 篇文章 0 订阅
本文详细介绍了SVPWM(空间电压矢量控制)的工作原理及其在电机控制中的应用。通过设置Ud=0,Uq来控制电机转速,并利用反Park变换计算SVPWM的输入参数。SVPWM将电机旋转周期分为6个扇区,每个扇区计算相应的PWM比较值。在STM32平台上,通过特定的数学关系确定了PWM的输出值。仿真结果显示了SVPWM的马鞍波形,而在硬件实现中,需要注意防止过调制。
摘要由CSDN通过智能技术生成

1.原理

SVPWM是电机控制的一种算法,空间电压矢量控制;可以直接使用SVPWM进行电机控制,SVPWM是基于电压控制,只是控制效果没有FOC(基于电流控制)的效果好;而foc控制要借助于SVPWM,因为功率变送器(3相半桥)不能直接输出控制电流,只能输出控制电压。

2.逻辑分析

SVPWM的输入参数:Uα、Uβ      输出:3路定时器输出比较值CCRx

Uα、Uβ (是正弦信号)实际不直接给出,而是借助于反Park变换来输出Uα、Uβ,反Park变换的输入是Ud,Uq,我们可以直接设定Ud、Uq,这里Ud、Uq是直流信号,设定Ud=0(在FOC控制中Ud是不为0的),Uq=xxx来控制转速

把电机旋转一个电角度周期分为6个部分,即6个扇区,每个扇区要计算,根据矢量等效原理

(此图是网上随机找的,仅供学习)

 每个扇区计算对应的Tx,Ty就可以,而Tx、Ty是和Uα、Uβ有一定的数学关系

有根据下图计算出Ta,Tb,Tc

数学关系:

Ta=(T-Tx-Ty)/4

Tb=Ta+Tx/2

Tc=Tb+Ty/2

这个数学关系是根据stm32的PWM模式2来定的,如果是PWM模式1就不是这个公式了

 (此图是网上随机找的,仅供学习)

这样在不同的扇区,把Ta,Tb,Tc赋给CCR1、CCR2、CCR3即可

如在扇区3中,TIM1->CCR1 = Tc;

                        TIM1->CCR2 = Ta;

                        TIM1->CCR3 = Tb;

那么到此,需要控制电机的3路pwm比较值已经求出

3.仿真模型

 

 RePark部分就不列出来了,请看之前的

最重要的就是SVPWM算法,这里采用s-function的编码形式,好处是这样的代码可以直接移植到MCU中,当然也可以生成嵌入式C代码之后再移植到MCU中,二者是一样的

 

 

4.仿真效果

 这个是simulink仿真的结果,3路CCR值是马鞍波

5.硬件效果

马鞍波是3路PWM比较值CCRx 

黄色曲线是弧度值(0~2*pi)

这个波形是在stm32上跑出的波形

6.注意事项

这里设定Ud=0,Uq=10;Uq设定的值不可太大,否则会过调制,CCR的波形就不再是马鞍波了

  • 6
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值