Matlab - Uso del if para graficar

 
Vista:
sin imagen de perfil
Val: 8
Ha aumentado su posición en 18 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Uso del if para graficar

Publicado por Braulio Manuel (4 intervenciones) el 06/01/2019 04:26:57
Hola, necesito ayuda por favor llevo mucho rato intentando graficar unas variables, pero no puedo.
Lo que necesito es que mientras Nm sea menor al 75% de Ns ocurran las condiciones que se muestran en el codigo, (en el if) y que cuando no ocurra, pasen otras cosas (dentro del else), pero necesito que en la grafica aparezcan ambas cosas para poder ver la transición.
De antemano muchas gracias.


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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
clear
clc
 
    %% Parametros
    R1=0.12; X1=0.8; R2=0.18; X2=0.7; Rfe=14.5; Xm=9.6;
 
    %% Datos de placa 
    P=25000; V=230; f=50; p=6; Nnom = 967; Wnom=Nnom*(pi/30); J=1.3;
 
    %% Datos adicionales
    Jeq=10*J;
 
    %% Partida directa 
 
        %% Calculos 
        Ns=(120*f)/p;
        Ws=Ns*(pi/30);
        Nm=linspace(0, Ns, 2048);
        Wm=Nm*(pi/30);
        S=(Ns-Nm)/Ns;
        Snom=(Ns-Nnom)/Ns;
 
        %% Circuito equivalente 
        Z1=R1+j*X1;
        Zm=(1/Rfe+1/(j*Xm))^(-1);
        Zth=(1/Z1+1/Zm)^(-1);
        Rth=real(Zth);
        Xth=imag(Zth);
        Zeq=(R1+j*X1+(1/Rfe+1/(j*Xm)+1./(R2./S+j*X2)).^(-1));
        Zeqnom=R1+j*X1+(1/Rfe+1/(j*Xm)+1./(R2./Snom+j*X2)).^-1;
 
 
    %% Partidor estrella - delta.
 
        if Nm<=Ns*0.75
        Vth1=((V/sqrt(3))*Zm)/(Z1+Zm);
 
 
        Tm1=3/Ws*abs(Vth)^2./((Rth+R2./S).^2+(Xth+X2)^2)*R2./S;
        Tnom1=3/Ws*abs(Vth)^2./((Rth+R2./Snom).^2+(Xth+X2)^2)*R2./Snom;
 
 
        I11=(V/sqrt(3))./Zeq;
        I1nom1=(V/sqrt(3))./Zeqnom;
        IL1=abs(I11);
        ILnom1=abs(I1nom1);
 
 
        Pin1=3*real((V/sqrt(3))*conj(I1));
        Pout1=Tm1.*Nm*pi/30;
 
        Efi1=Pout1./Pin1.*100;
 
 
        Tc1=(Tnom1/(Wnom)^2)*((Wm).^2);
        Ta1=Tm1-Tc1;
 
 
        elseif Nm>Ns*0.75
 
        Vth1=((V)*Zm)/(Z1+Zm);
 
 
        Tm1=3/Ws*abs(Vth1)^2./((Rth+R2./S).^2+(Xth+X2)^2)*R2./S;
        Tnom1=3/Ws*abs(Vth1)^2./((Rth+R2./Snom).^2+(Xth+X2)^2)*R2./Snom;
 
        I11=(V)./Zeq;
        I1nom1=(V)./Zeqnom;
        IL1=sqrt(3)*abs(I11);
        ILnom1=sqrt(3)*abs(I1nom1);
 
 
        Pin1=3*real((V/sqrt(3))*conj(I11));
        Pout1=Tm1.*Nm*pi/30;
 
 
        Efi1=Pout1./Pin1.*100;
 
 
        Tc1=(Tnom1/(Wnom)^2)*((Wm).^2);
        Ta1=Tm1-Tc1;
 
        end
 
 
 
            figure(1)
            plot (Nm, Tm1, Nm, Tc1);
            grid;
            ylabel('Nm');
            xlabel('Velocidad [rpm]');
            legend('carga', 'maquina');
 
 
            figure(2)
            plot (Nm,Ta1); % acelerante.  
            grid;
            ylabel('Nm');
            xlabel('Velocidad [rpm]');
            legend('acelerante');
 
            figure(3)
            plot(Nm,IL1);
            grid;
            ylabel('A');
            xlabel('Velocidad [rpm]');
 
 
            figure(4)
            plot(Nm,Pin1/1000,Nm,Pout1/1000);
            grid;
            ylabel('kW');
            xlabel('Velocidad [rpm]');
            legend('Pin', 'Pout');
 
 
            figure(5)
            plot(Nm,Efi1);
            grid;
            ylabel('%');
            xlabel('Velocidad [rpm]');
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
Responder
Imágen de perfil de JESUS DAVID ARIZA ROYETH
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Uso del if para graficar

Publicado por JESUS DAVID ARIZA ROYETH (1818 intervenciones) el 07/01/2019 18:09:28
Hola, podrías aclarar tu pregunta?
"Lo que necesito es que mientras Nm sea menor al 75% de Ns ocurran las condiciones que se muestran en el codigo, (en el if) y que cuando no ocurra, pasen otras cosas (dentro del else), pero necesito que en la grafica aparezcan ambas cosas para poder ver la transición." las dos cosas no pueden suceder al mismo tiempo, lo que entiendo que quieres hacer es una gráfica de ambas condiciones, entonces tu código no debería estar en condiciones para que se ejecute completamente, sería algo así :

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
Vth1=((V/sqrt(3))*Zm)/(Z1+Zm);
 
 
        Tm1=3/Ws*abs(Vth)^2./((Rth+R2./S).^2+(Xth+X2)^2)*R2./S;
        Tnom1=3/Ws*abs(Vth)^2./((Rth+R2./Snom).^2+(Xth+X2)^2)*R2./Snom;
 
 
        I11=(V/sqrt(3))./Zeq;
        I1nom1=(V/sqrt(3))./Zeqnom;
        IL1=abs(I11);
        ILnom1=abs(I1nom1);
 
 
        Pin1=3*real((V/sqrt(3))*conj(I1));
        Pout1=Tm1.*Nm*pi/30;
 
        Efi1=Pout1./Pin1.*100;
 
 
        Tc1=(Tnom1/(Wnom)^2)*((Wm).^2);
        Ta1=Tm1-Tc1;
 plot (Nm, Tm1, Nm, Tc1);
            grid;
            ylabel('Nm');
            xlabel('Velocidad [rpm]');
            legend('carga', 'maquina');
hold on
   Vth1=((V)*Zm)/(Z1+Zm);
 
 
        Tm1=3/Ws*abs(Vth1)^2./((Rth+R2./S).^2+(Xth+X2)^2)*R2./S;
        Tnom1=3/Ws*abs(Vth1)^2./((Rth+R2./Snom).^2+(Xth+X2)^2)*R2./Snom;
 
        I11=(V)./Zeq;
        I1nom1=(V)./Zeqnom;
        IL1=sqrt(3)*abs(I11);
        ILnom1=sqrt(3)*abs(I1nom1);
 
 
        Pin1=3*real((V/sqrt(3))*conj(I11));
        Pout1=Tm1.*Nm*pi/30;
 
 
        Efi1=Pout1./Pin1.*100;
 
 
        Tc1=(Tnom1/(Wnom)^2)*((Wm).^2);
        Ta1=Tm1-Tc1;
 plot (Nm, Tm1, Nm, Tc1);

es decir debes ejecutar el primer código, luego colocar un hold on para que no se te borre la gráfica y luego ejecutar el segundo código correspondiente a la segunda condición
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar