当前位置: 首页 > news >正文

【永磁同步电机(PMSM)】 4. 同步旋转坐标系仿真模型

【永磁同步电机(PMSM)】 4. 同步旋转坐标系仿真模型

    • 1. Clarke 变换的模型与仿真
      • 1.1 Clarke 变换
      • 1.2 Clarke 变换的仿真模型
    • 2. Park 变换的模型与仿真
      • 2.1 Park 变换
      • 2.2 Park 变换的仿真模型
    • 3. Simscape标准库变换模块
      • 3.1 abc to Alpha-Beta-Zero 模块
      • 3.2 abc to dq0 模块
    • 4. 基于 S函数的仿真模型


由于电机处于高速旋转运动状态,在 abc 三相静止坐标系(自然坐标系)所建立的 PMSM 数学模型,存在复杂的变量耦合,难以分析和求解。

通过数学变换将 abc 三相静止坐标系转换到 αβ两相静止坐标系 和 dq 同步旋转坐标系,可以对模型进行解耦和简化。本节讨论坐标系变换的模型与仿真。


1. Clarke 变换的模型与仿真

1.1 Clarke 变换

通过Clarke变换(有些文献也写作 Clark 变换)将 abc 三相静止坐标系转换到 αβ两相静止坐标系,记为 T 3 s / 2 s T_{3s/2s} T3s/2s

两相静止坐标系中的信号相互正交,更容易分离基波分量和谐波分量。对于 PMSM,假设虚拟电机有两个虚拟绕组,呈90°轴距分布,在定子槽中呈正弦分布,这两个绕组分别为直轴绕组和交轴绕组,即α,β轴。为简化分析过程,可以在建立αβ静止坐标系时将α轴与abc静止坐标系的a相轴重合。

Clarke 变换公式如下。通过 Clarke 变换,将abc三相静止坐标系下的 fa,fb,fc 分别映射到α-β轴上,得到αβ两相静止坐标系下的虚拟物理量 fα, fβ。

[ f α , f β , f 0 ] T = T 3 s / 2 s [ f a , f b , f c ] T [f_{\alpha}, f_{\beta}, f_0]^T = T_{3s/2s} [f_a, f_b,f_c]^T [fα,fβ,f0]T=T3s/2s[fa,fb,fc]T
T 3 s / 2 s = 2 3 [ 1 − 1 2 − 1 2 0 3 2 − 3 2 2 2 2 2 2 2 ] T_{3s/2s} =\frac{2}{3} \begin{bmatrix} 1 & -\frac{1}{2} & -\frac{1}{2}\\ 0 & \frac{\sqrt{3}}{2} & -\frac{\sqrt{3}}{2}\\ \frac{\sqrt{2}}{2} & \frac{\sqrt{2}}{2} & \frac{\sqrt{2}}{2} \end{bmatrix} T3s/2s=32 1022 2123 22 2123 22

f f f 表示电压 u u u,电流 i i i,磁链 ψ \psi ψ等时变变量,例如:

[ i α i β i o ] = T 3 s / 2 s [ i a i b i c ] = 2 3 [ 1 − 1 / 2 − 1 / 2 0 3 / 2 − 3 / 2 2 / 2 2 / 2 2 / 2 ] [ i a i b i c ] \begin{bmatrix}i_{\alpha} \\i_{\beta}\\i_o\end{bmatrix} = T_{3s/2s} \begin{bmatrix}i_a \\i_b \\ i_c\end{bmatrix}= \frac{2}{3} \begin{bmatrix} 1 & -1/2 & -1/2\\ 0 & \sqrt{3}/2 & -\sqrt{3}/2\\ \sqrt{2}/2 & \sqrt{2}/2 & \sqrt{2}/2 \end{bmatrix} \begin{bmatrix}i_a \\i_b \\ i_c\end{bmatrix} iαiβio =T3s/2s iaibic =32 102 /21/23 /22 /21/23 /22 /2 iaibic

式中, i 0 i_0 i0 为零序分量。

Clarke变换的逆变换,称为反Clarke变换(用T2s/3s表示)。

[ u a u b u c ] = T 2 s / 3 s [ u α u β u o ] = 2 3 [ 1 0 2 / 2 − 1 / 2 3 / 2 2 / 2 − 1 / 2 − 3 / 2 2 / 2 ] [ u α u β u o ] \begin{bmatrix}u_a \\u_b\\u_c\end{bmatrix} = T_{2s/3s} \begin{bmatrix}u_{\alpha}\\u_{\beta}\\u_o\end{bmatrix} =\frac{2}{3} \begin{bmatrix} 1 & 0 & \sqrt{2}/2\\ -1/2 & \sqrt{3} /2 & \sqrt{2}/2\\ -1/2 & -\sqrt{3} /2 & \sqrt{2}/2 \end{bmatrix} \begin{bmatrix}u_{\alpha} \\u_{\beta} \\u_o\end{bmatrix} uaubuc =T2s/3s uαuβuo =32 11/21/203 /23 /22 /22 /22 /2 uαuβuo


1.2 Clarke 变换的仿真模型

根据 Clarke 变换的数学公式,使用Matlab/Simulink建立 Clarke 变换的仿真模型。
(1)新建模型:打开Matlab软件,在Simulink模型编辑界面中新建“空白模型”。
(2)添加模块:打开库浏览器,从Simulink、Simscape\Electrical\Specialized Power Systems等标准库中依次选取模块。按照设计计算结果设置模块参数。用户也可以直接在模型编辑界面中,双击鼠标左键调出“搜索模块”弹窗,输入模块名称,直接选择和添加模块。
(3)搭建模型:按照电路原理图连接各模块,搭建Buck变换电路的仿真模型。
(4)信号监测:使用信号标记模块goto、信号分解模块Demux、总线选择模块Bus Select,提取和选择需要观测的信号,作为示波器的输入信号。
(5)模型设置:选择“模型配置参数”,在求解器中选择仿真算法ode23tb(stiff/TR-BDF2),仿真时间为0.02s。
按照以上步骤,建立 Clarke 变换和反变换的仿真模型(Clarke01.slx),如下图所示。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


仿真结果如下图所示。


2. Park 变换的模型与仿真

2.1 Park 变换

通过 Park 变换将 αβ两相静止坐标系 转换到 dq 同步旋转坐标系,记为 T 2 s / 2 r T_{2s/2r} T2s/2r

Park 变换公式如下。通过 Park 变换,将αβ两相静止坐标系fα, fβ 分别映射到d-q轴上,得到 dq 同步旋转坐标系下的虚拟物理量 fd, fq。

[ f d , f q ] T = T 2 s / 2 r [ f α , f β ] T [f_d, f_q]^T = T_{2s/2r} [f_{\alpha}, f_{\beta}]^T [fd,fq]T=T2s/2r[fα,fβ]T
T 2 s / 2 r = [ c o s ( θ ) s i n ( θ ) − s i n ( θ ) c o s ( θ ) ] T_{2s/2r} = \begin{bmatrix} cos(\theta)&sin(\theta)\\ -sin(\theta)&cos(\theta)\\ \end{bmatrix} T2s/2r=[cos(θ)sin(θ)sin(θ)cos(θ)]

f f f 表示电压 u u u,电流 i i i,磁链 ψ \psi ψ等时变变量,例如:

[ u d u q ] = T 2 s / 2 r [ u α u β ] = [ c o s ( θ ) s i n ( θ ) − s i n ( θ ) c o s ( θ ) ] [ u α u β ] \begin{bmatrix}u_d\\u_q\end{bmatrix} = T_{2s/2r} \begin{bmatrix}u_{\alpha} \\u_{\beta}\end{bmatrix} = \begin{bmatrix} cos(\theta)&sin(\theta)\\ -sin(\theta)&cos(\theta)\\ \end{bmatrix} \begin{bmatrix}u_{\alpha}\\u_{\beta}\end{bmatrix} [uduq]=T2s/2r[uαuβ]=[cos(θ)sin(θ)sin(θ)cos(θ)][uαuβ]

式中, i 0 i_0 i0 为零序分量。

Park 变换的逆变换,称为反Park 变换(用T2r/2s表示)。

[ u α u β ] = T 2 r / 2 s [ u d u q ] = [ c o s ( θ ) − s i n ( θ ) s i n ( θ ) c o s ( θ ) ] [ u d u q ] \begin{bmatrix}u_{\alpha}\\u_{\beta}\end{bmatrix} = T_{2r/2s} \begin{bmatrix}u_d\\u_q\end{bmatrix} = \begin{bmatrix} cos(\theta) & -sin(\theta)\\ sin(\theta) & cos(\theta) \end{bmatrix} \begin{bmatrix}u_d\\u_q\end{bmatrix} [uαuβ]=T2r/2s[uduq]=[cos(θ)sin(θ)sin(θ)cos(θ)][uduq]


2.2 Park 变换的仿真模型

根据 Clarke 变换的数学公式,使用Matlab/Simulink建立 Clarke 变换的仿真模型。

在这里插入图片描述

在这里插入图片描述


仿真结果如下图所示。

在这里插入图片描述

由仿真结果可见,经过坐标变换,在dq 同步旋转坐标系中的 Vd, Vq 成为解耦的直流量,便于进行控制。


3. Simscape标准库变换模块

Simscape标准库提供了 abc to Alpha-Beta-Zero模块和 abc to dq0 模块。

3.1 abc to Alpha-Beta-Zero 模块

abc to Alpha-Beta-Zero 模块对三相abc信号进行 Clarke 变换。Alpha-Beta-Zero to abc 模块对 αβ0 分量执行 Clarke 逆变换。

在这里插入图片描述

假设ua、ub、uc量表示三个正弦平衡电压:

[ u a u b u c ] = U [ c o s ( ω t ) c o s ( ω t − 2 π / 3 ) c o s ( ω t + 2 π / 3 ) ] \begin{bmatrix}u_a\\u_b\\u_c\end{bmatrix} = U \begin{bmatrix}cos{(\omega t)}\\cos{(\omega t-2\pi/3)}\\cos{(\omega t+2\pi/3)}\end{bmatrix} uaubuc =U cos(ωt)cos(ωt2π/3)cos(ωt+2π/3)

则 iα和iβ分量表示旋转空间矢量Is在α轴与相位a轴对齐的固定参考系中的坐标。振幅与三个电流产生的旋转磁动势成正比。


3.2 abc to dq0 模块

abc to dq0 模块 使用Park变换将三相(abc)信号变换为dq0旋转参考系。旋转框架的角位置由输入 wt 给出,单位为rad。
dq0 to abc 模块 使用逆Park变换将dq0旋转参考系变换为三相(abc)信号。旋转框架的角位置由输入 wt 给出,单位为rad。
当wt=0处的旋转帧对齐在相位A轴后90度时,Mag=1且phase=0度的正序信号产生以下dq值:d=1,q=0。

在这里插入图片描述

该模块支持用于 Park 变换:

  • 当旋转框架在t=0时与相位A轴对齐时,即t=0时,d轴与A轴对齐。这种类型的Park变换也称为余弦型Park变换。
  • 当旋转框架在相位A轴后对齐90度时,即t=0时,q轴与A轴对齐。这种类型的公园改造也被称为正弦型Park 变换。在具有三相同步和异步电机的Simscape™Electrical™专用电力系统模型中使用此转换。

通过在三相静止参考系中执行abc到αβ0-Clarke变换,从abc信号中推导出dq0分量。然后在旋转参考系中执行αβ0到dq0的变换,即通过对空间向量Us=uα+j·uβ执行−ωt旋转。

abc-to-dq0变换取决于t=0时的dq帧对齐。旋转坐标系的位置由ω.t给出,其中ω表示dq坐标系的旋转速度。
在这里插入图片描述


4. 基于 S函数的仿真模型

Matlab/Simulink在Simscape标准库中提供了多种坐标转换模块,使用abc_to_dq0模块可以完成从abc三相静止坐标系到dq旋转参考系的转换。

基于abc_to_dq0模块直接建立的仿真模型更加简洁。对于复杂算法也可以使用Simulink中的S函数建立仿真模型,如下图所示。

在这里插入图片描述


参考文献:袁雷等,现代永磁同步电机控制原理及MATLAB仿真,北京航空航天大学出版社,2016

相关文章:

【永磁同步电机(PMSM)】 4. 同步旋转坐标系仿真模型

【永磁同步电机(PMSM)】 4. 同步旋转坐标系仿真模型 1. Clarke 变换的模型与仿真1.1 Clarke 变换1.2 Clarke 变换的仿真模型 2. Park 变换的模型与仿真2.1 Park 变换2.2 Park 变换的仿真模型 3. Simscape标准库变换模块3.1 abc to Alpha-Beta-Zero 模块3…...

CSAPP Attack Lab

个人感觉非常有意思的一个 Lab,涉及的知识面比较窄,主要关注 缓冲区溢出漏洞 这一个方面,并基于此进行代码攻击,体验一把做黑客的感觉,对应知识点为书中的 3.10 节内容。 这个 Lab 上手便给了我当头一棒,在…...

通信工程学习:什么是NFVI网络功能虚拟化基础设施层

NFVI:网络功能虚拟化基础设施层 NFVI(Network Functions Virtualization Infrastructure)即网络功能虚拟化基础设施层,是NFV(Network Functions Virtualization,网络功能虚拟化)架构中的一个重要…...

不在同一局域网怎么远程桌面?非局域网环境下,实现远程桌面访问的5个方法分享!

非局域网环境下,怎么远程桌面?还能做到吗? 在企业管理中,远程桌面访问已成为提高工作效率、实现跨地域协同工作的关键工具。 然而,当被控端与控制端不在同一局域网时,如何实现远程桌面连接成为了许多企业…...

SparkSQL-初识

一、概览 Spark SQL and DataFrames - Spark 3.5.2 Documentation 我们先看下官网的描述: SparkSQL是用于结构化数据处理的Spark模块,与基本的Spark RDD API不同。Spark SQL提供的接口为Spark提供了更多关于正在执行的数据和计算结构的信息。在内部&a…...

Go语言的垃圾回收(GC)机制的迭代和优化历史

Go语言的垃圾回收(GC)机制自Go语言发布以来经历了多次重要的迭代和优化,以提高性能和减少程序运行时的停顿时间。 以下是一些关键的版本和相应的GC优化: Go版本GC耗时情况主要改进点Go 1.0-1.4可能达到几百毫秒至秒级使用简单的标…...

thinkphp8 从入门到放弃(后面会完善用到哪里写到哪)

thinkphp8 从入门到放弃 引言 thinkphp* 大道至简一、 thinkphp8 安装安装Composerthinkphp 安装命令(tp-项目名称)多应用安装(一个项目不会只有一个应用)安装完文件目录如下本地部署配置伪静态好了项目可以run 二、架构服务(Service&#xf…...

对于电商跨境电商独立站中源代码建站和SaaS建站的区别

电商跨境电商独立站的搭建有多种方式,作为电商企业,搭建完全自主控制的电商独立站,对于电商企业的发展和运营有着至关重要的作用。下面推荐一个使用多年的跨境电商独立站系统源码,做简要介绍,据说前段时间火爆的Pandab…...

使用vite+react+ts+Ant Design开发后台管理项目(二)

前言 本文将引导开发者从零基础开始,运用vite、react、react-router、react-redux、Ant Design、less、tailwindcss、axios等前沿技术栈,构建一个高效、响应式的后台管理系统。通过详细的步骤和实践指导,文章旨在为开发者揭示如何利用这些技术…...

C++之 string(中)

C之 string string类对象的容量操作 resize 将有效字符的个数该成n个,多出的空间用字符c填充 虽然在string里用的不多,但是在vector里面常见 这里有三种情况: 1)resize小于当前的size 2)resize大于当前的size,小于capacity …...

双向链表的基本结构及功能实现

1.基本结构: 双向链表是一种链表数据结构,它由一系列节点组成,每个节点包含三个部分: (1).数据域:存储节点的数据 (2).前驱指针:指向前一个节点 (3).后驱指针:指向下一个节点 2.基本特性: 双向链接: 与单向链表…...

stm32定时触发软件中断

这里使用定时器作为延时,单位为秒,使用exti的软件触发方式,配置见代码,在main里进行触发软件中断 代码 #include "stm32f10x.h" #include "stm32f10x_gpio.h" #include "misc.h" #include "…...

blender设置背景图怎么添加?blender云渲染选择

Blender是一款功能强大的3D建模软件,它以流畅的操作体验和直观的用户界面而闻名。使用Blender,你可以轻松地为你的3D模型添加背景图片。 以下是具体的操作步骤: 1、启动Blender:首先,打开Blender软件。访问添加菜单&a…...

MMD模型及动作一键完美导入UE5-Blender方案(三)

1、下载并安装blender_mmd_tools插件 1、下载并安装Blender,Blender,下载Blender3.6,下载太新的版本可能会跟blender_mmd_tools不匹配 2、github下载blender_mmd_tools:https://github.com/UuuNyaa/blender_mmd_tools/ 3、Edit->Preference->Add ons->Install F…...

网络安全自学入门:(超详细)从入门到精通学习路线规划,学完即可就业

很多人上来就说想学习黑客,但是连方向都没搞清楚就开始学习,最终也只是会无疾而终!黑客是一个大的概念,里面包含了许多方向,不同的方向需要学习的内容也不一样。 算上从学校开始学习,已经在网安这条路上走…...

如何在O2OA中使用ElementUI组件进行审批流程工作表单设计

本文主要介绍如何在O2OA中进行审批流程表单或者工作流表单设计,O2OA主要采用拖拽可视化开发的方式完成流程表单的设计和配置,不需要过多的代码编写,业务人员可以直接进行修改操作。 在流程表单设计界面,可以在左边的工具栏找到Ele…...

三、LLM应用开发准备工作

LLM应用开发准备工作 开发基础开发工具大模型kxswkey的配置与使用工具推荐结语 开发基础 最好具备一定的Python开发基础,不需要特别深 如果不具备,可以先学习一下基础知识(概念),比如Python环境管理、包管理与使用、基…...

机器学习-可解释性机器学习:随机森林与fastshap的可视化模型解析

可解释性机器学习是指使机器学习模型的决策过程透明化,帮助用户理解模型如何得出特定结果。随机森林和 FastSHAP 是常用的工具,以下是对它们的简要解析和可视化方法。 随机森林 1. 概述 随机森林是一种集成学习方法,通过构建多个决策树并结…...

使用Assimp加载glb/gltf文件,然后使用Qt3D来渲染

文章目录 1.代码2.说明2.1.调用2.2.关于贴图 1.代码 ModelLoader.h #ifndef MODELLOADER_H #define MODELLOADER_H#include <QObject> #include <Qt3DRender> #include <QVector3D> #include <QGeometry>#include <assimp/Importer.hpp> #incl…...

vue实现左侧数据拖拽到右侧区域,且左侧数据保留且左侧数据不能互相拖拽改变顺序

一、案例效果 二、案例代码 封装左侧抽屉 DrawerSearch.vue<template><div><mtd-form :model="formDrawerSearch" ref="formCustom" inline><mtd-form-item><mtd-inputtype="text"v-model="formDrawerSearch.ho…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中&#xff0c;手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力&#xff0c;既支持点击、长按、拖拽等基础单一手势的精细控制&#xff0c;也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

无法与IP建立连接,未能下载VSCode服务器

如题&#xff0c;在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈&#xff0c;发现是VSCode版本自动更新惹的祸&#xff01;&#xff01;&#xff01; 在VSCode的帮助->关于这里发现前几天VSCode自动更新了&#xff0c;我的版本号变成了1.100.3 才导致了远程连接出…...

第25节 Node.js 断言测试

Node.js的assert模块主要用于编写程序的单元测试时使用&#xff0c;通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试&#xff0c;通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

【OSG学习笔记】Day 16: 骨骼动画与蒙皮(osgAnimation)

骨骼动画基础 骨骼动画是 3D 计算机图形中常用的技术&#xff0c;它通过以下两个主要组件实现角色动画。 骨骼系统 (Skeleton)&#xff1a;由层级结构的骨头组成&#xff0c;类似于人体骨骼蒙皮 (Mesh Skinning)&#xff1a;将模型网格顶点绑定到骨骼上&#xff0c;使骨骼移动…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化

缓存架构 代码结构 代码详情 功能点&#xff1a; 多级缓存&#xff0c;先查本地缓存&#xff0c;再查Redis&#xff0c;最后才查数据库热点数据重建逻辑使用分布式锁&#xff0c;二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...

DingDing机器人群消息推送

文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人&#xff0c;点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置&#xff0c;详见说明文档 成功后&#xff0c;记录Webhook 2 API文档说明 点击设置说明 查看自…...

MySQL 8.0 事务全面讲解

以下是一个结合两次回答的 MySQL 8.0 事务全面讲解&#xff0c;涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容&#xff0c;并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念&#xff08;ACID&#xff09; 事务是…...

苹果AI眼镜:从“工具”到“社交姿态”的范式革命——重新定义AI交互入口的未来机会

在2025年的AI硬件浪潮中,苹果AI眼镜(Apple Glasses)正在引发一场关于“人机交互形态”的深度思考。它并非简单地替代AirPods或Apple Watch,而是开辟了一个全新的、日常可接受的AI入口。其核心价值不在于功能的堆叠,而在于如何通过形态设计打破社交壁垒,成为用户“全天佩戴…...

python爬虫——气象数据爬取

一、导入库与全局配置 python 运行 import json import datetime import time import requests from sqlalchemy import create_engine import csv import pandas as pd作用&#xff1a; 引入数据解析、网络请求、时间处理、数据库操作等所需库。requests&#xff1a;发送 …...

【Linux手册】探秘系统世界:从用户交互到硬件底层的全链路工作之旅

目录 前言 操作系统与驱动程序 是什么&#xff0c;为什么 怎么做 system call 用户操作接口 总结 前言 日常生活中&#xff0c;我们在使用电子设备时&#xff0c;我们所输入执行的每一条指令最终大多都会作用到硬件上&#xff0c;比如下载一款软件最终会下载到硬盘上&am…...