Hi folks!
I want to create a standalone application to run a script that I've wrote in matlab script. And I know that i need to create a GUI for that as well, but to integrate the GUI and my script i need to compile to C first. The point is, as far i know i need to create first a function to call my script, the problem is that my program has many functions inside of it, so how can generate a function such like that?
Here is my code. The user will need to insert the first 6 parameters in the future application: S,V,X0,X1,X2,Zaterramento
%Este Script foi desenvolvido para resolver CC bifásico para terra em geradores
%Curto aplicado as fases B e C
%Desenvolvimento: Jucimar Carpe
%Data:13/11/2018
%Matéria de Aplicação: Sistemas Elétricos de Potência
%
clear allclose all%% Basta informar os 6 parâmetros abaixo do gerador;
S=30e6;V=13.8e3;X0=0.08;X1=0.2;X2=0.25;Zaterramento_ohms=0.571320;%Deste Ponto em diante o programa calculará todo o restante
Zbase=((V.^2)/S);Zn=3*(Zaterramento_ohms/Zbase);Zparalelo_X2_X0=((j*(X0+Zn)*j*X2)/(j*(X0+Zn)+j*X2));Ztotal=Zparalelo_X2_X0+(j*X1);Ibase=(S/(sqrt(3)*V));Ia1=j/Ztotal;%%Aplicar divisor de corrente para descobrir I2 e I0
%Ia2=(-Ia1*j*(X0+Zn))/(j*(X2+X0+Zn));Ia0=(-Ia1*j*(X2))/(j*(X2+X0+Zn));%%Defasagem na corrente para os vetores das fases B e C
a=((-1/2)+j*(sqrt(3)/2));a_quadrado=((-1/2)-j*(sqrt(3)/2));%Ib0=Ia0;Ib1=Ia1*((-1/2)-j*(sqrt(3)/2));Ib2=Ia2*((-1/2)+1i*(sqrt(3)/2));Ic0=Ia0;Ic1=Ia1*((-1/2)+j*(sqrt(3)/2));Ic2=Ia2*((-1/2)-j*(sqrt(3)/2));%Ia0_A=Ibase*Ia0;Ia1_A=Ibase*Ia1;Ia2_A=Ibase*Ia2;Ib0_B=Ibase*Ib0;Ib1_B=Ibase*Ib1;Ib2_B=Ibase*Ib2;Ic0_C=Ibase*Ic0;Ic1_C=Ibase*Ic1;Ic2_C=Ibase*Ic2;%%Montagem da matriz TDI
TDI=[1 1 1; 1 a_quadrado a; 1 a a_quadrado];%Matriz_Ia0_Ia1_Ia2=[Ia0; Ia1; Ia2];Ia_Ib_Ic_pu=TDI*Matriz_Ia0_Ia1_Ia2;IA=Ibase*Ia_Ib_Ic_pu(1,1);IB=Ibase*Ia_Ib_Ic_pu(2,1);IC=Ibase*Ia_Ib_Ic_pu(3,1);Icc_pu=3*Ia0;Icc=Ibase*Icc_pu;Va0=-1*Ia2*j*X2Va1=-1*Ia2*j*X2Va2=-1*Ia2*j*X2Va0_Va1_Va2=[Va0; Va1; Va2];Va_Vb_Vc_pu=TDI*Va0_Va1_Va2%%Tensões de fase do gerador
%VA_fase=(V/(sqrt(3)))*Va_Vb_Vc_pu(1,1)VB_fase=(V/(sqrt(3)))*Va_Vb_Vc_pu(2,1)VC_fase=(V/(sqrt(3)))*Va_Vb_Vc_pu(3,1)%%Tensões de linha do gerador
%VA=(V)*Va_Vb_Vc_pu(1,1)VB=(V)*Va_Vb_Vc_pu(2,1)VC=(V)*Va_Vb_Vc_pu(3,1)V_aterramento=Zn*Ia0*(V/(sqrt(3)))%%Montagem dos vetores de corrente
%origem =[0 0]; % Origem do sistema de vetores
pIA = [real(IA) imag(IA)]; % Vetor Corrente IA
dp1 = pIA-origem; % Diferença
pIB = [real(IB) imag(IB)]; % Vetor Corrente IB
dp2 = pIB-origem; % DiferençapIC = [real(IC) imag(IC)]; % Vetor Corrente IC
dp3 = pIC-origem; % Diferença%pIa1 = [real(Ia1_A) imag(Ia1_A)]; % Vetor Corrente Ia1
dp4 = pIa1-origem; % DiferençapIa2 = [real(Ia2_A) imag(Ia2_A)]; % Vetor Corrente Ia2
dp5 = pIa2-origem; % DiferençapIa0 = [real(Ia0_A) imag(Ia0_A)]; % Vetor Corrente Ia0
origem_Ia0=dp4+dp5;dp6 = pIa0-origem; % Diferença%pIb1 = [real(Ib1_B) imag(Ib1_B)]; % Vetor Corrente Ib1
dp7 = pIb1-origem; % DiferençapIb2 = [real(Ib2_B) imag(Ib2_B)]; % Vetor Corrente Ib2
dp8 = pIb2-origem; % DiferençapIb0 = [real(Ib0_B) imag(Ib0_B)]; % Vetor Corrente Ib0
origem_Ib0=dp7+dp8;dp9 = pIb0-origem; % Diferença%pIc1 = [real(Ic1_C) imag(Ic1_C)]; % Vetor Corrente Ic1
dp10 = pIc1-origem; % DiferençapIc2 = [real(Ic2_C) imag(Ic2_C)]; % Vetor Corrente Ic2
dp11 = pIc2-origem; % DiferençapIc0 = [real(Ic0_C) imag(Ic0_C)]; % Vetor Corrente Ic0
origem_Ic0=dp10+dp11;dp12 = pIc0-origem; % Diferença%title('Fasores de corrente e suas sequências');figure(1)hold ongrid ongrid minorquiver(origem(1),origem(2),dp1(1),dp1(2),0) %IA
quiver(origem(1),origem(2),dp2(1),dp2(2),0) %IB
quiver(origem(1),origem(2),dp3(1),dp3(2),0) %IC
quiver(origem(1),origem(2),dp4(1),dp4(2),0) %Ia1
quiver(dp4(1),dp4(2),dp5(1),dp5(2),0) %Ia2
quiver(origem_Ia0(1),origem_Ia0(2),dp6(1),dp6(2),0) %Ia0
quiver(origem(1),origem(2),dp7(1),dp7(2),0) %Ib1
quiver(dp7(1),dp7(2),dp8(1),dp8(2),0) %Ib2
quiver(origem_Ib0(1),origem_Ib0(2),dp9(1),dp9(2),0) %Ib0
quiver(origem(1),origem(2),dp10(1),dp10(2),0) %Ic1
quiver(pIc1(1),pIc1(2),dp11(1),dp11(2),0) %Ic2
quiver(origem_Ic0(1),origem_Ic0(2),dp12(1),dp12(2),0) %Ic0
%hold off
legend('IA','IB','IC','Ia1','Ia2','Ia0','Ib1','Ib2','Ib0','Ic1','Ic2','Ic0')legend show%%Montagem dos vetores de tensão de fase
%%
Vb0=Va0;Vb1=Va1*((-1/2)-j*(sqrt(3)/2));Vb2=Va2*((-1/2)+j*(sqrt(3)/2));Vc0=Va0;Vc1=Va1*((-1/2)+j*(sqrt(3)/2));Vc2=Va2*((-1/2)-j*(sqrt(3)/2));%Va0_A=(Va0*(V/sqrt(3)))Va1_A=(Va1*(V/sqrt(3)))Va2_A=(Va2*(V/sqrt(3)))Vb0_B=(Vb0*(V/sqrt(3)))Vb1_B=(Vb1*(V/sqrt(3)))Vb2_B=(Vb2*(V/sqrt(3)))Vc0_C=(Vc0*(V/sqrt(3)))Vc1_C=(Vc1*(V/sqrt(3)))Vc2_C=(Vc2*(V/sqrt(3)))%pVA = [real(VA_fase) imag(VA_fase)]; % Vetor tensão VA_fase
dp13 = pVA-origem; % DiferençapVB = [real(VB_fase) imag(VB_fase)]; % Vetor tensão VB_fase
dp14 = pVB-origem; % DiferençapVC = [real(VC_fase) imag(VC_fase)]; % Vetor tensão VC_fase
dp15 = pVC-origem; % Diferença%pVa1 = [real(Va1_A) imag(Va1_A)]; % Vetor tensão Va1
dp16 = pVa1-origem; % DiferençapVa2 = [real(Va2_A) imag(Va2_A)]; % Vetor tensão Va2
dp17 = pVa2-origem; % DiferençapVa0 = [real(Va0_A) imag(Va0_A)]; % Vetor tensão Va0
origem_Va0=dp16+dp17;dp18 = pVa0-origem; % Diferença%pVb1 = [real(Vb1_B) imag(Vb1_B)]; % Vetor tensão Vb1
dp19 = pVb1-origem; % DiferençapVb2 = [real(Vb2_B) imag(Vb2_B)]; % Vetor tensão Vb2
dp20 = pVb2-origem; % DiferençapVb0 = [real(Vb0_B) imag(Vb0_B)]; % Vetor tensão Vb0
origem_Vb0=dp19+dp20;dp21 = pVb0-origem; % Diferença%pVc1 = [real(Vc1_C) imag(Vc1_C)]; % Vetor tensão Vc1
dp22 = pVc1-origem; % DiferençapVc2 = [real(Vc2_C) imag(Vc2_C)]; % Vetor tensão Vc2
dp23 = pVc2-origem; % DiferençapVc0 = [real(Vc0_C) imag(Vc0_C)]; % Vetor tensão Vc0
origem_Vc0=dp22+dp23;dp24 = pVc0-origem; % Diferença%figure(2)hold ontitle('Fasores de tensão de fase e suas sequências')grid ongrid minorquiver(origem(1),origem(2),dp13(1),dp13(2),0) %VA
quiver(origem(1),origem(2),dp14(1),dp14(2),0) %VB
quiver(origem(1),origem(2),dp15(1),dp15(2),0) %VC
quiver(origem(1),origem(2),dp16(1),dp16(2),0) %Va1
quiver(dp16(1),dp16(2),dp17(1),dp17(2),0) %Va2
quiver(origem_Va0(1),origem_Va0(2),dp18(1),dp18(2),0) %Va0
quiver(origem(1),origem(2),dp19(1),dp19(2),0) %Vb1
quiver(dp19(1),dp19(2),dp20(1),dp20(2),0) %Vb2
quiver(origem_Vb0(1),origem_Vb0(2),dp21(1),dp21(2),0) %Vb0
quiver(origem(1),origem(2),dp22(1),dp22(2),0) %Vc1
quiver(dp22(1),dp22(2),dp23(1),dp23(2),0) %Vc2
quiver(origem_Vc0(1),origem_Vc0(2),dp24(1),dp24(2),0) %Vc0
hold offlegend('VA','VB','VC','Va1','Va2','Va0','Vb1','Vb2','Vb0','Vc1','Vc2','Vc0')legend show
Best Answer