zoukankan      html  css  js  c++  java
  • 使用Simulink进行无刷直流电机控制仿真

        这段时间刚开始接触Matlab中的Simulink仿真,我就结合自己的专业,利用Simulink进行了无刷直流电机的仿真,因为Simulink工具箱里面有很多可用的模块,所以建模过程变得非常简单。

        在Matlab界面中new->model之后,找到Simulink Library Browser,这里面有系统自带的很多模块,接下来我们就需要找到自己所需要的模块了,了解无刷直流电机的工作原理以后,接下来就是找到直流电源、三相逆变桥、无刷直流电机模型。而Simulink中也有这些模型,可以直接通过搜索关键字找到它们,分别是DC Voltage Source、Universal Bridge、Permanent Magnetic Synchronous Machine。接下来就是需要将相应的信号连接起来,如下图

        其中,直流端电压可以设置电压大小,逆变桥可以选择开关器件类型,我们这里选择Mosfet,PMSM中我们将反电势波形选择trapezoidal即梯形波,电机参数相电阻、相电感、反电势常数、极对数按实际值设置。Universal Bridge对应如下桥式拓扑结构。

    然后就是添加相应的负载Tm,这里可以模拟突加负载和突减负载以及任意变化的负载,通过给定一个函数就可以。然后就是开关信号g,下面会详细介绍。模型搭建完成后如下图。

        PMSM输出端给的信号通过Bus Selector选择,我们需要使用的是三相霍尔信号得到相应的开关逻辑,这也是该仿真的关键所在,其中整个模型中Subsystem1就是实现开关逻辑的算法。我们可以根据霍尔换相真值表,通过相应的逻辑门实现,但是这样搭建模型显得不灵活而且很累赘,并且不能模拟超前或者滞后换相。所以我这里才用的是通过Matlab Function来实现的。

        如上图,这是换相逻辑的模型,其中我采用的是下桥臂恒通,上桥臂PWM调制的方式导通Mosfet,目前占空比的给定方式采用的是常数,后续可以根据转速环进行PI给定。换相便是根据换相真值表而来。

    霍尔信号

    Mosfet导通真值表

    导通相

    Ha

    Hb

    Hc

    Q1

    Q2

    Q3

    Q4

    Q5

    Q6

    0

    0

    1

    0

    0

    0

    1

    1

    0

    CB

    0

    1

    0

    0

    1

    1

    0

    0

    0

    BA

    0

    1

    1

    0

    1

    0

    0

    1

    0

    CA

    1

    0

    0

    1

    0

    0

    0

    0

    1

    AC

    1

    0

    1

    1

    0

    0

    1

    0

    0

    AB

    1

    1

    0

    0

    0

    1

    0

    0

    1

    BC

        接下来就是按照真值表编写相应开关逻辑代码,

        

     1 function [y1,y2,y3,y4,y5,y6] = fcn(ha,hb,hc,theta)
     2 y1=0;y2=0;y3=0;y4=0;y5=0;y6=0;
     3 tmp=hc*4+hb*2+ha;
     4 if tmp==4
     5     y1=0;y2=0;y3=0;y4=1;y5=1;y6=0;
     6 end
     7 if tmp==6
     8     y1=0;y2=1;y3=0;y4=0;y5=1;y6=0;
     9 end
    10 if tmp==2
    11     y1=0;y2=1;y3=1;y4=0;y5=0;y6=0;
    12 end
    13 if tmp==3
    14     y1=0;y2=0;y3=1;y4=0;y5=0;y6=1;
    15 end
    16 if tmp==1
    17     y1=1;y2=0;y3=0;y4=0;y5=0;y6=1;
    18 end
    19 if tmp==5
    20     y1=1;y2=0;y3=0;y4=1;y5=0;y6=0;
    21 end
    22 
    23 end

      代码添加完成以后,就可以配置Mosfet上下桥臂的导通模式了,我这里采用了上桥臂PWM调制,下桥臂导通的模式,即H_PWM-L_ON方式。一切准备就绪,下面来看仿真结果,A相电流,霍尔信号以及转子机械角度如下图。

      

  • 相关阅读:
    嵌入式系统WinCE下应用程序GUI界面开发【转】
    pidstat 命令详解
    shell脚本检查是否存在tun0虚拟网卡,若不不存在服务器更改port,并重启服务器,客户端修改port,并重新启动客户端
    阿里云k8s部署zookeeper集群
    Kubernetes StatefulSet
    dubbo-admin管理平台搭建
    k8s pv,pvc无法删除问题
    Linux配置AndroidSDK&Jenkins远程部署
    CentOS的vsftp修改默认配置路径方法
    Java语法糖3:泛型
  • 原文地址:https://www.cnblogs.com/xglove/p/6476684.html
Copyright © 2011-2022 走看看