PMSM控制01-在MATLAB/sinmulink仿真实现-计时器比较法输出SVPWM波形


由于本人转入新能源汽车电机控制行业,因此日后会陆续更新汽车电机、控制器、控制算法、电路等的文章。当然别的DIY文章也会继续更,工作、兴趣、生活,该有的都得有。

以下正文:

simulink中实现计时器比较法输出SVPWM控制波形:

计时器比较法是控制中常用的算法,在DSP中基本都使用此算法输出SVPWM,因为与硬件原理相适用,这也是为后续在硬件上实现DSP控制做铺垫。



scope2显示的输出波形:


clock模块用于给定系统输入时间,根据系统时间产生正弦余弦波形:




clock输出的即是一个计时累加的信号,最终值等于simul ink仿真时间。
双击matlab function,弹出界面进行如下配置,模块输出的是一个复数。带i的为虚部。
输入参数即是一个实部虚部之间相位差pi/2的复数,至于为何三角函数内乘100,因为输入参数u与仿真时间相关,u为0-0.01的递增值,乘100保证相位为0~pi,起码有半个周期的输入,是修正数量级用的参数。


complex to Magnitude-Angle模块分解复数,为幅值和角度:
该模块专用于分解复数,复数的英文即complex。


再下一步,将产生的幅值和角度输入S-function模块:
S-function是simulink中供用户调用自定义脚本函数的模块:
自定义的m文件,下面对m文件代码进行分析:
对输入的连续电压矢量进行离散化:

function [sys,x0,str,ts] = SVPW_TimeCounterCompare003(t,x,u,flag)
tsam = 0.02/20;
switch flag,
    case 0
        [sys,x0,str,ts] = Initialization(tsam);
    case 3
        sys = mdlOutputs(t,x,u);
    case {1,2,4,9}
  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值