永磁同步电机的直接转矩控制(二)一一一传统DTC仿真结果分析
永磁同步电机的直接转矩控制(二)一一一传统DTC仿真结果及分析
目录
- 永磁同步电机的直接转矩控制(二)一一一传统DTC仿真结果及分析
- 0研究背景
- 1直接转矩控制的仿真模型
- 2控制系统仿真模型的搭建
- 2.1 磁链的估算模型及仿真图
- 2.2 扇区判断及开关表
- 3仿真结果及分析
- 3.1 转矩滞环环宽对转矩脉动的影响
- 3.2 不同工况下对控制系统性能影响
- 3.3 不同PI参数对系统性能的影响
- 4总结
0研究背景
写在前面:
1.本代码基于MATLAB2019a版本,低版本或者不同版本可能会报错,mdl文件或slx文件打开可能会失败;
2.本博客附上仿真模型并详细介绍各个部分的搭建,如果转载请注明出处;
3.如果本博客恰巧与您的研究有所关联,欢迎您的咨询qq1366196286。
1直接转矩控制的仿真模型
本博客是基于上一篇博客继续进行的研究,并针对转矩滞环环宽、PI控制器参数等对直接转矩控制系统的影响进行探究。
其中,上一篇博客直接转矩控制的仿真模型,如图2所示。
图2 永磁同步电机的直接转矩控制Simulink仿真图
永磁同步电机的直接转矩控制(一)一一一DTC仿真模型的搭建
此外,与上一篇博客不同的是,DTC仿真模型的搭建中磁链估算采取不同的方式进行搭建、扇区判断及开关表可采取s函数进行编写,进而得到另外一种Simulink仿真模型,如图3所示。
图3 永磁同步电机的直接转矩控制Simulink仿真图(另外一种传统的DTC)
2控制系统仿真模型的搭建
图3与上一篇博客所搭建的仿真模型图2所不同的有:
1.转矩直接通过对电机输出端进行采样,而图2是采取转矩进行估算的;
2.图3中磁链估算是通过a-β轴的分量,而图2中磁链估算是通过d-q轴的分量并经过坐标变换所得;
3.图3中扇区判断是通过自定义s函数来实现的,而图2中扇区判断是通过Simulink来实现;
4.图3中开关表是通过自定义s函数来实现的,而图2中扇区判断是通过Simulink来实现;
5.转速环所设定的参考转速值是依据电机的额定转速来给定,一般测试情况是额定转速下测电机的输出转矩,或是电机在额定转矩下的转速突变情况以及额定工况下的电机性能测试等。图3中参考转速是600 r/min;图2中参考转速是1000 r/min。(一般是在额定转速运行或以下运行)。此外,所施加的负载转矩大小是依据电机的额定转矩和过载能力来给定的,而这些是基于电机的结构和本体参数设计来确定的。
本博客的仿真结果及分析是基于图2,即在上一篇博客永磁同步电机的直接转矩控制(一)一一一DTC仿真模型的搭建的基础上进行仿真研究的。
2.1 磁链的估算模型及仿真图
图4 磁链估算模型的仿真Simulink图
图5 a-β轴上的合成圆形磁链
2.2 扇区判断及开关表
扇区判断及开关表的机理同上一篇博客,图3在这里采取的s函数进行编写。
扇区判断sector.m
function [sys,x0,str,ts] = sector(t,x,u,flag)% The following outlines the general structure of an S-function.
%
switch flag, %判断flag,看当前处于哪个状态%%%%%%%%%%%%%%%%%%% Initialization %%%%%%%%%%%%%%%%%%%case 0,[sys,x0,str,ts]=mdlInitializeSizes; %%%%%%%%%%%% Outputs %%%%%%%%%%%%case 3,sys=mdlOutputs(t,x,u);case {2,4,9},sys=[];%%%%%%%%%%%%%%%%%%%%% Unexpected flags %%%%%%%%%%%%%%%%%%%%%otherwiseerror(['Unhandled flag = ',num2str(flag)]);end% end sfuntmpl%
%=============================================================================
% mdlInitializeSizes
% Return the sizes, initial conditions, and sample times for the S-function.
%=============================================================================
%
function [sys,x0,str,ts]=mdlInitializeSizes%
% call simsizes for a sizes structure, fill it in and convert it to a
% sizes array.
%
% Note that in this example, the values are hard coded. This is not a
% recommended practice as the characteristics of the block are typically
% defined by the S-function parameters.
%
sizes = simsizes; %用于设置参数的结构体用simsizes来生成sizes.NumContStates = 0; %连续状态变量的个数
sizes.NumDiscStates = 0; %离散状态变量的个数
sizes.NumOutputs = 1; %输出变量的个数
sizes.NumInputs = 2; %输入变量的个数
sizes.DirFeedthrough = 1; %是否存在反馈
sizes.NumSampleTimes = 1; %采样时间个数,至少是一个sys = simsizes(sizes); %设置完后赋给sys输出
x0 = []; %状态变量设置为空,表示没有状态变量
str = [];
ts = [-1 0]; %采样周期设为0表示是连续系统,-1表示采用当前的采样时间% end mdlInitializeSizes%
%=============================================================================
% mdlOutputs
% Return the block outputs.
%=============================================================================
%
function sys=mdlOutputs(t,x,u)
if(u(1)==0) N=1; %如果输入值为0,电压参考量在第一扇区
elsea1=u(1); b1=u(1)*(-0.5)+(sqrt(3)/2)*u(2); %%根据文章的计算公式得到c1=u(1)*(-0.5)-(sqrt(3)/2)*u(2);if a1>0a=0;elsea=1;endif b1>0b=0;elseb=1;endif c1>0c=0;elsec=1;endN=4*a+2*b+c; %扇区计算
endsys=N;% end mdlOutputs
图6 PWM生成的仿真图
开关表PMSM_switch.m
function [sys,x0,str,ts] = PMSM_switch(t,x,u,flag)% The following outlines the general structure of an S-function.
%
switch flag, %判断flag,看当前处于哪个状态%%%%%%%%%%%%%%%%%%% Initialization %%%%%%%%%%%%%%%%%%%case 0,[sys,x0,str,ts]=mdlInitializeSizes;%%%%%%%%%%%% Outputs %%%%%%%%%%%%case 3,sys=mdlOutputs(t,x,u);case {2,4,9},sys=[];%%%%%%%%%%%%%%%%%%%%% Unexpected flags %%%%%%%%%%%%%%%%%%%%%otherwiseerror(['Unhandled flag = ',num2str(flag)]);end%=============================================================================
% mdlInitializeSizes
% Return the sizes, initial conditions, and sample times for the S-function.
%=============================================================================
%
function [sys,x0,str,ts]=mdlInitializeSizes%
% call simsizes for a sizes structure, fill it in and convert it to a
% sizes array.
%
% Note that in this example, the values are hard coded. This is not a
% recommended practice as the characteristics of the block are typically
% defined by the S-function parameters.
%
sizes = simsizes;%用于设置参数的结构体用simsizes来生成sizes.NumContStates = 0;%连续状态变量的个数
sizes.NumDiscStates = 0; %离散状态变量的个数
sizes.NumOutputs = 1; %输出变量的个数
sizes.NumInputs = 3; %输入变量的个数
sizes.DirFeedthrough = 1; %是否存在反馈
sizes.NumSampleTimes = 1; %采样时间个数,至少是一个sys = simsizes(sizes);%设置完后赋给sys输出
x0 = [];%状态变量设置为空,表示没有状态变量
str = [];
ts = [-1 0]; %采样周期设为0表示是连续系统,-1表示采用当前的采样时间% end mdlInitializeSizes%
%=============================================================================
% mdlOutputs
% Return the block outputs.
%=============================================================================
%
function sys=mdlOutputs(~,x,u)%%根据文章的表格计算得到
V_Table=[2 4 6 1 3 5;4 1 5 2 6 3;3 6 2 5 1 4 ;5 3 1 6 4 2];
x=2*u(1)+u(2)+1;
sys=V_Table(x,u(3));% end mdlOutputs
3仿真结果及分析
3.1 转矩滞环环宽对转矩脉动的影响
当转矩环的滞环环宽给定[-0.1 0.1]N·m,转矩脉动如图7(a)所示;当转矩环的滞环环宽给定[-0.01 0.01]N·m,转矩脉动如图7(b)所示。
图7(a) 转矩滞环环宽对转矩脉动的影响[-0.1 0.1]
图7(b) 转矩滞环环宽对转矩脉动的影响[-0.01 0.01]
图7反映了转矩滞环宽度对转矩脉动的影响,减小滞环宽度,有利于降低转矩脉动幅度。
3.2 不同工况下对控制系统性能影响
图8和图9分别是负载和给定转速突变时的转矩和转速波形,其结果表明系统在阶跃变化时能够自动保持稳定运行状态。
图8 系统的转速响应
图9 系统的转矩响应
3.3 不同PI参数对系统性能的影响
表3是通过仿真研究得到的不同PI参数对系统性能的影响。
4总结
利用MATLAB/Simulink 建立永磁同步电机直接转矩控制系统,可以从理论上研究控制系统的性能及其相关因素的影响,仿真结果和分析所得到的结论是可信的。在建立实际系统之前,通过仿真研究对控制系统进行充分论证,可以提高研究效率。后续博客将滑模控制、模糊控制以及自适应控制等先进控制方法改进到传统的DTC中,以提升系统的控制性能。
永磁同步电机的直接转矩控制(二)一一一传统DTC仿真结果分析相关推荐
- 永磁同步电机的直接转矩控制(一)一一一DTC仿真模型的搭建
永磁同步电机的直接转矩控制(一)一一一DTC仿真模型的搭建 目录 永磁同步电机的直接转矩控制(一)一一一DTC仿真模型的搭建 0研究背景 1直接转矩控制的简单介绍 2控制系统仿真模型的搭建 2.1 被 ...
- 永磁同步电机的直接转矩控制(四)一一一基于滑模转速控制器的DTC
永磁同步电机的直接转矩控制(四)一一一基于滑模转速控制器的DTC 目录 永磁同步电机的直接转矩控制(四)一一一基于滑模转速控制器的DTC 0研究背景 1基于滑模的转速控制器设计 2基于滑模的转速控制器 ...
- 基于SVPWM改进的永磁同步电机直接转矩控制二更
导读:本期对基于SVPWM的永磁同步电机直接转矩控制进行全面的分析和仿真搭建.之后与传统的DTC进行比较,凸显基于SVPWM改进的DTC方法的有效性. 如果需要文中的仿真模型,关注微信公众号:浅谈电机 ...
- 永磁同步电机PMSM直接转矩滞环控制 采用三闭环控制:转速外环采用PI调节器,转矩环和磁链环经过滞环后得到PWM脉冲
永磁同步电机PMSM直接转矩滞环控制 Matlab/Simulink仿真模型(成品) 1.采用三闭环控制:转速外环采用PI调节器,转矩环和磁链环经过滞环后得到PWM脉冲 2.采用DTC直接转矩控制 3 ...
- matlab threshold算法_控制与应用技术|基于模糊滑模算法的永磁同步电机无位置传感器矢量控制...
点击 电机与控制应用 可订阅哦~ A bstract 针对传统超螺旋算法二阶滑模观测器(STASSMO)在进行永磁同步电机(PMSM)转子位置和转速估算时固定滑模增益导致鲁棒性差的问题,在已有的稳定 ...
- m基于simulink和S函数实现SVPWM永磁同步电机双PI转矩脉动控制系统仿真
目录 1.算法仿真效果 2.MATLAB核心程序 3.算法涉及理论知识概要 3.1 PMSM的坐标变换 3.2基于SVPWM永磁同步电机的控制策略 3.3空间矢量扇区判断 4.完整MATLAB 1.算 ...
- 永磁同步电机(PMSM)控制中为什么要Id=0?还有其他的控制方法吗?
相信在搞电机控制的小伙伴应该知道目前对永磁同步电机(PMSM)的控制技术主要有磁场定向矢量控制(FOC)和直接转矩控制技术(DTC). 今天主要是想说一说磁场定向矢量控制(FOC) 磁场定向矢量控制的 ...
- 【永磁同步电机滑膜无感控制】
@TOC]电机控制) 永磁同步电机滑膜(eSMO)无传感器控制 先贴上TI eSMO控制算法 具体请看这个大哥写的文章 https://blog.csdn.net/lijialin_bit/artic ...
- matlab下垂控制,基于matlab/simulink的下垂控制微电网动态特性的仿真与分析
第27卷第1期 20 12 年2 月 电力学报 J OURNAL OF ELECTRC POWER 文章编 号:1005 6548( 2012) Ol 一001504 V01 27 No 1 Fe b ...
- 三相永磁同步电机的FOC--矢量控制(1)
首先,先弄明白FOC也就是矢量控制究竟是什么 1. 要弄明白什么是矢量控制,先要看电机,了解为什么回转, 电机是由转子和定子组成的:为了方便理解,我们把电机比作一个表,转子相当于指针,定子相当于表 ...
最新文章
- 树链剖分——线段树区间合并bzoj染色
- 16.刚体碰撞事件监测与处理
- 如何判断一个网站是否被百度处罚中
- C语言试题五十二之学生的记录由学号和成绩组称个,n名大学生得数据已在主函数中放入结构体数组a中,请编写函数fun,它的功能时:按分数的高低排列学生的记录,高分在前。
- Android之项目中如何用好构建神器Gradle?
- 查看静态库(.a文件)内容
- SpringBoot 第一篇入门
- linux 测试本地端口是否打开,有效地测试Linux上的端口是否打开?
- kafka jar包_和同事交流不会kafka怎么行,API奉上,不是大神也能编
- python编程(webpy + gunicorn + nginx部署)
- [论文阅读] 激光点云分割-RPVNet
- typescript 中文手册
- 39个让你得到设计灵感的站点
- NVR+DVR+CVR
- 微信提示在客户端提交验证_微信中怎么查看我发送的好友验证请求?
- centos下装redis
- 聚类分析在用户行为中的实例_聚类分析案例
- NVIDIA Tesla GPU系列P4、T4、P40以及V100显卡性能的对比
- speedoffice(Excel)怎么做扇形图
- Error creating bean with name ‘endpoint‘ defined in class path resource [.../CxfConfig.class]
热门文章
- Http协议报文格式
- Navicat Premium 12.0.29 / 12.1.5.0注册机激活
- Javascript必须掌握的js库
- dsp c语言流水灯程序,DSP流水灯源程序
- win7 升级IE11报错(无法安装)
- 机器学习-数据归一化方法(Normalization Method)
- java中随机字符串生成器_java随机字符串生成器
- 《计算机网络 自顶向下方法》(第7版)答案(第三章)(一)
- 【Axure报错】-Unable to connect to Axure Share. Please make sure you have an internet connection and try
- 巧妙帮你保存个人隐私 WinRAR加密全攻略