matlab 定义全局变量_暂态稳定性 | 发电机摇摆曲线δ-t计算 | matlab程序

news/2024/7/4 8:56:30 标签: matlab 定义全局变量

《MATLAB/Simulink电力系统建模与仿真》第2版p125

简单系统,短路故障(II段)发电机摇摆曲线δ-t(转子运动方程——两个一阶非线性常微分方程):

equation?tex=%5Cbegin%7Bcases%7D+%5Cfrac%7Bd%5Cdelta%7D%7Bdt%7D%3D%28w-1%29w_0%5C%5C+%5Cfrac%7Bdw%7D%7Bdt%7D%3D%5Cfrac%7B1%7D%7BT_J%7D%28P_T-%5Cfrac%7BE%27U%7D%7BX_%7BII%7D%7D%5Csin%5Cdelta%29+%5Cend%7Bcases%7D%5C%5C++t%3D0%3Bw%3D1%3B%5Cdelta%3D%5Cdelta_0%3Darcsin%5Cfrac%7BP_T%7D%7BP_%7BIM%7D%7D

已知切除故障时间(III段),求δ-t曲线判断系统稳定性

equation?tex=%5Cbegin%7Bcases%7D++%5Cfrac%7Bd%5Cdelta%7D%7Bdt%7D%3D%28w-1%29w_0%5C%5C++++%5Cfrac%7Bdw%7D%7Bdt%7D%3D%5Cfrac%7B1%7D%7BT_J%7D%28P_T-%5Cfrac%7BE%27U%7D%7BX_%7BIII%7D%7D%5Csin%5Cdelta%29++%5Cend%7Bcases%7D+
equation?tex=t%3Dt_%7Bcut%7D%3Bw%3Dw_%7Bcut%7D%3B%5Cdelta%3D%5Cdelta_%7Bcut%7D

教材常用分段计算法和常微分方程数值解法——改进欧拉法,但是由于MATLAB进行常微分方程求解算法中没有改进欧拉法,编程时采用Runge-Kutta龙格-库塔法。

%****发电机转子摇摆曲线的非线性一阶微分方程的Runge-Kutta龙格-库塔法的m函数***
%**************************************************************************
function Yd=power_tra(t,YY)
%t是标量形式的自变量
%YY是列向量
global y0 Tj Pt E U X1 %在函数中定义全局变量传递参数
%发电机转子摇摆曲线的微分方程
Yd=[(YY(2)-1)*y0;(Pt-(E*U/X1)*sin(YY(1)))/Tj];

求解微分方程程序

%求解发电机转子摇摆曲线的微分方程
%故障发生后的摆动曲线(没有切除故障)
%在主程序中定义全局变量传递函数
global y0 Tj Pt E U X1
y0=2*pi*50; Tj=11.28; Pt=1; E=1.47; U=1;
%系统转移电抗
X1=2.82; %故障时
%指定解算微分方程的时间区间
tspan=[0.0 0.3];
%给定初始向量
y1=[31.54*pi/180;1]; %故障时
%求解微分方程
[t,YY]=ode45('chapter6_1_transient_stability_Runge_Kutta',tspan,y1);
%ode45是一种变步长的采用Runge-Kutta的Nonstiff(非刚性)常微分方程算法(很重要)
%输出求解结果结果
x=YY(:,1);
y=YY(:,2);
%绘制曲线
subplot(2,1,1) %功率角δ曲线
plot(t,x*180/pi);
ylabel('delta/deg');
grid on
subplot(2,1,2) %转子转速ω曲线
plot(t,y*100*pi);
xlabel('t/s');
ylabel('omega/(rad/s)');
grid on

建立simulink仿真模型:

2b3d2d3ad4c29dccc0aed3f19a293276.png

http://www.niftyadmin.cn/n/629183.html

相关文章

微信小程序实现红包雨

前言话不多少先上效果,引入很简单,将/components/s-packetrain/index放到你的组件文件夹中直接引用就可以了。首先你要先在页面引入组件index.json 引用组件{ "navigationBarTitleText": "红包雨", "usingComponents": { "…

dbf在excel里更改后在gis中乱码_软件技巧如何在ARCMAP里标注文件特征信息

本文为工作室原创作品,如需转载请联系主页君在OSM下载的数据里,打开他们的属性表,里面往往有非常多的数据信息,例如道路的等级,道路名称,甚至含有道路的长度。当你想直观的体现在总图上时候,就可…

python row函数_Python第16课:函数的定义和调用

如何用最浅显的语言,给中小学生讲Python,是我一直在努力并实践的问题。——华丽老师课程贴士变量名、函数名等,这些名字除了要满足命名规则,还要做到“见名知意”,这是增加代码可读性的基础。满足命名规则很简单&#…

23种设计模式之适配器模式

23种设计模式总篇::https://chenmingyu.top/categories/设计模式/ 适配器模式 适配器模式属于结构型模式,又叫包装模式 定义: 把一个类的接口变换成客户端所期待的另一种接口,从而使原本接口不匹配而无法一起工作的两个类能够在一…

aws beanstalk mysql_AWS CloudFormation与BeanStalk的联系与区别

关注过云计算的人应该都知道AWS是什么?AWS CloudFormation作为亚马逊的一项服务肯定是有其存在的价值的!CloudFormation的中文的意思是“云编排”,在我看来“编排”就 是整合亚马逊云资源或者服务的一种方式,是相对于AWS底层服务的…

PTA编程总结3

题目7-1 抓老鼠啊~亏了还是赚了? 某地老鼠成灾,现悬赏抓老鼠,每抓到一只奖励10元,于是开始跟老鼠斗智斗勇:每天在墙角可选择以下三个操作:放置一个带有一块奶酪的捕鼠夹(T),或者放置一块奶酪(C…

4.3 阻塞赋值与非阻塞赋值

一&#xff0e;Golden Rule 编码原则很多&#xff0c;就阻塞非阻塞赋值而言&#xff0c;新手最需要牢记的是其中三条&#xff1a; 1) 时序逻辑一定用非阻塞赋值”<”,一旦看到敏感列表有posedge就用”<”。 2) 组合逻辑一定用””&#xff0c;一旦敏感列表没有…

laravel mysql 队列_Laravel 基于redis队列的解析

为什么使用队列使用队列的目的一般是:异步执行出错重试解释一下:异步执行: 部分代码执行很耗时, 为了提高响应速度及避免占用过多连接资源, 可以将这部分代码放到队列中异步执行.Eg. 网站新用户注册后, 需要发送欢迎的邮件, 涉及到网络IO无法控制耗时的这一类就很适合放到队列中…