Resolución de sistema de ecuaciones con variable iterativa.
Publicado por luciano (1 intervención) el 31/01/2021 15:44:47
Muy buenos días, quisiera exponer mi problema ya que debido a mi poca familiarización en programación no he podido resolver en dias! jeje :c . Resulta que tengo un sistema de ecuaciones a resolver, donde una de mis variables varía entre más de 630 valores distintos, por ende mi sistema de ecs. tiene muchos posibles resultados que dependen de estas variables que mencióne (m_d0 y m_q0), a esto se le llama región de operación de un rectificador. A continuación dejaré el código en el cual he trabajado cuando solo eran 3 unicas soluciones de mi sistema..
Espero que alguien pueda ayudarme, ya que intenté implementar un ciclo for en el modelo descrito en el código pero no lo logré hacer..
Gracias de ante mano
Espero que alguien pueda ayudarme, ya que intenté implementar un ciclo for en el modelo descrito en el código pero no lo logré hacer..
Gracias de ante mano
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
%código para determinar punto de operación de un rectificador VSC con filtro de entrada LR
pkg load symbolic
warning off
display('------------Parametros de simulación Lado AC y DC--------')
display('-Lado AC--------')
Vrms=10;
fr=50; %Frecuencia de la red
w=2*pi*fr; %frecuencia angular
Lr=2E-3 ;%inductor del filtro 2mH
R=0.5; %ohm
display('---Lado DC----')
Gac=0.8666; %Ganancia ac SPWM
Rdc=10; %ohm
Cdc=500E-6; %microfaradio
display('---Entrada----')
M=1; %Amplitud señal de referencia/moduladora
%%%%%%R.O Moduladoras
t=0:0.01:2*pi;
m_d0=M*sqrt(3)/sqrt(2)*cos(t);%Moduladora directa
m_q0=M*sqrt(3)/sqrt(2)*sin(t);%Moduladora en Cuadratura
%%%%%%%%%%%%%%%%%%%%%%Fin R.O Moduladoras
%%Valores en eje DQ
vsd= Vrms*sqrt(2) *sqrt(3)/sqrt(2);
vsq=0;
%definiendo variables simbolicas
dVdc =sym('dVdc'); %variación de voltaje dc
Vdc =sym('Vdc');
Vs_d =sym('Vs_d');
Vs_q =sym('Vs_q');
dis_d =sym('dis_d'); %variación de corriente isd
dis_q =sym('dis_q'); %variación de corriente isq
isd =sym('isd');
isq =sym('isq');
m_d =sym('mvd');
m_q =sym('mvq');
%EXPRESIONES Aplicando transformación DQ, al modelo VSC de carga pasiva
%utilizando variables simbolicas, parámetros AC y DC
%display('-------Expresiones modelo VSR expresadas a través del modelo Ecuaciones diferenciales----------------')
dis_d= (+w*isq) + (1/Lr)* ( (-isd*R) + (Vs_d) - Gac/sqrt(3)*m_d*Vdc);
dis_q = (-w*isd) + (1/Lr)* ( (-isq*R) + (Vs_q) - Gac/sqrt(3)*m_q*Vdc);
dVdc = (1/Cdc) * ( Gac/sqrt(3)*(m_d*isd + m_q*isq) - Vdc/Rdc ) ;
arg = {Vs_d Vs_q m_d m_q}; %argumentos conocidos(variable generalizada)
arg_val ={vsd vsq m_d0 m_q0}; % puntos de cálculo
%A continuación se sustituyen los valores simbolicos para encontrar soluciones
x1=subs(dis_d, arg, arg_val);
x2=subs(dis_q, arg, arg_val);
x3=subs(dVdc, arg, arg_val);
%solucionando el sistema de ecuaciones
sol =solve (x1 == 0, x2 == 0, x3 == 0, isd,isq,Vdc);
display('--------------------------')
%mostrando los resultados
display('----Solución ejes DQ----------------------')
isd= double(sol.isd)
isq= double(sol.isq)
Vdc= double(sol.Vdc)
Valora esta pregunta


0