Matlab Kodlarını VBA kodlarına çevirme

Katılım
19 Eylül 2023
Mesajlar
19
Excel Vers. ve Dili
2016-türkçe
Arkadaşlar, aşağıdaki matlab kodlarını VBA kodlarına dönüştürmeye çalışıyorum ama çalıştıramadım. Yardımcı olmanız mümkün müdür?
c = 0.0017;
s = 0.163;
w = 0.0345;
R = 1.55;
N = 2;
Pi = 478000;
Pe = 10500;
rho= 1000;
mu = 0.001135969;
A = 2*3.142*R*c;
p = ones(1,N+1); p(1) = Pi; p(N+1) = Pe;
mdot = sqrt((Pi-Pe)*rho)*0.1*A
error=1;
for i=1:10000
Re = mdot/(3.142*2*R*mu);
gamma =((1-6.5*(c/s))- 8.638*(c/s) *(w/s))*(Re+((1-6.5*(c/s))- 8.638*(c/s) *(w/s))^(-1/(2.454*(c/s)+2.258*(c/s)*(w/s)^1.673)))^(2.454*(c/s)+2.258*(c/s)*(w/s)^1.673);
cd1 =(1.097-0.0029*w/c)*(1+(44.86*w/c)/Re)^(-0.2157)/sqrt(2);
tdc =cd1*0.925*gamma^.861;
p(2) = p(1)-(mdot/A)^2/(2*cd1^2*rho);

for j = 2:N-1
p(j+1) =p(j)-(mdot/A)^2/(2*tdc^2*rho);
end
mdot1 = A* tdc*sqrt(2*(rho*(p(N)-p(N+1))));
error = abs((mdot1-mdot)/mdot);
mdot=(mdot1-mdot)*0.1+mdot;
if(error<0.0001)
break;
end
end
disp('leakage rate in kg/s is : ');
mdot
disp('The pressure distribution is (in Pa) : ');
p

[CODE]Sub Makro1()
' Makro1 Makro
Dim c As Double
Dim s As Double
Dim w As Double
Dim R As Double
Dim N As Double
Dim Pi As Double
Dim Pe As Double
Dim rho As Double
Dim mu As Double
Dim A As Double
Dim tdc As Double
Dim Re As Double
Dim mdot As Double
Dim p() As Double
Dim t As Integer

c = Range("G6").Value
s = Range("H6").Value
w = Range("I6").Value
R = Range("J6").Value
N = 4
Pilk = Range("L6").Value
Pe = Range("M6").Value
rho = Range("N6").Value
mu = Range("O6").Value

A = 2 * 3.142 * R * c
ReDim p(1 To N + 1)
p(1) = Pilk
p(N + 1) = Pe

mdot = 0.1 * A * Sqr((Pilk - Pe) * rho)
Hata = 1
For i = 1 To 10000
Re = mdot / (3.142 * 2 * R * mu)
Gamma = ((1 - 6.5 * (c / s)) - 8.638 * (c / s) * (w / s)) * (Re + ((1 - 6.5 * (c / s)) - 8.638 * (c / s) * (w / s)) ^ (-1 / (2.454 * (c / s) - 2.258 * (c / s) * (w / s) ^ 1.673))) ^ (2.454 * (c / s) * (w / s) ^ 1.673)
cd1 = (1.097 - 0.0029 * w / c) * (1 + (44.86 * w / c) / Re) ^ (-0.2157) / Sqr(2)
tdc = cd1 * 0.925 * (Gamma) ^ 0.861
p(2) = p(1) - (mdot / A) ^ 2 / (2 * ((cd1) ^ 2) * rho)

For j = 2 To N - 1
p(j + 1) = p(j) - (mdot / A) ^ 2 / (2 * (tdc) ^ (2) * rho)
Next j
mdot1 = A * tdc * Sqr(2 * (rho * p(N) - p(N + 1)))
Hata = Abs((mdot1 - mdot) / mdot)
mdot = (mdot1 - mdot) * 0.1 + mdot
If (Hata < 0.0001) Then
Exit For
End If
Next i

MsgBox "Leakage rate in kg/s is " & CStr(mdot) & vbCrLf & "The pressure distribution in Pa is " & CStr(p), vbOKOnly, "Results"


End Sub
[/CODE]
 
Üst