感应(异步)电机磁场定向控制MATLAB/Simulink建模

article/2025/9/23 10:49:44

电机控制系列文章

感应(异步)电机磁场定向控制电流环PI控制参数设计
感应(异步)电机磁场定向控制速度环PI控制参数设计


目录

  • 电机控制系列文章
  • 前言
  • 一、控制器与被控对象的采样周期
  • 二、系统解算器设置
  • 三、被控对象建模
  • 四、控制器建模
    • 1、AD采样
    • 2、PI控制
    • 3、滤波器
    • 4、积分器
    • 5、调制
    • 6、常数及阶跃信号
  • 小技巧
  • 总结


前言

大家在做电机控制的MATLAB模型仿真与实际实验时,有没有碰到下面的问题:
仿真中的控制参数用在实际实验中,效果很差甚至完全不能用
如果有上述问题,说明你对真实控制器(如DSP、FPGA)与MATLAB模型的关系理解的还不够深入。这篇文章将带你在MATLAB中建立合适的控制模型。
文章中的MATLAB版本为R2016b。


一、控制器与被控对象的采样周期

电机控制系统中被控对象为逆变器+电机,控制器核心为DSP、FPGA等控制芯片。被控对象是连续的,而控制器通常是周期触发的,也就是离散的。他们两者的采样周期是不一样的,控制系统的采样周期应大于被控对象,因此在仿真中应予以区分。
在Model Properties的Callbacks选项卡下的InitFcn里进行变量初始化,在这里做的好处是,模型中重复使用的参数可以在这里统一修改。
DSP做电机控制通常触发PWM中断来计算,如果是波峰触发或者波谷触发,则每个开关周期计算一次,开关周期就是控制周期。开关频率设为5kHz,则控制周期为200us。
系统仿真步长和被控对象采样周期设为2us,这个值比开关周期越小越好,这里设置相差100倍。但也不能很小,很小的话仿真速度很慢,主要取决于开关周期和电脑性能。
模型变量初始化


二、系统解算器设置

在Model Configuration Parameters里面设置解算器类型为固定步长。由于本文所建立的模型都是离散的,因此解算器设置为离散(无连续状态)。固定步长设为上面提到的Ts。
解算器设置


三、被控对象建模

被控对象为直流电源、逆变器和电机。从模型库里选常用的模型即可。需要注意powergui的设置,仿真类型设为离散,解算器类型默认Tustin/Backward Euler (TBE) 即可,有些老版本的MATLAB没有TBE,Tustin也可以。
被控对象模型
powergui设置


四、控制器建模

下图是一个典型的间接磁场定向控制模型图,有AD采样、Clarke变换、Park变换、速度PI控制、d轴电流PI控制、q轴电流PI控制、间接磁场定向、反Park变换、SVPWM。
控制模型

1、AD采样

DSP每次进入PWM中断先进行AD采样,这里用了一个零阶保持器(Zero-Order Hold),零阶保持器的采样周期设为控制周期Tsc。从MATLAB的角度看,相当于是把采样周期为Ts的信号变为采样周期Tsc,方便后续信号以采样周期Tsc处理。
零阶保持器设置

2、PI控制

模型中采用离散PI控制器,采样周期设为Tsc。这里其实用默认的-1也可以,只要你能理解MATLAB模型里-1的含义,保证前面信号的采样周期为Tsc就行。
PI控制设置

3、滤波器

一阶低通滤波器的采样周期默认为0,需要改为Tsc。
一阶滤波器设置

4、积分器

积分器也用离散积分,采样周期设为Tsc。这里其实用默认的-1也可以,只要你能理解MATLAB模型里-1的含义,保证前面信号的采样周期为Tsc就行。
积分器设置

5、调制

调制需要特别注意。
如果DSP在载波波峰时触发PWM中断,DSP比较器载入方式设置为波峰载入,在这种情况下,计算需要时间,当前控制周期已经不能将调制波载入比较器,需要等到下个波峰到来才能载入比较器。
而MATLAB在一个采样周期内一次性都计算出来,可以理解为当前控制周期已经能载入调制波了。因此为模拟实际情况,在调制波与载波比较前加入一个开关周期的延时。
三角载波的采样周期,一定要设置为系统步长Ts或者0,这里采用的Repeating Sequence是一个连续模块,即采样周期为0,不需要设置。
调制比较模型

6、常数及阶跃信号

常数的采样周期默认为inf,可以不用改。阶跃信号的采样周期默认为0,需要改为Tsc。


小技巧

想必大家已经注意到我的模型里模块有不同的颜色,是因为我打开了Display->Sample Time->Colors,不同的颜色代表不同的采样周期,点击Sample Time Legend显示每种颜色代表多少采样周期。
采样周期颜色
采样周期图例


总结

本文适合对感应电机FOC有一定基础,对MATLAB仿真与实际控制器的关系有困惑的人。本文的模型只是一个示例,大家需要对自己的控制器处理流程理解清楚,才能建立适合自己系统的模型。尤其要注意调制与主控制的关系。


如果懒得搭模型,可以来这里下载
感应(异步)电机间接磁场定向控制MATLAB/Simulink仿真模型


http://chatgpt.dhexx.cn/article/4YN5UdSb.shtml

相关文章

Fixed-step size(Solver)、Sample time(模块)、Sample time(powergui)三者的辨析

Fixed-step size(Solver中)、Sample time(模块中)、Sample time(powergui中)三者的辨析 因未找到官方的解释可以清晰的解释三者之间的关系,本文尝试设计实验以辨析三者关系,利用Simulink模型界定三者的作用范围。 Simulink中三者的位置 Fixed-step si…

Simulink中利用Powergui进行FFT分析,但是信号源始终为空

软件版本:MATLAB R2021a 学习Simulink自带的模型examples(SVPWM Generator Block Examples),想利用FFT工具箱进行谐波分析,已在示波器中勾选“记录信号到工作区”选项,但发现信号源始终为空!&a…

利用Powergui进行FFT Analysis,信号源为空解决方法

利用Powergui进行FFT Analysis,信号源为空解决方法 **simulink中对powergui的使用参考:**https://blog.csdn.net/imwtj123/article/details/80191523 configuration parameters/solver采样步长设置与离散Powergui时间步长一致 scope波形勾选“Log data…

Simulink中powergui的FFT分析怎么用m文件实现?

matlab版本:2020b simulink求解算法:Auto(ode3tb),变步长运行 首先是Simulink中如何使用powergui进行FFT分析。 powergui在Simulink Library Browser中的路径为Simscape/Electrical/Specialized Power System/Fundammental Blocks。将powergu…

示波器中波形如何在matlab中进行fft——入门篇

1、示波器数据导入matlab 首先,打开matlab选择,点击“导入数据”,选择需要分析的excel;在打开的界面处,鼠标选择需要处理的数据范围,选择输出类型为“数据矩阵”,导入所选内容。 导入数据表如下…

matlab电路图powergui怎么用,使用matlab中的powergui对采集的数据进行谐波分析#实验日记#...

从今天开始,准备根据实验的进度,不定时的写一些实验日记,一方面是对自己每天实验内容的总结,方便日后温习,另一方面,也是在这里与大家共享,相互学习,充分发扬互联网的共享精神。也希…

Power Designer

1 什么是Power Designer? PowerDesigner是Sybase公司的一款软件,使用它可以方便地对系统进行分析设计,他几乎包括了数据库模型设计的全过程。利用PowerDesigner可以制作数据流程图、概念数据模型、物理数据模型和面向对象模型等。在项目设计阶段通常会使…

Matlab/simulink 2018a利用 powergui 进行FFT分析(傅里叶分析谐波)

首先你要有powergui模块在模型中 其次,你的信号会输入到示波器中 打开示波器左上角设置 在logging界面,勾选Log data to worksapce 然后可以更改信号名字,下面选择 structure with time 点击确定 然后运行 运行完毕以后,点…

simulink中对powergui的使用

步骤: 1.在仿真里面拖入powergui模块 2.设置所要分析的波形,保存入workspace,格式:Structure with time 3.进行仿真,完毕后,进入powergui的FFT Analysis 4.在Structure中选择信号名称等等。下面是开始计算…

关于MATLAB powergui 无法调整为discrete的解决方法

如下所示,powergui无法调整为其他的选项 解决方法如下

Simulink中步长、powergui采样时间、模块采样时间、控制周期的关系

Simulink中步长、powergui采样时间、模块采样时间、控制周期的关系 最近在搭模型的时候,对simulink中的各个“时间”产生了概念上的混淆,网上的资料也是鱼龙混杂,看了之后更是一知半解。因此本文针对Simulink中的各个时间做一个概念上的总结…

2021-08-26

电力电子技术仿真(一)单相半波整流电路 一.powergui1.1poweigui的介绍1.2 powergui的位置 二、仿真单相半波整流电路2.1 器件的位置2.2电路的连接及仿真效果2.2.1 连接图2.2.2 仿真结果 三、Tips3.1 仿真图像不连续,看起来断断续续?3.2 设置p…

[配置]linux如何联网

以redhat发行版进行演示说明: 1、通过命令提示符查看主机(windows)的ip地址 2、进入linux,在网络配置文件(/etc/sysconfig/network-sciptes/)中将ip地址改为静态,并改为与主机同一网段&#xff…

Linux无法联网解决方案

首先打开网络连接,检查网络是否被禁用 方法一 cd /etc/sysconfig/network-scripts vi /etc/sysconfig/network-scripts/ifcfg-ens33 输入这两行指令,检查最下面的onboot是否为yes,如果为no 按i进入修改模式修改为yes,然后:wq退出编辑 方法二 如果方法一没有解决问题 点击…

linux命令界面联网

1、第一步cd 进入network -scripts目录 2、第二步vi 进入ifcfg -ens33 3、第三步选择编译>虚拟网络编辑器,进行接下来的配置IP地址,子网,网关等等 4、vi 进入ifcfg -ens33;然后要对6个地方进行更改,我已经标记出来…

Linux系统如何连接网络

准备工作 用虚拟机软件装好Linux系统,Linux都是以文件的形式存在。网络连接选择:桥接网卡打开centos虚拟机终端,root用户登录进入系统 以root身份登录进入界面 输入ip addr它是用来查看本地IP地址的 修改网卡配置文件,输入:v…

Linux联网,自用

我怀疑是DHCP的问题,我的连接方式不是static,是DHCP 的方式,我主机的dhcp一直是开着的,我怀疑是虚机的dhcp没有打开导致的, 也有可以是主机dhcp需要重新启动,但是这种概率不大,我下周试试 能连…

基于linux的几款物联网操作系统

这里写自定义目录标题 欢迎使用Markdo新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个注脚注释…

如何让内网Linux机器联网

我们在安装内网Linux环境的时候需要联网下载各种安装包,可通过笔记本联网,然后路由给内网linux机器操作如下 1. linux机器和笔记本电脑配置成统一网段. 笔记本以太网ip内网Linux机器ip192.168.176.214192.168.176.1 2. 笔记本开启网络共享发现 3. 网卡…

linux上网方法

1、Linux网络设置: 依次单击【System】-->【Preferences】-->【Network Connections】,如下图所示: 依次单击【Wired】-->【System eth0】-->【Edit】,如下图所示: 勾选【Connect automaticlly】&#xf…