首页 > 其他分享 >m基于simulink和S函数实现SVPWM永磁同步电机双PI转矩脉动控制系统仿真

m基于simulink和S函数实现SVPWM永磁同步电机双PI转矩脉动控制系统仿真

时间:2023-04-23 19:45:16浏览次数:57  
标签:simulink 矢量 PMSM SVPWM 永磁 sys PI 同步电机

1.算法仿真效果

matlab2022a仿真结果如下:

 

 

 

 

 

2.算法涉及理论知识概要

        永磁同步电机(PMSM)基本结构为定子、转子和端盖。其中转子磁路结构是永磁同步电机(PMSM)与其它电机最主要的区别,其在很大程度上决定了永磁同步电机(PMSM)的实际性能指标[12,13,14]。通常情况下,永磁同步电机(PMSM)的转子磁路结构分为:凸装式、嵌入式和内置式三种结构。目前为止,由于永磁同步电机(PMSM)优越的性能,其越来越受到国内外专家学者的重视,并广泛应用到了工业领域的各个方面。通常在建立永磁同步电机(PMSM)的时候,需要将一些实际因素进行简化,比如:忽略铁心饱和效应;不记涡流和磁滞损耗;转子上没有阻尼绕组,永磁体也没有阻尼作用;反电动势是正弦的。此外,由于永磁同步电机(PMSM)的的转子在磁、电结构上的不对称性,导致了转子瞬间位置的非线性,从而增加了其解析难度。因此,我们需要使用矢量控制技术来解决这个问题,通过坐标变化,将变量变为常量,将变系数变为常系数,从而简化解析复杂度。

 

2.1 PMSM的坐标变换

       该坐标轴线放在定子上,α轴与A轴重合,β轴超前α轴90°,如图所示,α-β坐标系中的电压和电流通过简单线性变换就可以直接从实际测量的三相电压和电流得到。一个旋转矢量从三相定子坐标系变换到α-β坐标系,又称3/2变换,如下式:

 

 

 

 

       该坐标系为同步旋转坐标系,q轴(交轴)超前d轴(直轴)90,如图2-4所示,若把d轴的取向与转子永磁总磁链方向一致,则成为转子磁场定向坐标系[23]。

 

 

 

2.2基于SVPWM永磁同步电机的控制策略

       SVPWM控制技术,其本质上是为了使电机能够获得幅度较为恒定的圆形磁场,即通常所说的正弦磁通。通过三相对称正弦波电压供电时的理想圆形磁通轨迹为基准用三相逆变器不同的开关模式产生的实际磁通去逼近基准磁通圆,使得磁链的轨迹靠电压空间矢量相加得到,从而达到较高的控制性能。本课题所研究的基于SVPWM的控制系统的结构如下图所示:

 

 

 

       从图可以看到,整个SVPWM控制系统,主要包括两个环路,外面的为速度控制环,里面的为电流控制环,串联的两个闭环分别实现电机的速度和电流控制。转速和电流调节器采用限积分饱和的PI控制器。其中,转子的位置信息则通过磁编码器以串口模式发送到其余模块使用,根据实际需要设置速度指令值,该指令值并与实际反馈来的速度比较后,作为速度控制器的输入。速度控制器的输出信号是电流控制器的输入,而实际的电流值id和iq值经Clark和Park变换后得到。这样电流指令值与实际差值经PI调节器后输出的是电压指令值,再经反Park变换和SVPWM模块产生相应的脉冲驱动信号送给IPM模块产生需要的电压,进而电机会产生相应的转矩而旋转。速度环的主要作用是提高系统的抗扰性能和动态特性,抑制速度波动。

 

2.3空间矢量扇区判断

       在一个经典的SVPWM控制系统中,的三相电压型逆变器驱动电路通过控制6个IGBT(T1~T6)的开关状态及其开关顺序,通过这个操作之后,可以使电压空间矢量运行轨迹为圆形,从而大大降低了电流谐波 [37]。三相桥臂的开关状态可组成8个基本电压空间矢量,其中(0,0,0)和(1,1,1)定义为零矢量,其它6个矢量定义为有效矢量,其大小和位置分布如图2.7(a)所示,相邻有效矢量均间隔60°,矢量长度为2/3Ud。

 

 

3.MATLAB核心程序

 

 

function [sys,x0,str,ts] = func_N_calculation(t,x,u,flag)
%A=0;B=0;
%C=0;N=0;
global A B C N;
switch flag,
  case 0,
    [sys,x0,str,ts]=mdlInitializeSizes;
  case 1,
    sys=[];
  case 2,
    sys=[];
  case 3,
    sys=mdlOutputs(t,x,u,A,B,C,N);
  case 4,
    sys=[];
  case 9,
    sys=[];
  otherwise
    error(['Unhandled flag = ',num2str(flag)]);
end
 
 
function [sys,x0,str,ts]=mdlInitializeSizes
 
sizes = simsizes;
sizes.NumContStates  = 0;
sizes.NumDiscStates  = 3;
sizes.NumOutputs     = 1;
sizes.NumInputs      = 2;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1;   % at least one sample time is needed
 
sys = simsizes(sizes);
x0  = [0 0 0];
str = [];
ts  = [0 0];
 
%u(1)=Uafa;u(2)=Ubta
function sys=mdlOutputs(t,x,u,A,B,C,N)
x(1)=u(2);                         %x(1)=Ua
x(2)=1/2*(sqrt(3)*u(1)-u(2));      %x(2)=Ub
x(3)=1/2*(-sqrt(3)*u(1)-u(2));    %x(3)=Uc
 
if (x(1)>0);    %A
   A=1;
else
   A=0; 
end
if (x(2)>0);     %B
   B=1;
else
   B=0; 
end
if (x(3)>0);
   C=1;          %C
else
   C=0; 
end
N=4*C+2*B+A;   %N
sys=N;
08_010_m

 

  

 

标签:simulink,矢量,PMSM,SVPWM,永磁,sys,PI,同步电机
From: https://www.cnblogs.com/51matlab/p/17347523.html

相关文章

  • Vue3 Composition API 的优势
    视频四、CompositionAPI的优势1.OptionsAPI存在的问题使用传统OptionsAPI中,新增或者修改一个需求,就需要分别在data,methods,computed里修改。2.CompositionAPI的优势我们可以更加优雅的组织我们的代码,函数。让相关功能的代码更加有序的组织在一起。......
  • ai问答:使用 Vue3 组合式API 和 TypeScript 封装 echarts 折线图
    <template><divref="chart"style="height:500px;"></div></template><scriptlang="ts">import{ref,onMounted,watch}from'vue'import*asechartsfrom'echarts'e......
  • datepick 同时 显示 两个 日历控件
    <html><head><linkrel="stylesheet"type="text/css"href="jquery-ui-1.8.16.custom.css"/><scriptsrc="jquery-1.6.2.min.js"type="text/javascript"></script><s......
  • ASP.NET Core Web API 流式返回,逐字显示
    Websocket、SSE(Server-SentEvents)和长轮询(LongPolling)都是用于网页和服务端通信的技术。Websocket是一种全双工通信协议,能够实现客户端和服务端之间的实时通信。它基于TCP协议,并且允许服务器主动向客户端推送数据,同时也允许客户端向服务器发送数据。SSE是一种单向通信协议,允......
  • apisix网关使用自研插件流程
    1. 关于apisix网关插件apisix插件分为内置插件和自编插件,本文主要介绍使用自研插件的流程,内置插件使用方法参考官方文档内置插件官方文档:https://apisix.apache.org/zh/docs/apisix/plugins/batch-requests/2. 使用自研插件的实现步骤apisix支持多种语言自研插件,本文主要介......
  • 哈希类型 列表类型 集合类型 有序集合 慢查询 pipeline与事务 发布订阅 Bitmap位图 Hy
    昨日回顾#1redis介绍 -特性#速度快:10wops(每秒10w读写),数据存在内存中,c语言实现,单线程模型#持久化:rdb和aof#多种数据结构:5大数据结构BitMaps位图:布隆过滤器本质是字符串HyperLogLog:超小内存唯一值计数,12kbHyperLogLog本质是......
  • 使用pipeline执行命令遇到redis.Nil的坑
    参考项目kratos_rockscacheredis数据准备关键代码特别注意,使用pipeline的Exec方法,一定要判断一下redis.Nil这个错误:~~~......
  • 使用手机在网状态查询 API 有效防止虚假注册的设计思路
    引言随着移动互联网的普及,手机在网状态成为重要的数据指标。在网状态反映了手机用户的实际使用情况,对于各类企业和机构具有重要意义。本文将为大家介绍手机在网状态API的主要特点和优势,并且探讨手机在网状态API的应用场景和效果展示,最后一起展望手机在网状态API的未来发展......
  • Srping AOP的学习(三):AOP的执行过程
    1.说明前面学习了springAOP的简单使用以及代理的一些知识,我们知道AOP的原理主要是使用了动态代理,那么它的具体执行流程又是怎样的呢?下面来使用SpringAOP的学习(一)中的demo来进行看一下。2.分析   转: https://www.cnblogs.com/mcj123/p/16884603.html ......
  • 无法加载源 https://api.nuget.org/v3/index.json 的服务索引
    .net6之后,不会随项目生成packages文件夹,将项目拷贝到无联网的电脑上用VS打开时,会出现nuget还原失败的情况,只需要把原电脑中的用户文件夹下的.nuget文件夹拷贝过去,放到对应路径下即可......