永磁同步电机MTPA与弱磁控制

news2024/11/19 19:23:47

文章目录

  • 1、前言
  • 2、最大转矩电流比(MTPA)控制数学推导
    • 2.1 拉格朗日乘数法
    • 2.2 定义法偏导求解
  • 3、MTPA模型仿真搭建和分析
    • 3.1 电机参数与设置
      • 3.1.1 模型参数设置
      • 3.1.2 参数计算脚本
      • 3.1.3 模型参数设置示意图
    • 3.2 模型总览
    • 3.3 核心模块-MTPA模块
    • 3.4 仿真分析
      • 3.4.1 速度波形
      • 3.4.2 电流波形
    • 3.5 曲线拟合法
    • 3.6 查表法
  • 4、从MTPA到弱磁的转变
  • 5、弱磁控制数学推导
  • 6、弱磁控制模型仿真搭建与分析
    • 6.1 控制方法对比
    • 6.2 超前角弱磁控制实现
    • 6.3 模型总览
    • 6.4 弱磁控制模块
    • 6.5 控制效果
  • 7、参考

写在前面:本人能力、时间、技术有限,没有对一些细节进行深入研究和分析,也难免有不足和错误之处,欢迎交流和指正。本人写博客主要是学习过程的记录。

1、前言

在这里插入图片描述
在这里插入图片描述

2、最大转矩电流比(MTPA)控制数学推导

在这里插入图片描述

2.1 拉格朗日乘数法

在这里插入图片描述

2.2 定义法偏导求解

在这里插入图片描述

3、MTPA模型仿真搭建和分析

3.1 电机参数与设置

在这里插入图片描述

3.1.1 模型参数设置

Vdc=311;
Rs=0.958;
Ld=5.25e-3;
Lq=12e-3;
flux=0.1827;
J=0.003;
B=0.008;
pole=4;
fx=0;

3.1.2 参数计算脚本

function fcn()

%4V/1000rpm
r=0.958;
Ld=5.25e-3;
Lq=12e-3;
Ts=0.0001;
%Ke=4/1000; 
pole=4;
J=0.003;
B=0.008;
flux=0.1827;
fx=0;

%由反电动势常数计算磁链
%flux=10*sqrt(6)*Ke/(pi*pole);
% r : 欧姆
% LS:H

%电流环PI计算
A=[Ld/r Lq/r];
wc=2*pi/(min(A));
kcpd=wc*Ld;
kcpq=wc*Lq;
kci=wc*r;
 
%速度环PI计算
wn=wc/20;
Ba_temp=(wn*J-B)/(1.5*pole*flux);
%观察仿真结果,我们可以看出,系统响应速度较快,但是振荡得比较严重,系统不稳定。
%所以我们可以调节有功阻尼增益,减小有功阻尼增益,由表达式可以看出,转速环带宽与阻尼增益成正比。
% 根据自动控制原理可知,带宽越大,系统的快速性越好,稳定变差。B_a=0.13/10 B_a=0.013。PI参数不变。
Ba=Ba_temp/10;
kvp=wn*J/(1.5*pole*flux);
kvi=wn*kvp;


%数据打印
str='wc value is: ';
str=[str,num2str(wc)];
disp(str);

str='kcpd value is: ';
str=[str,num2str(kcpd)];
disp(str);

str='kcpq value is: ';
str=[str,num2str(kcpq)];
disp(str);

str='kci value is: ';
str=[str,num2str(kci)];
disp(str);

str='wn value is: ';
str=[str,num2str(wn)];
disp(str);

str='Ba value is: ';
str=[str,num2str(Ba)];
disp(str);

str='kvp value is: ';
str=[str,num2str(kvp)];
disp(str);

str='kvi value is: ';
str=[str,num2str(kvi)];
disp(str);

计算结果:
在这里插入图片描述

3.1.3 模型参数设置示意图

在这里插入图片描述
转子类型(Rotor type)选择Salient-pole(凸极型),其中round表示隐极型
在这里插入图片描述

3.2 模型总览

模型下载地址:永磁同步电机最大转矩电流比(MTPA)控制simulink仿真模型
在这里插入图片描述

3.3 核心模块-MTPA模块

在这里插入图片描述
MTPA计算脚本:

function [id,iq] = fcn(Te,flux,Ld,Lq,pole)

%计算iq
f1=8*Te*flux/(3*pole);
f2=Ld-Lq;
f3=4*Te/(3*pole);

v1=flux^2-4*((f2)^2);
v2=(f3^2)-flux^2;

iq=(f1+sqrt(f1^2-4*v1*v2))/(2*v1);

%计算id
id=(-flux+sqrt(flux^2 + 4*(f2^2)*(iq^2)))/(2*f2);

3.4 仿真分析

3.4.1 速度波形

给定速度(1000rpm)和速度反馈波形(MTPA控制策略):
在这里插入图片描述
给定速度(1000rpm)和速度反馈波形( i d ∗ = 0 i_d^*=0 id=0控制策略):
在这里插入图片描述
0.2s突加负载。可以看到在其它参数一致的情况下,MTPA比 i d ∗ = 0 i_d^*=0 id=0控制策略更稳。

3.4.2 电流波形

i q i_q iq i d i_d id反馈波形(MTPA控制策略)
在这里插入图片描述
负载10Nm稳定后,q轴电流幅值稳定在8.916A,d轴电流幅值稳定在-2.820A。
i s i_s is波形(MTPA控制策略)
在这里插入图片描述
负载10Nm稳定后,定子电流幅值约为9.248A。
转矩波形(MTPA控制策略)
在这里插入图片描述
负载转矩约为10Nm。

i q i_q iq i d i_d id反馈波形( i d ∗ = 0 i_d^*=0 id=0控制策略)
在这里插入图片描述
负载10Nm稳定后,q轴电流幅值稳定在9.994A且不稳定,d轴电流幅值稳定在约0 A。
i s i_s is波形( i d ∗ = 0 i_d^*=0 id=0控制策略)
在这里插入图片描述
转矩波形( i d ∗ = 0 i_d^*=0 id=0控制策略)
在这里插入图片描述
在这里插入图片描述

3.5 曲线拟合法

计算脚本:

function fcn()

%----------------------------------------基本参数--------------------------------------------------------%
%4V/1000rpm
r=0.958;
Ld=5.25e-3;
Lq=12e-3;
Ts=0.0001;
%Ke=4/1000; 
pole=4;
J=0.003;
B=0.008;
flux=0.1827;
fx=0;

%----------------------------------------PI等参数计算--------------------------------------------------------%
%由反电动势常数计算磁链
%flux=10*sqrt(6)*Ke/(pi*pole);
% r : 欧姆
% LS:H

%电流环PI计算
A=[Ld/r Lq/r];
wc=2*pi/(min(A));
kcpd=wc*Ld;
kcpq=wc*Lq;
kci=wc*r;
 
%速度环PI计算
wn=wc/20;
Ba_temp=(wn*J-B)/(1.5*pole*flux);
%观察仿真结果,我们可以看出,系统响应速度较快,但是振荡得比较严重,系统不稳定。
%所以我们可以调节有功阻尼增益,减小有功阻尼增益,由表达式可以看出,转速环带宽与阻尼增益成正比。
% 根据自动控制原理可知,带宽越大,系统的快速性越好,稳定变差。B_a=0.13/10 B_a=0.013。PI参数不变。
Ba=Ba_temp/10;
kvp=wn*J/(1.5*pole*flux);
kvi=wn*kvp;

%----------------------------------------数据打印--------------------------------------------------------%
str='wc value is: ';
str=[str,num2str(wc)];
disp(str);

str='kcpd value is: ';
str=[str,num2str(kcpd)];
disp(str);

str='kcpq value is: ';
str=[str,num2str(kcpq)];
disp(str);

str='kci value is: ';
str=[str,num2str(kci)];
disp(str);

str='wn value is: ';
str=[str,num2str(wn)];
disp(str);

str='Ba value is: ';
str=[str,num2str(Ba)];
disp(str);

str='kvp value is: ';
str=[str,num2str(kvp)];
disp(str);

str='kvi value is: ';
str=[str,num2str(kvi)];
disp(str);

%----------------------------------------计算id和Te拟合曲线 start--------------------------------------------------------%
% 预分配数组用于保存结果
numIterations = 1001;  % 0:0.1:100 共1001个点
idArray = zeros(1, numIterations);
iqArray = zeros(1, numIterations);
TeArray = zeros(1, numIterations);

% 使用结构体保存数据
dataStruct = struct('iq', iqArray,'id', idArray, 'Te', TeArray);

% 循环计算并保存结果
for idx = 1:numIterations
    iq = (idx - 1) * 0.1;  % 计算当前 iq 值
    
    % 计算 id 和 Te
    id = (-flux + sqrt(flux^2 + 4*((Ld-Lq)^2)*(iq^2))) / (2*(Ld-Lq));
    Te = 0.75 * pole * iq * (flux + sqrt(flux^2 + 4*((Ld-Lq)^2)*(iq^2)));
    
    dataStruct.iq(idx)=iq;
    dataStruct.id(idx)=id;
    dataStruct.Te(idx)=Te;

    % 将结构体保存到工作空间
    assignin('base', 'idTeData', dataStruct);
    % assignin('base', ['iq_' num2str(idx)], iq);
    % assignin('base', ['id_' num2str(idx)], id);
    % assignin('base', ['Te_' num2str(idx)], Te);  
end

% 使用polyfit计算拟合的iq,id值
iqFitCoeff = polyfit(dataStruct.Te, dataStruct.iq, 4);
disp('iqFitCoeff:');
disp(iqFitCoeff);

idFitCoeff = polyfit(dataStruct.Te, dataStruct.id, 3);
disp('idFitCoeff:');
disp(idFitCoeff);

% 使用polyval计算拟合曲线
iqFit = polyval(iqFitCoeff, dataStruct.Te);
idFit = polyval(idFitCoeff, dataStruct.Te);

% 绘制图像
figure;

% 绘制原始数据点
plot(dataStruct.Te, linspace(0, 100, numIterations), 'r*', 'DisplayName', 'Original Data');
hold on;
plot(dataStruct.Te, dataStruct.id, 'g*', 'DisplayName', 'Original Data');

% 绘制拟合曲线
plot(dataStruct.Te, iqFit, 'b', 'DisplayName', 'Fitted iq Curve');
plot(dataStruct.Te, idFit, 'm', 'DisplayName', 'Fitted id Curve');

% 添加标签和图例
xlabel('Te');
ylabel('Values');
title('Fitted Curves for iq and id');
legend;

% 重置图形
hold off;

% 将拟合系数保存到工作空间
assignin('base', 'idFitCoeff', idFitCoeff);
%----------------------------------------计算id和Te拟合曲线 end--------------------------------------------------------%

计算结果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
仿真模块:
在这里插入图片描述

3.6 查表法

首先需要确保workspace有表数据,本文使用3.5章节已有的数据,如下图:
在这里插入图片描述
查表法模块:
在这里插入图片描述
在这里插入图片描述
其中,其它模块以此类推
在这里插入图片描述

4、从MTPA到弱磁的转变

请参考: 电控4:永磁同步电机MTPA与弱磁控制的统一理解

5、弱磁控制数学推导

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6、弱磁控制模型仿真搭建与分析

弱磁控制方法常用的有:
在这里插入图片描述
在这里插入图片描述

6.1 控制方法对比

在这里插入图片描述
这里使用超前角弱磁控制。

6.2 超前角弱磁控制实现

在这里插入图片描述

6.3 模型总览

模型下载地址: 永磁同步电机最大转矩电流比(MTPA)控制+弱磁控制simulink仿真模型
在这里插入图片描述

6.4 弱磁控制模块

MTPA+弱磁:
在这里插入图片描述
超前角弱磁:
在这里插入图片描述

6.5 控制效果

转速给定与速度反馈波形:
在这里插入图片描述
额定转速1000rpm,超过1000rpm控制正常,最后稳定在2100rpm。0.2s的波动是加了5 Nm的负载。达到控制效果。
磁链轨迹如下:
在这里插入图片描述

7、参考

[1] 宫伟迪. 基于电动飞机永磁同步电机的MTPA控制研究[D].沈阳航空航天大学,2022.DOI:10.27324/d.cnki.gshkc.2022.000062.
[2] PMSM 的弱磁控制(使用 MTPA)
https://ww2.mathworks.cn/help/mcb/gs/field-weakening-control-mtpa-pmsm.html
[3] 电控3:从电压矢量角度来理解“永磁同步电机弱磁控制
https://zhuanlan.zhihu.com/p/652838870
[4] 电控4:永磁同步电机MTPA与弱磁控制的统一理解:
https://zhuanlan.zhihu.com/p/654926284
[5] 永磁同步电机的矢量控制策略(十二)一一一MTPA最大转矩电流比控制:
https://blog.csdn.net/qq_42249050/article/details/107451798
[6] 永磁同步电机最大转矩电流比(PMSM-MTPA)Simulink仿真教程:
https://zhuanlan.zhihu.com/p/385828327
[7] 基于MPTA+弱磁控制(直接计算法)+电流解耦器PMSM系统simulink实现
https://blog.csdn.net/weixin_44312889/article/details/124467496
[8] 理解弱磁控制及其一种工程实现方法
https://zhuanlan.zhihu.com/p/441544928
[9] 永磁同步电机矢量控制(六)——弱磁控制
https://zhuanlan.zhihu.com/p/648282522

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1475611.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IntelliJ IDEA下Spring Boot多环境配置教程

🌟🌌 欢迎来到知识与创意的殿堂 — 远见阁小民的世界!🚀 🌟🧭 在这里,我们一起探索技术的奥秘,一起在知识的海洋中遨游。 🌟🧭 在这里,每个错误都…

【蓝桥杯】包子凑数(DP)

一.题目描述 二.输入描述 三.输出描述 四.问题分析 几个两两互质的数,最大公约数是1,最小公倍数是他们的乘积。 两个互质的数a和b最小不能表示的数就是(a-1)(b-1)-1,即,两个互质的数…

Jrebel 使用备忘

背景 Java 开发时修改了代码如果手动中止进行然后重启的话,非常麻烦,所以需要一个热部署的插件,修改代码之后即时生效,无需重启。 之前一直用的 devtools,不过在一个新项目中,devtools 有点问题&#xff0…

用 Famous Face App 实现换脸:一秒变身你喜欢的明星

你是否曾经梦想过与你喜欢的明星同框? 现在,借助 Famous Face App 的强大技术,这个梦想可以轻松实现!Famous Face App 是一款基于人工智能的换脸应用,可以让你轻松将自己的脸换到各种视频和图片中。 使用 Famous Face…

公众号新媒体内容运营规划方案模板计划表

【干货资料持续更新,以防走丢】 公众号新媒体内容运营规划方案模板计划表 部分资料预览 资料部分是网络整理,仅供学习参考。 运营管理表格合集(完整资料包含以下内容)目录公众号新媒体运营计划书 一、目标: 搭建并…

在SAP HANA中使用OData(二)

通常有两种方式通过OData来暴露SAP HANA中的数据库对象,一是直接使用Database Object,比如前一篇和本篇文章介绍的例子,这种方式针对于数据已经存在于SAP HANA中,在Repository中没有对应的设计时对象(Design-time Object)&#xf…

【JavaScript】面试手撕防抖

引入 防抖可是前端面试时最频繁考察的知识点了,首先,我们先了解防抖的概念是什么。咳咳。👀 防抖: 首先它是常见的性能优化技术,主要用于处理频繁触发的浏览器事件,如窗口大小变化、滚动事件、输入框内容…

微服务-微服务Spring Security OAuth 2实战

1. Spring Authorization Server 是什么 Spring Authorization Server 是一个框架,它提供了 OAuth 2.1 和 OpenID Connect 1.0 规范以及其他相关规范的实现。它建立在 Spring Security 之上,为构建 OpenID Connect 1.0 身份提供者和 OAuth2 授权服务器产品提供了一个安全、轻…

【二】【SQL】去重表数据及分组聚合查询

去重表数据 表的准备工作 去除表中重复的数据,重复的数据只留一份。 mysql> create table duplicate_table (-> id int,-> name varchar(20)-> ); Query OK, 0 rows affected (0.03 sec)mysql> insert into duplicate_table values-> (100,aaa)…

用html实现一个简易的百度热榜

用html实现一个简易的百度热榜 相关代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document…

自主web服务器实现

目录 项目背景网络协议栈协议分层数据封装与分用 HTTP协议介绍HTTP协议简介认识URLURI、URL、URNHTTP的五大特点HTTP协议格式HTTP的请求方法HTTP的状态码HTTP常见的Header CGI机制介绍CGI机制概念CGI模式实现步骤CGI机制的流程 日志文件编写套接字相关代码编写HTTP服务器的主体…

【盲源分离】快速理解FastICA算法(附MATLAB绘图程序)

今天讲一个在信号分析领域较为常用的一个方法&#xff0c;即盲源分离算法中的FastICA。 我们先从一个经典的问题引入。 一、鸡尾酒舞会问题 想象一下&#xff0c;你身处一个熙熙攘攘的鸡尾酒舞会中。四周回荡着各种声音&#xff1a;笑声、交谈声、玻璃碰撞声&#xff0c;甚至…

swagger-ui.html报错404,解决办法

swagger-ui.html报错404,解决办法&#xff01;现在后端开发项目中&#xff0c;为了节省时间&#xff0c;使用swagger插件&#xff0c;可以方便的快捷生成接口文档。但是如果你在请求前端页面路径比如&#xff1a;http://127.0.0.1:7777/swagger-ui.html。找不到。那是因为你的配…

C语言-数据结构-顺序表

&#x1f308;个人主页: 会编辑的果子君 &#x1f4ab;个人格言:“成为自己未来的主人~” 目录 数据结构相关概念 顺序表 顺序表的概念和结构 线性表 顺序表分类 顺序表和数组的区别 顺序表分类 静态顺序表 动态顺序表 头插和尾插 尾插 数据结构相关概念 数据结构…

统计分析笔记3

文章目录 统计检验选择正确的统计检验统计检验是做什么的&#xff1f;何时进行统计检验选择参数化测试&#xff1a;回归、比较或相关性选择非参数检验 假设检验的假设条件skewness什么是零偏度right skewleft skew计算skewnesswhat to do if your data is skewed kurtosis怎么计…

《大模型时代-ChatGPT开启通用人工智能浪潮》精华摘抄

原书很长&#xff0c;有19.3w字&#xff0c;本文尝试浓缩一下其中的精华。 知识点 GPT相关 谷歌发布LaMDA、BERT和PaLM-E&#xff0c;PaLM 2 Facebook的母公司Meta推出LLaMA&#xff0c;并在博客上免费公开LLM&#xff1a;OPT-175B。 在GPT中&#xff0c;P代表经过预训练(…

C++:类与对象(1)

创作不易&#xff0c;谢谢支持&#xff01; 一、面向过程和面向对象 1、C语言是面向过程的&#xff0c;关注的是过程&#xff0c;分析出求解问题的步骤&#xff0c;通过函数调用逐步解决问题。 如我们要实现洗衣服&#xff1a; 2、而C是基于面向对象的&#xff0c;关注的是…

跨境电商与支付介绍

1、跨境电商定义和分类&#xff1b; 2、国际贸易清结算&#xff1b; 3、跨境支付&#xff1b; 1、跨境电商定义和分类 跨境电商业务简单说就是指不同国家地域的主体通过电子商务进行交易的一种业务模式。同传统的电商不同&#xff0c;交易双方属于不同的国家。因此&#xff0…

积累:使用QPushButton模拟开关按键

1. 效果图 2. 源码实现 2.1 设置 QPushButton 默认样式 QPushButton{border:none;border-image: url(:/image/close.png); }2.2 主要实现源码 void MainWindow::on_switch_btn_clicked() {if(m_switchisopen){ui->switch_btn->setStyleSheet("QPushButton{\border…

可观测性在威胁检测和取证日志分析中的作用

在网络中&#xff0c;威胁是指可能影响其平稳运行的恶意元素&#xff0c;因此&#xff0c;对于任何希望避免任何财政损失或生产力下降机会的组织来说&#xff0c;威胁检测都是必要的。为了先发制人地抵御来自不同来源的任何此类攻击&#xff0c;需要有效的威胁检测情报。 威胁…