Matlab - Ayuda con restricciones

 
Vista:
sin imagen de perfil
Val: 38
Ha aumentado 1 puesto en Matlab (en relación al último mes)
Gráfica de Matlab

Ayuda con restricciones

Publicado por Abraham (16 intervenciones) el 06/11/2018 02:02:54
Buenas a todos , tengo este programa que anteriormente me habían ayudado con la exportación de resultados a excel. Pero ahora me encuentro con otro problema el cual necesito aplicar las siguientes restricciones:

1. 30%<X5<70% , X8<X5
2. COP >=0


Realice el código pero no consigo el resultado.

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
clc
Qe = 10;Te=-2;Tc=0;Tq = 80;Eficiencia = 0.8; %Datos de entrada
filename='Prueba1.xlsx';sheet=1;xlRange='A1 ';
k=1;A={'Te','Tc','Tq','Palta','Pbaja','X5','X8','CP5','CP8','h5','h8','h2','h4','h1','Vesp','Wp','h6','h7','h9','m1','m10','m5','Qg','Wpm5','COP'};
xlswrite(filename,A,sheet,xlRange)
for Tc=26:2:40
Palta=exp(15.26075-2234.09497*(1/(Tc+273.16))-76156.125*(1/(Tc+273.16)^2));  %Calculos del ciclo
Pbaja=exp(15.26075-2234.09497*(1/(Te+273.16))-76156.125*(1/(Te+273.16)^2));
X5=1-(((log(Pbaja))-16.29+(2802/(Tc+273.16)))/(3.859-(4192/(Tc+273.16))))^(1/3);
X8=1-(((log(Palta))-16.29+(2802/(Tq+273.16)))/(3.859-(4192/(Tq+273.16))))^(1/3);
X1=1;
CP5=(1.15125*Tc+(3.382678*X5*Tc)+((0.002198+(0.004793*X5))*(Te^2/2))+((0.000118*X5)*(Tc^3/3)));
CP8=(1.15125*Tq+(3.382678*X8*Tq)+((0.002198+(0.004793*X8))*(Tq^2/2))+((0.000118*X8)*(Tq^3/3)));
h5=(1570*((0.54-X5)^2)-215+CP5);
h8=(1570*((0.54-X8)^2)-215+CP8);
h2=4.65*Tc+185;
h4=(1.06*Te)+1440;
h1=(2.68*Tq)-(1.64*((-2802+(-4192*(1-X5)^3))/(log(Palta)-16.29-(3.859*(1-X5)^3))-273.16))+1440;
Vesp=(1/(2046.22-(1409.653*(X5^0.5))-(1.3465*Tc)-(0.0039*Tc^2)));
Wp=Vesp*(Palta-Pbaja);
h6=(Wp+h5);
h7=(Eficiencia*(h8-h6))+h6;
h8=(1570*((0.54-X8)^2)-215+CP8);
m1=Qe/(h4-h2);
m10=m1*(1-X5)/(X5-X8);
m5=m1+m10;
h9=((m10*h8)+m5*(h6-m5))/m10;
Qg=(m1*h1)+(m10*h8)-(m5*h7);
Wpm5=(Wp*m5);
COP=Qe/(Qg+Wpm5);
B(k,:)=[Te,Tc,Tq,Palta,Pbaja,X5,X8,CP5,CP8,h5,h8,h2,h4,h1,Vesp,Wp,h6,h7,h9,m1,m10,m5,Qg,Wpm5,COP];
  k=k+1;
end
xlRange='A2'; xlswrite(filename,B,sheet,xlRange)
if (X5<0.3 && X5<0.7)
    if X8<X5
        if COP>=0;
        end
    end
end
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Ayuda con restricciones

Publicado por JOSE JEREMIAS CABALLERO (5867 intervenciones) el 06/11/2018 02:37:42
1
2
3
4
5
6
7
8
9
10
11
12
X5,
X8
COP
if     0.3<X5   &&     X5<0.7     &&     X8<X5
        if COP>=0
            disp( 'no negativo')
        else
            disp('negativo')
        end
else
    disp( 'no cumple la condicion 0.3<X5   &&     X5<0.7     &&     X8<X5')
end
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
sin imagen de perfil
Val: 38
Ha aumentado 1 puesto en Matlab (en relación al último mes)
Gráfica de Matlab

Ayuda con restricciones

Publicado por Abraham (16 intervenciones) el 06/11/2018 03:06:16
Buenas , realice la prueba con el código propuesto pero no consigo el resultado , al final al ver la información exportada a excel sigo viendo los
valores que no deseo o que están marcados de color "naranja" ya quedan un COP negativo o fuera del rango . Por lo que las restricciones para X5,X8 y COP me ayudaran a eliminar esos valores que quedan fuera del rango.

aquí las capturas:

TZLry5
KXRQ0O
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
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Ayuda con restricciones

Publicado por JOSE JEREMIAS CABALLERO (5867 intervenciones) el 06/11/2018 03:14:35
exacto, el código al final que ha agregado no va a modificar lo de que excel, porque está después de la exportación. Tampoco menciona en su pregunta original ¿que desea exportar exactamente a excel ?. Si la pregunta no es clara, entonces va recibir respuestas no precisa a sus pregunta por lo general.
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
sin imagen de perfil
Val: 38
Ha aumentado 1 puesto en Matlab (en relación al último mes)
Gráfica de Matlab

Ayuda con restricciones

Publicado por Abraham (16 intervenciones) el 06/11/2018 03:20:40
Entonces en ese caso si deseo esa restricción para los valores y que el resultado se vea en el libro excel, tendría que meter las condiciones dentro del ciclo for?

Como esta en el código del tema, lo que deseo exportar a excel con las restricciones es lo siguiente:

1
B(k,:)=[Te,Tc,Tq,Palta,Pbaja,X5,X8,CP5,CP8,h5,h8,h2,h4,h1,Vesp,Wp,h6,h7,h9,m1,m10,m5,Qg,Wpm5,COP];
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
sin imagen de perfil
Val: 38
Ha aumentado 1 puesto en Matlab (en relación al último mes)
Gráfica de Matlab

Ayuda con restricciones

Publicado por Abraham (16 intervenciones) el 06/11/2018 04:25:45
Buenas , ya meti el ciclo if dentro del for pero no logro conseguir lo que deseo dentro del programa, al final siguen apareciendo los valores de la imagen de excel


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
clc
Qe = 10;Te=-2;Tc=0;Tq = 80;Eficiencia = 0.8; %Datos de entrada
filename='Prueba1.xlsx';sheet=1;xlRange='A1 ';
k=1;A={'Te','Tc','Tq','Palta','Pbaja','X5','X8','CP5','CP8','h5','h8','h2','h4','h1','Vesp','Wp','h6','h7','h9','m1','m10','m5','Qg','Wpm5','COP'};
xlswrite(filename,A,sheet,xlRange)
for Tc=26:2:40
Palta=exp(15.26075-2234.09497*(1/(Tc+273.16))-76156.125*(1/(Tc+273.16)^2));  %Calculos del ciclo
Pbaja=exp(15.26075-2234.09497*(1/(Te+273.16))-76156.125*(1/(Te+273.16)^2));
X5=1-(((log(Pbaja))-16.29+(2802/(Tc+273.16)))/(3.859-(4192/(Tc+273.16))))^(1/3);
X8=1-(((log(Palta))-16.29+(2802/(Tq+273.16)))/(3.859-(4192/(Tq+273.16))))^(1/3);
X1=1;
CP5=(1.15125*Tc+(3.382678*X5*Tc)+((0.002198+(0.004793*X5))*(Te^2/2))+((0.000118*X5)*(Tc^3/3)));
CP8=(1.15125*Tq+(3.382678*X8*Tq)+((0.002198+(0.004793*X8))*(Tq^2/2))+((0.000118*X8)*(Tq^3/3)));
h5=(1570*((0.54-X5)^2)-215+CP5);
h8=(1570*((0.54-X8)^2)-215+CP8);
h2=4.65*Tc+185;
h4=(1.06*Te)+1440;
h1=(2.68*Tq)-(1.64*((-2802+(-4192*(1-X5)^3))/(log(Palta)-16.29-(3.859*(1-X5)^3))-273.16))+1440;
Vesp=(1/(2046.22-(1409.653*(X5^0.5))-(1.3465*Tc)-(0.0039*Tc^2)));
Wp=Vesp*(Palta-Pbaja);
h6=(Wp+h5);
h7=(Eficiencia*(h8-h6))+h6;
h8=(1570*((0.54-X8)^2)-215+CP8);
m1=Qe/(h4-h2);
m10=m1*(1-X5)/(X5-X8);
m5=m1+m10;
h9=((m10*h8)+m5*(h6-m5))/m10;
Qg=(m1*h1)+(m10*h8)-(m5*h7);
Wpm5=(Wp*m5);
COP=Qe/(Qg+Wpm5);
B(k,:)=[Te,Tc,Tq,Palta,Pbaja,X5,X8,CP5,CP8,h5,h8,h2,h4,h1,Vesp,Wp,h6,h7,h9,m1,m10,m5,Qg,Wpm5,COP];
  k=k+1;
 if 0.3<X5 && X5<0.7 && X8<X5
    if COP>=0
        disp('no negativo')
    else
        disp('negativo')
    end
else
    disp('no cumple la condicion 0.3<X5 && X5<0.7 && X8<X5')
end
 
end
xlRange='A2'; xlswrite(filename,B,sheet,xlRange)


4Pt1uN

KXRQ0O
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
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Ayuda con restricciones

Publicado por JOSE JEREMIAS CABALLERO (5867 intervenciones) el 06/11/2018 06:28:06
Observe la secuencia.

1
2
3
4
5
6
7
8
9
10
11
B(k,:)=[Te,Tc,Tq,Palta,Pbaja,X5,X8,CP5,CP8,h5,h8,h2,h4,h1,Vesp,Wp,h6,h7,h9,m1,m10,m5,Qg,Wpm5,COP];
  k=k+1;
 if 0.3<X5 && X5<0.7 && X8<X5
    if COP>=0
        disp('no negativo')
    else
        disp('negativo')
    end
else
    disp('no cumple la condicion 0.3<X5 && X5<0.7 && X8<X5')
end

la condición de if esta después de llenar la matriz B, y por lo tanto no va a tener ningún incidencia en la matriz B y por ende el resultado final en excel no va a tener ningún variació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
sin imagen de perfil
Val: 38
Ha aumentado 1 puesto en Matlab (en relación al último mes)
Gráfica de Matlab

Ayuda con restricciones

Publicado por Abraham (16 intervenciones) el 06/11/2018 16:37:13
Ya puse el codigo if antes de la matriz , pero sigue dando el mismo resultado al revisar el libro de excel. Hay alguna de manera de aplicar tambien la misma condicion como lo hice yo pero con una sola variable? ejemplo: X=[X5,X8] y aplicar la restricción de 0.3<X y X<0.7 y por ultimo X8<X5

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
clc
Qe = 10;Te=-2;Tc=0;Tq = 80;Eficiencia = 0.8; %Datos de entrada
filename='Prueba1.xlsx';sheet=1;xlRange='A1 ';
k=1;A={'Te','Tc','Tq','Palta','Pbaja','X5','X8','CP5','CP8','h5','h8','h2','h4','h1','Vesp','Wp','h6','h7','h9','m1','m10','m5','Qg','Wpm5','COP'};
xlswrite(filename,A,sheet,xlRange)
for Tc=26:2:40
Palta=exp(15.26075-2234.09497*(1/(Tc+273.16))-76156.125*(1/(Tc+273.16)^2));  %Calculos del ciclo
Pbaja=exp(15.26075-2234.09497*(1/(Te+273.16))-76156.125*(1/(Te+273.16)^2));
X5=1-(((log(Pbaja))-16.29+(2802/(Tc+273.16)))/(3.859-(4192/(Tc+273.16))))^(1/3);
X8=1-(((log(Palta))-16.29+(2802/(Tq+273.16)))/(3.859-(4192/(Tq+273.16))))^(1/3);
X1=1;
CP5=(1.15125*Tc+(3.382678*X5*Tc)+((0.002198+(0.004793*X5))*(Te^2/2))+((0.000118*X5)*(Tc^3/3)));
CP8=(1.15125*Tq+(3.382678*X8*Tq)+((0.002198+(0.004793*X8))*(Tq^2/2))+((0.000118*X8)*(Tq^3/3)));
h5=(1570*((0.54-X5)^2)-215+CP5);
h8=(1570*((0.54-X8)^2)-215+CP8);
h2=4.65*Tc+185;
h4=(1.06*Te)+1440;
h1=(2.68*Tq)-(1.64*((-2802+(-4192*(1-X5)^3))/(log(Palta)-16.29-(3.859*(1-X5)^3))-273.16))+1440;
Vesp=(1/(2046.22-(1409.653*(X5^0.5))-(1.3465*Tc)-(0.0039*Tc^2)));
Wp=Vesp*(Palta-Pbaja);
h6=(Wp+h5);
h7=(Eficiencia*(h8-h6))+h6;
h8=(1570*((0.54-X8)^2)-215+CP8);
m1=Qe/(h4-h2);
m10=m1*(1-X5)/(X5-X8);
m5=m1+m10;
h9=((m10*h8)+m5*(h6-m5))/m10;
Qg=(m1*h1)+(m10*h8)-(m5*h7);
Wpm5=(Wp*m5);
COP=Qe/(Qg+Wpm5);
 if 0.3<X5 && X5<0.7 && 0.3<X8 && X8<0.7 && X8<X5
    if COP>=0
        disp('no negativo')
    else
        disp('negativo')
    end
else
    disp('no cumple la condicion 0.3<X5 && X5<0.7 && X8<X5')
end
B(k,:)=[Te,Tc,Tq,Palta,Pbaja,X5,X8,CP5,CP8,h5,h8,h2,h4,h1,Vesp,Wp,h6,h7,h9,m1,m10,m5,Qg,Wpm5,COP];
  k=k+1;
 
end
xlRange='A2'; xlswrite(filename,B,sheet,xlRange)

me da estos resultados pero en e libro de excel no cambia nada respecto a los valores que no deseo exportar
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