¿Cómo puedo modelar este sistema de potencia lineal en MATLAB?

Para mi sistema de potencia, supongamos que tiene el siguiente modelo dinámico:   X = F ( X , tu ) .

Este modelo dinámico consta de cuatro ecuaciones diferenciales de primer orden (ver más abajo).

Luego, linealicé mi sistema usando el método de Newton-Raphson. Mi nuevo sistema lineal será:

  Δ X = A Δ X + B tu + disturbio

Dónde:

  •   X es el vector de estado que contiene 4 ecuaciones diferenciales de primer orden: (el ángulo de potencia δ , la velocidad angular del rotor ω, la tensión generada en el eje de cuadratura del generador eq', y la tensión de campo del generador en la directa eje   mi d ). alias:   Δ X = [ Δ d , Δ ω . Δ mi q , Δ mi d ] T

  •   tu es la parte de control. Hagámoslo cero por ahora.

  • Supongamos que la perturbación en la entrada de energía del generador es solo del 30 % (0,3 pu) durante solo 1 segundo.

ingrese la descripción de la imagen aquí

  • "A" es una matriz de 4 x 4. Déjanos decir:

A = [ 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 ]

La pregunta es:

¿Cómo puedo modelar el sistema que se muestra arriba usando MATLAB? Quiero graficar las cuatro variables de estado, pero no sé por dónde empezar

¿Hay algún código específico que me ayude a simular este sistema?

No estoy seguro de qué es exactamente lo que quiere lograr, pero generalmente el truco para modelar es mirar los errores (¿perturbación?) y luego construirlo hacia atrás.

Respuestas (1)

Para resolver este problema, debe consultar los solucionadores de ODE en MATLAB.

Tenga en cuenta que su función no describe cuál es la respuesta del sistema a una variación en la potencia de entrada Pm.

A continuación, he escrito una implementación, basada en el ejemplo de http://www.its.caltech.edu/~ae121/ae121/ode45_Ref2.pdf . En mi ejemplo, he agregado un término Pm a las ecuaciones diferenciales, para que pueda ver cómo una perturbación podría afectar la dinámica.

Desafortunadamente, no tengo MATLAB instalado, por lo que no puedo verificar si hay algún error en esto, pero la idea debería ser clara.

function main 
% a simple example to solve ODE's
% Uses ODE45 to solve 
%    dx_dt(1) = 1*x(1)+2*x(2)+3*x(3)+4*x(4)
%    dx_dt(2) = 5*x(1)+6*x(2)+7*x(3)+8*x(4)+Pm
%    dx_dt(3) = 9*x(1)+1*x(2)+2*x(3)+3*x(4)
%    dx_dt(4) = 4*x(1)+5*x(2)+6*x(3)+7*x(4)
%set an error
options=odeset('RelTol',1e-6);

%initial conditions
X0 = [0;0;0;0]; 
Pm0=1;

%before disturbance
tspan1 = [-1,0]; 
[t1,X1] = ode45('system',tspan1,X0,options,Pm0);

%during disturbance
tspan2 = [0,1];
[t2,X2] = ode45('system',tspan2,X1(end),options,1.3*Pm0);

%after disturbance
tspan3 = [1,3];
[t3,X3] = ode45('system',tspan3,X2(end),options,Pm0);

time=[t1,t2,t3];
X=[X1,X2,X3];

%plot the results
figure 
hold on
plot(time,X)
legend('x1','x2','x3','x4');ylabel('x');xlabel('t') 
return

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [dx_dt]= system(t,x,Pm) 
%a function which returns a rate of change vector
A = [1,2,3,4;
     5,6,7,8;... 
     9,1,2,3;
     4,5,6,7]
P=[0;Pm;0;0]
dx_dt = A*x+P; 
return