DFIG控制9: 搭建定子αβ坐标系下的电机模型

news2024/12/24 9:04:40

DFIG控制9: 搭建定子αβ坐标系下的电机模型。本文基于教程的第9部分(终于做完了)。主要目的是自己搭建一个DFIG的电机模型,与Simulink库中的模型做个对比。
本文基于教程的第9部分:
DFIM Tutorial 9 - Analytical Model of Doubly Fed Induction Generator for On-Line Simulation 主要目的是自己搭建一个DFIG的电机模型,与Simulink库中的模型做个对比。

教程使用的参考书:
G. Abad, J. Lopez, M. Rodriguez, L. Marroyo, and G. Iwanski, Doubly Fed Induction Machine: Modeling and Control for Wind Energy Generation. John Wiley & Sons, 2011.

需要搭建的模型的框图如下:

理论部分

使用 DFIG控制10: 双馈发电机的动态模型 中推导的定子静止αβ坐标系下的电压和磁链方程:

{ u s α = R s i s α + d d t ψ s α u s β = R s i s β + d d t ψ s β u r α = R r i r α + d d t ψ r α + ω r ψ r β u r β = R r i r β + d d t ψ r β − ω r ψ r α \begin{cases} u_{s\alpha} &= R_si_{s\alpha}+\frac{d}{dt}\psi_{s\alpha}\\ u_{s\beta} &= R_si_{s\beta}+\frac{d}{dt}\psi_{s\beta}\\ u_{r\alpha} &= R_ri_{r\alpha}+\frac{d}{dt}\psi_{r\alpha}+\omega_r\psi_{r\beta}\\ u_{r\beta} &= R_ri_{r\beta}+\frac{d}{dt}\psi_{r\beta}-\omega_r\psi_{r\alpha} \end{cases} usαusβurαurβ=Rsisα+dtdψsα=Rsisβ+dtdψsβ=Rrirα+dtdψrα+ωrψrβ=Rrirβ+dtdψrβωrψrα
{ ψ s α = ( 1.5 L m + L l s ) i s α + 1.5 L m i r α = L s i s α + L M i r α ψ s β = ( 1.5 L m + L l s ) i s β + 1.5 L m i r β = L s i s β + L M i r β ψ r α = ( 1.5 L m + L l r ) i r α + 1.5 L m i s α = L r i r α + L M i s α ψ r β = ( 1.5 L m + L l r ) i r β + 1.5 L m i s β = L r i r β + L M i s β \begin{cases} \psi_{s\alpha} &= (1.5L_m+L_{ls})i_{s\alpha}+1.5L_mi_{r\alpha} =L_si_{s\alpha}+L_Mi_{r\alpha}\\ \psi_{s\beta} &= (1.5L_m+L_{ls})i_{s\beta}+1.5L_mi_{r\beta} =L_si_{s\beta}+L_Mi_{r\beta}\\ \psi_{r\alpha} &= (1.5L_m+L_{lr})i_{r\alpha}+1.5L_mi_{s\alpha} =L_ri_{r\alpha}+L_Mi_{s\alpha}\\ \psi_{r\beta} &= (1.5L_m+L_{lr})i_{r\beta}+1.5L_mi_{s\beta} =L_ri_{r\beta}+L_Mi_{s\beta} \end{cases} ψsαψsβψrαψrβ=(1.5Lm+Lls)isα+1.5Lmirα=Lsisα+LMirα=(1.5Lm+Lls)isβ+1.5Lmirβ=Lsisβ+LMirβ=(1.5Lm+Llr)irα+1.5Lmisα=Lrirα+LMisα=(1.5Lm+Llr)irβ+1.5Lmisβ=Lrirβ+LMisβ
这里有4个关于磁链的微分方程,加上转矩和转子机械角频率的关系,模型共有5个微分方程。
写成矩阵形式,再消去电流,如下:

u = R i + d d t ψ + A ψ ψ = L i → d d t ψ = − ( R L − 1 + A ) ψ + u \begin{align*} \boldsymbol{u} &= \boldsymbol{R}\boldsymbol{i}+ \frac{d}{dt}\boldsymbol{\psi} +A\boldsymbol{\psi}\\ \boldsymbol{\psi} &= \boldsymbol{L}\boldsymbol{i}\\ \rightarrow \frac{d}{dt}\boldsymbol{\psi}&= -(\boldsymbol{R}\boldsymbol{L}^{-1}+\boldsymbol{A})\boldsymbol{\psi}+\boldsymbol{u} \end{align*} uψdtdψ=Ri+dtdψ+Aψ=Li=(RL1+A)ψ+u

其中,
R = [ R s 0 0 0 0 R r 0 0 0 0 R r 0 0 0 0 R r ] L = [ L s 0 L M 0 0 L s 0 L M L M 0 L r 0 0 L M 0 L r ] A = [ 0 0 0 0 0 0 0 0 0 0 0 ω r 0 0 − ω r 0 ] \begin{align*} \boldsymbol{R}&= \left[\begin{matrix} R_{s} &0 &0 &0 \\ 0 & R_{r} &0 &0\\ 0 &0 &R_{r} &0\\ 0 &0 &0 &R_{r} \end{matrix}\right]\\ \boldsymbol{L}&= \left[\begin{matrix} L_{s} &0 &L_{M} &0 \\ 0 & L_{s} &0 &L_{M}\\ L_{M} &0 &L_{r} &0\\ 0 &L_{M} &0 &L_{r} \end{matrix}\right]\\ \boldsymbol{A}&= \left[\begin{matrix} 0 &0 &0 &0 \\ 0 & 0 &0 &0\\ 0 &0 &0 &\omega_{r}\\ 0 &0 &-\omega_{r} &0 \end{matrix}\right] \end{align*} RLA= Rs0000Rr0000Rr0000Rr = Ls0LM00Ls0LMLM0Lr00LM0Lr = 00000000000ωr00ωr0
并且令漏感系数为:
σ = 1 − L M 2 L s L r \sigma=1- \frac{L_{M}^{2}}{L_{s}L_{r}} σ=1LsLrLM2

在MathCAD中计算 − ( R L − 1 + A ) -(\boldsymbol{R}\boldsymbol{L}^{-1}+\boldsymbol{A}) (RL1+A)

最终,用于仿真的模型为:
{ d d t [ ψ s α ψ s β ψ r α ψ r β ] = [ − R s σ L s 0 L M R s σ L r L s 0 0 − R s σ L s 0 L M R s σ L r L s L M R r σ L r L s 0 − R r σ L r − ω r 0 L M R r σ L r L s ω r − R r σ L r ] [ ψ s α ψ s β ψ r α ψ r β ] + [ u s α u s β u r α u r β ] J p d ω r d t = T e − T L \begin{cases} \frac{d}{dt} \left[\begin{matrix} \psi_{s\alpha} \\ \psi_{s\beta} \\ \psi_{r\alpha} \\ \psi_{r\beta} \end{matrix}\right]= \left[\begin{matrix} \frac{-R_{s}}{\sigma L_{s}} & 0 & \frac{L_{M}R_{s}}{\sigma L_{r}L_{s}} & 0 \\ 0 & \frac{-R_{s}}{\sigma L_{s}} & 0 & \frac{L_{M}R_{s}}{\sigma L_{r}L_{s}} \\ \frac{L_{M}R_{r}}{\sigma L_{r}L_{s}} & 0 & \frac{-R_{r}}{\sigma L_{r}} & -\omega_{r} \\ 0 & \frac{L_{M}R_{r}}{\sigma L_{r}L_{s}} & \omega_{r} & \frac{-R_{r}}{\sigma L_{r}} \\ \end{matrix}\right] \left[\begin{matrix} \psi_{s\alpha} \\ \psi_{s\beta} \\ \psi_{r\alpha} \\ \psi_{r\beta} \end{matrix}\right] +\left[\begin{matrix} u_{s\alpha} \\ u_{s\beta} \\ u_{r\alpha} \\ u_{r\beta} \end{matrix}\right] \\ \frac{J}{p}\frac{d \omega_{r}}{dt}=T_{e}-T_{L} \end{cases} dtd ψsαψsβψrαψrβ = σLsRs0σLrLsLMRr00σLsRs0σLrLsLMRrσLrLsLMRs0σLrRrωr0σLrLsLMRsωrσLrRr ψsαψsβψrαψrβ + usαusβurαurβ pJdtdωr=TeTL
p为极对数,仿真中p=2。

电机仿真模型搭建

仿真中使用磁链来计算电磁转矩。
T e = 3 2 p L M σ L s L r ( ψ s β ψ r α − ψ s α ψ r β ) T_{e}=\frac{3}{2}p \frac{L_{M}}{\sigma L_{s}L_{r}}(\psi_{s \beta}\psi_{r \alpha}-\psi_{s \alpha}\psi_{r \beta}) Te=23pσLsLrLM(ψsβψrαψsαψrβ)
自己搭建仿真模型如下:

  1. 因为是定子αβ坐标系下的模型,
    1. 需要对输入的定子电压做Clarke变换
    2. 对输入的转子电压,先做Clarke变换,再做坐标系旋转。
    3. 对输出的定子电流,做Clarke反变换,得到定子ABC电流
    4. 对输出的转子电流,先做坐标系旋转,再做Clarke反变换转子abc电流
  2. 转子电压和Simulink模型使用相同的输入,都是,考虑了变压器的变比。
  3. d d t ψ \frac{d}{dt}\boldsymbol{\psi} dtdψ 4个方程的计算,然后通过积分得到4个磁链的参数
  4. 基于磁链值,计算电流和电磁转矩
  5. 电磁转矩和机械转矩做差,然后积分,得到机械转速(上面模型的第5个方程)。再积分,得到转子的机械角度和电角度。


仿真对比

上方信号来自Simulink模型,下方带_m的信号来自刚才搭的模型。
自己搭的模型,输出的定子电流、转子电流、转矩,和Simulink模型基本相同。电网电压跌落期间的暂态波形也基本一致。但是放大后可以看到差异。

剩余问题(已解决)

  1. 自己搭的模型,在跑较长时间以后(10s左右),输出会发散,波形就和Simulink的模型不一致了,(不知道教程里面的模型是不是也这样,感觉可能是我模型里面一些模块的设置问题)
    1. 更新:发现是因为,仿真中自建的模型相当于开环运行,控制系统使用的转子电流来自simulink的模型,然后变换器的输出同时加在两个模型上。所以自建模型在长时间开环运行后就容易发散。如果用两套控制系统分别控制两个模型,那么都可以长时间运行。

转子电流来自simulink的模型ir,自建模型发散。

转子电流来自教程9的模型ir_m:simulink的模型发散。

初始化代码

clear

% DFIG parameters -> Rotor parameters referred to the stator side
f = 50; % Stator frequency (Hz)
Ps = 2e6; % Rated stator power (W)
n = 1500; % Rated rotational speed (rev/min)
Vs = 690; % Rated stator voltage (V)
Is = 1760; % Rated stator current (A)
Tem = 12732; % Rated torque (N.m)

p=2; % Pole pair

u = 1/3; % Stator/rotor turns ratio
Vr = 2070;    % Rated rotor voltage (non-reached) (V) 
smax = 1/3;   % Maximum slip
Vr_stator = (Vr*smax) *u;    % Rated rotor voltage referred to stator (V)
Rs = 2.6e-3;    % Stator resistance(ohm)                
Lsi = 0.087e-3; %  Leakage inductance (stator & rotor) (H)                 
Lm = 2.5e-3; %  Magnetizing inductance (H)
Rr = 2.9e-3; % Rotor resistance referred to stator (ohm)
Ls = Lm + Lsi; % Stator inductance (H)
Lr = Lm + Lsi; % Rotor inductance (H)
% Vbus = Vr_stator*sqrt(2); % DC de bus voltge referred to stator (V)
Vbus = 1150; % as in tutorial 4

sigma = 1-Lm^2/(Ls*Lr);

Fs = Vs*sqrt(2/3)/(2*pi*f);  % Stator Flux (aprox.) (Wb)
J = 127; % Inertia, originally 127, reduced by 2 to make the response faster
D = 10e-3; %damping = 0. originally D = 1e-3;

fsw = 4e3; 
Ts =  1/fsw/50;

kT = -1.5*p*(Lm/Ls)*Fs; % kT, coef of output of the speed controller  

tau_i = (sigma*Lr)/Rr;
tau_n = 0.05; 
wni = 100*(1/tau_i);
wnn = 1/tau_n;

kp_id = (2*wni*sigma*Lr)-Rr;
kp_iq = kp_id;

ki_id = (wni^2)*Lr*sigma;
ki_iq = ki_id;

kp_n = (2*wnn*J)/p; %kp_n = (2*wnn*J)/p;
ki_n = (wnn^2)*J/p; %ki_n = (wnn^2)*J/p;


% Three blade wind turbine mode
N = 100; % Gearbox ratio
Radio= 42; % blade radius 
ro= 1.225; % Air density

% Cp and Ct curves
beta=0;  % Pitch angle
ind2=1;

for lambda=0.1:0.01:11.8
    lambdai(ind2)= (1./((1./(lambda-0.02.*beta) + (0.003./ (beta^3+1)))));
    Cp(ind2)=0.73*(151./lambdai(ind2) - 0.58*beta - 0.002.*beta^2.14-13.2).*(exp(-18.4./lambdai (ind2))); 
    Ct(ind2)=Cp(ind2)/lambda;
    ind2=ind2+1;
end

tab_lambda=[0.1:0.01:11.8];


% Kopt for MPPT
Cp_max = 0.44; 
lambda_opt = 7.2;
Kopt = ((0.5*ro*pi* (Radio^5) *Cp_max)/(lambda_opt^3));
% Power curve in fucntion of wind speed

P = 1.0e+06 *[0,0,0,0,0,0,0,0.0472,0.1097,0.1815,0.2568,0.3418, ...
            0.4437,0.5642, 0.7046, 0.8667,1.0518,1.2616, 1.4976, 1.7613,2.0534,...
            2.3513,2.4024,2.4024,2.4024, 2.4024,2.4024,2.4024];
V = [0.0000,0.5556,1.1111,1.6667,2.2222,2.7778,3.3333,3.8889, 4.4444,... 
    5.0000,5.5556,6.1111,6.6667,7.2222,7.7778,8.3333,8.8889,9.4444, ...
    10.0000,10.5556,11.1111, 11.6667,12.2222,12.7778,13.3333, 13.8889,...
    14.4444,15.0000];
% figure
% subplot(1,2,1)
% plot(tab_lambda, Ct, 'linewidth',1.5)
% xlabel('\lambda', 'fontsize',14)
% ylabel('Ct', 'fontsize',14)
% subplot(1,2,2)
% plot (V, P, 'linewidth', 1.5)
% grid
% xlabel('Wind speed (m/s)', 'fontsize',14)
% ylabel('Power (W)', 'fontsize',14)


% Grid side converter
Cbus = 80e-3; % DC bus capacitance
Rg = 20e-6; % Grid side filter's resisatance
Lg = 400e-6; % Grid side filter's inductance
Kpg = 1/(1.5*Vs*sqrt(2/3));
Kqg = -Kpg;

% PI regulators
tau_ig = Lg/Rg;
wnig = 60*2*pi;

kp_idg = (2*wnig*Lg)-Rg;
kp_iqg = kp_idg; 
ki_idg = (wnig^2)*Lg;
ki_iqg = ki_idg;

kp_v = -1000;
ki_v = -300000; %ki_v = -300000;


Rcrowbar = 0.2; % crowbar circuit resistance
Tcrowbar = 0.1; % crowbar duration 0.1s

t_dip= 3;
t_recover = 3.5;
t_normal = 4.17;
 
a11 = -Rs/(sigma*Ls);
a22 = a11;
a33 = -Rr/(sigma*Lr);
a44 = a33;
a13 = Rs*Lm/(sigma*Ls*Lr);
a24 = a13;
a31 = Rr*Lm/(sigma*Ls*Lr);
a42 = a31;
A = [a11, 0, a13, 0;
    0, a22, 0, a24;
    a31, 0, a33, 0;
    0, a42, 0, a44];

% A = [a11, 0, a13, 0;
%     0, a11, 0, a13;
%     a31, 0, a33, 0;
%     0, a31, 0, a33];

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

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

相关文章

Focal Loss论文解读和调参教程

论文:Focal Loss for Dense Object Detection 论文papar地址:ICCV 2017 Open Access Repository 在各个主流深度学习框架里基本都有实现,本文会以mmcv里的focal loss实现为例(基于pytorch) 简介: 本文是…

1.mybatis-plus入门及使用

1.什么是MybatisPlus MyBatis-Plus 官网 为什么要学MybatisPlus? MybatisPlus可以节省大量时间,所有的CRUD代码都可以自动化完成MyBatis-Plus是一个MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效…

Java——数组中出现次数超过一半的数字

题目链接 牛客在线oj题——数组中出现次数超过一半的数字 题目描述 给一个长度为 n 的数组,数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 例如输入一个长度为9的数组[1,2,3,2,2,2,5,4,2]。由于数字2在数组中出现了5次,…

FastDFS与Nginx结合搭建文件服务器,并内网穿透实现公网访问

文章目录前言1. 本地搭建FastDFS文件系统1.1 环境安装1.2 安装libfastcommon1.3 安装FastDFS1.4 配置Tracker1.5 配置Storage1.6 测试上传下载1.7 与Nginx整合1.8 安装Nginx1.9 配置Nginx2. 局域网测试访问FastDFS3. 安装cpolar内网穿透4. 配置公网访问地址5. 固定公网地址5.1 …

低代码开发重要工具:jvs-flow (流程引擎)2.1.7版本更新内容

流程引擎主要包含了流程定义和编辑、任务分配和处理、流程监控和跟踪、数据模型和存储、条件和规则设置、安全性和权限管理、性能优化以及持续集成和部署等功能,以满足不同业务场景下的需求。 JVS流程引擎从V2版本开始,由flowable切换为 jvs-flow&#…

2023 年 五 大数据恢复软件帮助您找回数据

您是否刚刚丢失了一份需要数天工作才能更换的重要文件?不要恐慌!此列表中排名前 10 位的最佳数据恢复软件应用程序可以帮助您找回数据,您甚至可能不必在它们上花任何钱。 五大最佳数据恢复软件工具 以下是我们最喜欢的 10 大数据恢复软件应用…

记录-vue项目中使用PWA

这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前言: 梳理了一下项目中的PWA的相关用法,下面我会正对vue2和vue3的用法进行一些教程示例,引入离线缓存机制,即使你断网,也能访问页面。一旦用…

动力节点王鹤SpringBoot3笔记——第八章 文章管理模块

目录 第八章 文章管理模块 8.1 配置文件 8.2 视图文件 8.3 Java代码 第八章 文章管理模块 创建新的Spring Boot项目,综合运用视频中的知识点,做一个文章管理的后台应用。 新的Spring Boot项目Lession20-BlogAdmin。Maven构建工具,包…

VxLAN数据中心L2互连(hand-off方式)

用Arista的veos做了个DCI(hand-off)实验。模拟了VxLAN数据中心hand-off方式做L2互通。 在此分享。 实现思路 分别在DC1、DC2内配置BGP EVPN协议创建VXLAN隧道,实现各数据中心内部VM之间的通信,DC1-BL和DC2-BL通过二层接口方式接…

spring事务(注解 @Transactional )失效场景

目录标题1. 代理不生效1.1 将注解标注在接口方法上1.2 被final、static关键字修饰的类或方法1.3 类方法内部调用示例解决方案:新加一个Service方法1.4 (类本身) 未被spring管理2. 框架或底层不支持的功能2.1 非public修饰的方法2.2 多线程调用举例1举例22.3 数据库本…

C. Uncle Bogdan and Country Happiness(dfs + 回溯)

Problem - C - Codeforces 波格丹叔叔在弗林特船长的团队里待了很长一段时间,有时会怀念他的家乡。今天他告诉你他的国家是如何引入幸福指数的。有n个城市和n -1条连接城市的无方向道路。任何城市的公民都可以通过这些道路到达任何其他城市。城市编号从1到n&#xf…

【软考:软件设计师】 4 计算机组成与体系结构(三)计算机安全 | 加密技术

欢迎来到爱书不爱输的程序猿的博客, 本博客致力于知识分享,与更多的人进行学习交流 本文收录于软考中级:软件设计师系列专栏,本专栏服务于软考中级的软件设计师考试,包括不限于知识点讲解与真题讲解两大部分,并且提供电子教材与电子版真题,关注私聊即可 …

服务(第二篇)LAMP

一、编译安装apache ①关闭防火墙,将安装Apache所需软件包传到/opt目录下 systemctl stop firewalld.service setenforce 0 [rootxxx opt]# ls apr-1.6.2.tar.gz apr-util-1.6.0.tar.gz httpd-2.4.29.tar.bz2 ②安装环境依赖包 yum -y install gcc gcc-c mak…

专业排名全美top6|建筑学硕士学历CSC获批顺利赴美

E老师人文社科背景,二本院校任教,硕士毕业,没有英文文章,且申请周期只有一个月。据此我们提出,以赶上CSC申报为前提,尽量申请美国综合或者专业排名靠前的学校。最终我们助E老师获得美国专业排名TOP6的弗吉尼…

六个阶段形成CRM销售漏斗,优点有哪些

CRM销售漏斗是反映机会状态以及销售效率的重要的销售管理模型。对企业来说,CRM销售漏斗是一个必不可少的工具。通过销售漏斗,企业可以跟踪和分析客户旅程的每个阶段,并制定相应的销售战略。下面来说说,什么是CRM销售漏斗&#xff…

高频PCB电路设计常见的66个问题

随着电子技术快速发展,以及无线通信技术在各领域的广泛应用,高频、高速、高密度已逐步成为现代电子产品的显著发展趋势之一。信号传输高频化和高速数字化,迫使PCB走向微小孔与埋/盲孔化、导线精细化、介质层均匀薄型化,高频高速高…

Redis消息队列实现异步秒杀

Redis秒杀优化 改进秒杀业务,提高并发性能 需求: 1.新增秒杀优惠券的同时,将优惠券的信息保存到redis中 2.基于Lua脚本,判断秒杀库存,一人一单,决定用户是否抢购成功 3.如果抢购成功,将优惠…

Android系统启动流程--init进程的启动流程

这可能是个系列文章,用来总结和梳理Android系统的启动过程,以加深对Android系统相对全面的感知和理解(基于Android11)。 1.启动电源,设备上电 引导芯片代码从预定义的地方(固化在ROM,全称Read …

hive 入门 一般用于正式环境 修改元数据(二)

安装配置可参考 https://blog.csdn.net/weixin_43205308/article/details/130020674 1、如果启动过derby,最小初始化过 在安装路径下删除 derby.log metastore_db rm -rf derby.log metastore_db此处省略安装mysql数据库 2、配置MySQL 登录mysql mysql -uroot …

EightCap易汇:外汇投资入门需要了解哪些必要知识?

外汇市场是国际投资市场,日内交易量巨大,盈利机会极多。外汇是一种含有杠杆的投资产品,杠杆带来了高收益,也会带来高风险,对于外汇新手来说存在一定难度。新手投资者要如何交易,才能抓住外汇市场的盈利机会…