WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Unterfunktionen Fehlermeldung

 

Vido
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 04.07.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 04.07.2021, 23:46     Titel: Unterfunktionen Fehlermeldung
  Antworten mit Zitat      
Hallo, ich schreibe ein Programm, welches den Prozess des Verbrennungsmotors simulieren soll. Zuerst rechnet man mit "technischer" Thermodynamik und dann soll man das Ganze mit "chemischer" Thermodynamik machen. Dabei muss man nur eine Variable umändern und eine neue hinzufügen. Allerdings verwendet man mehrere Unterfunktionen, d.h. ich berechne mir die Größe in einer Unterfunktion, gebe diese an das Hauptprogramm zurück und rufe sie in der nächsten Unterfunktion wieder auf. Er schreit aber jedes mal, das er die Variable, welche ich zwischen den Unterfunktionen schieben möchte, nicht erkennt.

Das ist der Aufruf der Unterfunktion Combustion (dwi möchte ich weitergeben):
function [w, m, dwi] = ...
combustion(qSum, dPhiCD, mVIBE, phi, phiSOC, dphi, ...
mMix, LHV, m, w, dwf, nspec)

Das ist der Aufruf der Unterfunktion Energy:
function [dq, dwth, du, dT] = ...
energy(dqWall, p, dV, mMix, cvMix, u, dwi)

Und das ist der Aufruf der Unterfunktion Fluid:
function [hMix, uMix, cpMix, cvMix, kappaMix, sMix, RMix, u] = fluid( T, nspec, R, w, NASA, M, p, pRef)

Ich muss in Energy berechnen: dT = (du - dot(u,dwi))/cvMix;

Bild1.JPG
 Beschreibung:

Download
 Dateiname:  Bild1.JPG
 Dateigröße:  16.27 KB
 Heruntergeladen:  186 mal
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 05.07.2021, 12:59     Titel:
  Antworten mit Zitat      
Hallo,

bei Problemen aller Art is es immer hilfreich, wenn das Beispiel reproduzierbar ist.
Hier fehlen mir zumindest die Aufrufe der Funktionen. Damit du dwi für den Aufruf von energy verwenden kannst, muss es ja zuvor (im selben Workspace) erzeugt worden sein, z.B. durch einen Aufruf von combustion. Ist dieser Aufruf von combustion da, und wie sieht er aus?

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Vido
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 04.07.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.07.2021, 21:40     Titel:
  Antworten mit Zitat      
Hallo Harald,
danke für die Antwort. Hier die Unterfunktionen:

Code:
function [w, m, dqComb, dwi] = ...
          combustion(qSum, dPhiCD, mVIBE, phi, phiSOC, dphi, ...
          mMix, LHV, m, w, dwf, nspec)

dm = zeros(1, nspec);

%   INPUT
dqComb = (qSum/dPhiCD)*(mVIBE+1)*6.908*((phi-phiSOC)/dPhiCD)^mVIBE*exp((-6.908*((phi-phiSOC)/dPhiCD)^(mVIBE+1)))*dphi;   %Burn rate acc. to Wiebe    
dm(nspec) = -(mMix/LHV)*dqComb;                                             %Fuel conversion

for i=1:6
    dm(i) = dm(nspec)*dwf(i);
end
for i = 1:nspec
    dwi(i) = dm(i)/mMix;
end
m = m +dm;
end

 



Code:
function [dq, dwth, du, dT] = ...
          energy(dqComb, dqWall, p, dV, mMix, cvMix, dwi, uChem)
     
dq = dqComb+dqWall;                                                                %Instantaneous heat release increase

%   INPUT

dwth = -(p*dV/mMix);                                                                 %Instantaneous work increase
du = dq+dwth;                                                                   %Instantaneous internal energy increase
dHu = dot(dwi,uChem);  ----> hier passiert die Fehlermeldung!!!!
dT = (du-dHu)/cvMix;                                                                 %Instantaneous temperature increase
end
 


(Aus dieser Funktion hole ich mir nur das schon berechnete u, wobei ich es ganz unten nach dem Ende der IF- Schleife zu uChem umbennene):

Code:
function [hMix, uMix, cpMix, cvMix, kappaMix, sMix, RMix, uChem] = fluid( T, nspec, R, w, NASA, M, p, pRef)
%   Caloric properties of the species (Definition of the reference enthalpy acc. to the
%   NASA tables)

h = zeros(1,nspec);
cp = zeros(1,nspec);
s = zeros(1,nspec);
cv = zeros(1,nspec);
u = zeros(1,nspec);


% allgemeine Gaskonstante in J/(mol*K)
Rm = 8.31451;

%molare Masse des Gemisches in g/mol
S = sum(w./M);
Mgem = 1/S;

if T < 1000
    zeile = 0;
elseif T > 1000
    zeile = 1;
end

for i=1:6
   
   
       
        %****spez. Enthalpie der Spezies i in J/kg
        h(i) = (Rm*T*(NASA(2*i-zeile,1) + NASA(2*i-zeile,2)/2*T + ...
                NASA(2*i-zeile,3)/3*T^2 + NASA(2*i-zeile,4)/4*T^3 + ...
                NASA(2*i-zeile,5)/5*T^4 + NASA(2*i-zeile,6)/T))/M(i)*1000;
   
   
        %****spez. Wärmekapazität der Spezies i in J/(kg*K)
        cp(i) = (Rm*(NASA(2*i-zeile,1) + NASA(2*i-zeile,2)*T + ...
                 NASA(2*i-zeile,3)*T^2 + NASA(2*i-zeile,4)*T^3 + ...
                 NASA(2*i-zeile,5)*T^4)/M(i)*1000);    
        %cv(i) = cp(i) - R(i);
   
        %****spez. innere Energie der Spezies i in J/kg
        u(i) = h(i)-R(i)*T;
    if (w(i) > 10^(-5))
        %****spez. Entropie der Spezies i in J/(kg*K)
        s(i) = (Rm*(NASA(2*i-zeile,1)*log(T) + NASA(2*i-zeile,2)*T + ...
                NASA(2*i-zeile,3)/2*T^2 + NASA(2*i-zeile,4)/3*T^3 + ...
                NASA(2*i-zeile,5)/4*T^4 + NASA(2*i-zeile,7)) - ...
                Rm*log(p/pRef) - Rm*log(w(i)*Mgem/M(i)))/M(i)*1000;
    else
            s(i) = 0;  
    end
end

%*************** FUEL ****************************************************
 
        t = T/1000;
   
        %spez. Enthalpie der Spezie Fuel in J/kg
        h(7) = 4184*(NASA(13,1)*t + NASA(13,2)/2*t^2 + ...
               NASA(13,3)/3*t^3 + NASA(13,4)/4*t^4 - NASA(13,5)/t + ...
               NASA(13,6))/M(7)*1000;
       
        %spez. Wärmekapazität der Spezie Fuel in J/(kg*K)
        cp(7) = 4.184*(NASA(13,1) + NASA(13,2)*t + ...
                NASA(13,3)*t^2 + NASA(13,4)*t^3 + NASA(13,5)/t^2)/M(7)*1000;
   
        %cv(7) = cp(7) - R(7);  
   
        %****spez. innere Energie der Spezies Fuel in J/kg
        u(7) = h(7)-R(7)*T;
     if w(7) > 10^(-5)
        %spez. Entropie der Spezie Fuel in J/(kg*K)
        s(7) = (4.184*(NASA(13,1)*log(T) + NASA(13,2)/1000*T + ...
                NASA(13,3)/(2*1000^2)*T^2 + NASA(13,4)/(3*1000^3)*T^3 - ...
                NASA(13,5)/(2*T^2)*1000^2 + NASA(13,7)) - Rm*log(p/pRef) - ...
                Rm*log(w(7)*Mgem/M(7)))/M(7)*1000;
    else
        s(7) = 0;
       
     end
     
uChem = u;    

%   INPUT
RMix = dot(R,w);
hMix = dot(h,w);                                       %Spec. enthalpy of the mixture in J/kg
uMix = dot(u,w);                               %Spec. internal energy of the mixture in J/kg
cpMix = dot(cp,w);                                                                
cvMix = cpMix - RMix;
kappaMix = cpMix/cvMix;
sMix = dot(s,w);


end


Und hier die Teile im Hauptprogramm, wo die Unterfunktionen aufgerufen werden:

Code:
if (phi >= phiSOC ) && (qComb <= 0.999*qSum)                            %Def. of end of combustion
       
        [w, m, dqComb, dwi] = ...
          combustion(qSum, dPhiCD, mVIBE, phi, phiSOC, dphi, ...
          mMix, LHV, m, w, dwf, nspec);
       
       
        dphi = dPhiCD / CMultComb;                                          %Time step size for combustion
    else
        dqComb = 0.0;
        dphi = dphiCA * pi / 180;                      %Time step if there is no combustion
    end
   
    dt = dphi / (2*pi*Nf);
    %----------------------------------------------------------------------
   
    V = VC + (VHub/H)*((H/2)*(1-cos(phi)+lPl*(1-sqrt(1-(vSS*sin(phi))^2)))); %Volume in m³
    s = (1+vSS)*lPl - vSS*lPl*(cos(phi)+(1/vSS)*sqrt(1-(vSS)^2*sin(phi)*sin(phi)));
    %s = 4*V/(B^2*pi);
   
    LinePos = LinePos + 1;                %Counter to create arrays for postprocessing
   
    %   INPUT: dV = ?
    dV = (VHub*((sin(phi)/2)+((sin(2*phi)*vSS)/(4*sqrt(1-(vSS*sin(phi))^2)))))*dphi;                                                  %Change of volume
   
    %ds = dV*4/(B^2*pi);               %Position change of the piston (for WOSCHNI)      
    ds = -vSS*lPl*dphi/dt*(sin(phi)+vSS*sin(2*phi)/2);
[hMix, uMix, cpMix, cvMix, kappaMix, sMix, RMix, uChem] = ...        %Fluid properties of the mixture
             fluid(T, nspec, R, w, NASA, M, p, pRef);        
           
        %------------------------------------------------------------------
        %   WOSCHNI-Approach for the Wall Heat Losses
       
         [p0, alphaW, dqWall, AWall] = ...
           woschni(phi, phiSOC, dt, pnRef1, VnRef1, V, nPoly, VHub, TInit, ...
                   pInit, VInit, p, T, TWall, CWall, AHeadMult, pi, ...
                   cu, cm, B, s, mMix);
        %------------------------------------------------------------------
       
        %-  Energy                                  
       
        [dq, dwth, du, dT] = ...
         energy(dqComb, dqWall, p, dV, mMix, cvMix, dwi, uChem);
       


Ich habe allerdings das Problem, dass mir folgendes passiert: dwi und uChem sind 1x7 Vektoren. Die Unterfunktionen kann ich schön übergeben, da habe ich mittlerweile keine Probleme mehr. Allerdings erscheint mit eine Fehlermeldung, wenn ich in der Unterfunktion energy den Befehl "dot(dwi, uChem)" tippe (bei der Berechnung von dHu- siehe oben bei Unterfunktion energy), da macht er mir aus dem dwi einen 1x1 Vektor mit Eintrag null und sagt:

Error using dot (line 32) --> das ist die Zeile in der von Matlab geöffneten Funktion dot.m- in dieser steht: error(message('MATLAB:dot:InputSizeMismatch'));

A and B must be same size.

Error in energy (line 10)
dHu = dot(dwi,uChem);

Error in ENGINE_CYCLE (line 244)
energy(dqComb, dqWall, p, dV, mMix, cvMix, dwi, uChem);

Zusätzlich macht er mir im Editor die Funktion dot.m auf.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 05.07.2021, 22:29     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
da macht er mir aus dem dwi einen 1x1 Vektor mit Eintrag null

MATLAB verändert nicht einfach so Variablen.

dwi entsteht aus einem Aufruf von combustion (sofern denn combustion in der if-Anweisung überhaupt aufgerufen wird) und wird dann vermutlich schon dort 0 sein. Warum das so ist, kann ich ohne den ersten Teil des Hauptprogramms, in dem die Variablen gesetzt werden, nicht nachvollziehen.

Grüße.
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Vido
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 04.07.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.07.2021, 22:54     Titel:
  Antworten mit Zitat      
Hallo Harald,

das dwi wird schon aus der Unterfunktion combustion aufgerufen und in dieser ist auch eine IF- Abfrage. Aber trotzdem sollte dwi die Form des Vektors 1x7 beibehalten, egal ob dqComb null ist oder nicht. Wenn dqComb null wird, dann wird auch dwi null sein, aber dwi ist eben dann immer noch ein 1x7 Vektor (in dem Fall ein 1x7 Nullvektor).

Hier mein Hauptprogramm (elevant wird es eigentlich ab "Program Body"):

Code:
clear;

%Basic Engine Data
NN = 3000;                                                                  %Speed [1/min]
Nf = NN/60;
B_mm = 86;                                                                  %Bore [mm]
B = B_mm/1000;
H_mm = 86;                                                                  %Stroke [mm]
H = H_mm/1000;
cm = 2* H * Nf;                                                             %Mean Piston Speed (m/s)
cu = 0.;                                                                    %Swirl Flow
eps = 10;                                                                   %Compression ratio
VHub = pi/4*B^2*H;                                                          %Displacement
VC = VHub/(eps-1);                                                          %Compression volume
vSS = 0.25;                                                                 %Conrod ratio
lPl = H/(2*vSS);                                                            %Connecting Rod length [m]
Lambda = 1.;                                                                %Relative air/fuel ratio
wRG = 0.;                                                                 %Residual Gas Mass Frac.

%WOSCHNI-Approach
TWall = 520.;                                                               %Wall Temperature [K]
AHeadMult = 1.2;                                                            %Surface multiplier cylinder head
CWall = 1.;                                                                %Multiplier WOSCHNI heat release

%Initialisation
pInit_bar = 0.8;                                                           %bar
pInit = pInit_bar*1e5;
TInit = 360;                                                                %K
phiInit = -pi;                                                              %Crank angle t=0 @ BDC
phiEnd = pi;                                                                %Crank ange @ end of cycle

%Numerical Setup
dphiCA = 0.1;                                                               %Discretization
CMultComb = 1000;
LinePos = 0;                                                                %Counter

%**************************************************************************
%   FLUID PROPERTIES
%**************************************************************************

%General Constants
Rm = 8.31451;                                                               %Universal gas constant in J/(molK)

%--------------------------------------------------------------------------
%   Fluid classification:
%
% 1 : N2
% 2 : O2
% 3 : CO2
% 4 : H2O
% 5 : CO
% 6 : H2
% 7 : Fuel

nspec = 7;
R = zeros(1,nspec);
M = zeros(1,nspec);

%--------------------------------------------------------------------------
%   Air                                            
M(1) = 28;                                                                  %Mole mass N2 in g/mol
M(2) = 32;                                                                  %Mole mass O2 in g/mol
for ii = 1:2
    R(ii) = Rm / M(ii) * 1000;                                              %Specific gas constants in J/kgK
end
xLN2 = 0.781;                                                               %Volume fraction nitrogen
xLO2 = 1 - xLN2;                                                            %Volume fraction oxygen
RAir = 1 / (xLN2/R(1) + xLO2/R(2));                                         %Specific gas constant air in J/(kgK)
MAir = xLN2 * M(1) + xLO2 * M(2);                                           %Mole mass air in g/mol
wLN2 = xLN2 * M(1)/MAir;                                                    %Mass fraction nitrogen
wLO2 = xLO2 * M(2)/MAir;                                                    %Mass fraction oxygen

%--------------------------------------------------------------------------
%   Exhaust Gas, Combustion Products, Intermediates
M(3) = 44;                                                                  %Mole mass CO2 in g/mol
M(4) = 18;                                                                  %Mole mass H2O in g/mol
M(5) = 28;                                                                  %Mole mass CO in g/mol
M(6) = 2;                                                                   %Mole mass H2 in g/mol
for ii = 3:6
    R(ii) = Rm / M(ii) * 1000;                                              %Specific gas constants in J/kgK
end
Kp = 3.6;                                                                   %Constant for water gas reaction (equiv. ratio > 1)

%--------------------------------------------------------------------------
%   Fuel
LHVf = 42.5e6;                                                              %Lower heating value gasoline in J/kg
LHVCO = 10.103e6;                                                           %Lower heating value CO in J/kg
LHVH2 = 119.9e6;                                                            %Lower heating value H2 in J/kg

nC = xlsread('XLSX-Data.xlsx', 'Fluid', 'M16');                             %# of C-atoms per molecule, Heywood, p. 133
nH = xlsread('XLSX-Data.xlsx', 'Fluid', 'N16');                             %# of H-atoms per molecule, Heywood, p. 133
MC = 12;                                                                    %Mole mass carbon in g/mol
MH = 1;                                                                     %Mole mass hydrogen in g/mol
M(7) = nC * MC + nH * MH;                                                   %Mole mass fuel in g/mol
R(7) = Rm / M(7) * 1000;                                                    %Specific gas constant fuel in J/(kgK)
hf = nH * MH / M(7);                                                        %Mass fraction H
cf = nC * MC / M(7);                                                        %Mass fraction C
nAir = 1/xLO2 * (0.5*hf/2 + cf/12);                                         %Amount of air for stoichiometric combustion mol air / kg fuel
LSt = nAir * MAir;                                                          %Stoichiometric air/fuel ratio kg air / kg fuel

%--------------------------------------------------------------------------
%   Caloric data

NASA = xlsread('XLSX-Data.xlsx', 'Fluid', 'C4:I17');
pRef_bar = 1.013;
pRef = pRef_bar*1e5;

%--------------------------------------------------------------------------
%   Combustion Setup (WIEBE burn rate)

phiSOCCA = -25.;                                                            %Start of combustion in degree
phiSOC = phiSOCCA/180*pi;                                                   %Start of combustion in rad
dPhiCDCA = 102;                                                             %Combustion duration in degree
dPhiCD = dPhiCDCA / 180 * pi;                                               %Combustion duration in rad
mVIBE = 1.27;                                                               %VIBE exponent


%**************************************************************************
%   PROGRAM BODY
%**************************************************************************

%--------------------------------------------------------------------------
%   Cylinder Charge Composition after inlet valve closing
%   Peparation of the composition and caloric properties

[wInit, dwf, LHV] = ...                                            
          mixture(Lambda, LSt, wRG, wLO2, wLN2, M, ...
          nC, nH, LHVf, LHVCO, LHVH2, Kp, nspec);                           %Initial mixture composition
 
[hInit, uInit, cpInit, cvInit, kappaInit, sMixInit, RMix] = ...                      
    fluid(TInit, nspec, R, wInit, NASA, M, pInit, pRef);                   %Initial fluid properties

VInit = VC + (VHub/H)*((H/2)*(1-cos(phiInit)+lPl*(1-sqrt(1-(vSS*sin(phiInit)^2)))));                                                               %Cylinder Volume (t=0)
sInit = (1+vSS)*lPl - vSS*lPl*(cos(phiInit)+(1/vSS)*sqrt(1-(vSS^2)*sin(phiInit)*sin(phiInit)));                                                               %Liner height (t=0, for WOSCHNI-model)
%sInit = 4*VInit/(B^2*pi);

%   INPUT: Charge and species' mass, overall fuel energy
mMix = pInit*VInit/(RMix*TInit);                                             %Overall cylinder charge in kg
mInit = mMix*wInit;
qSum = LHV*mInit(7)/mMix;                                                    %Overall fuel energy

%**************************************************************************
%   Calculation of the High Pressure Process
%**************************************************************************

%   Simulation Start; Assignment of the Variables (t=0)

phi = phiInit;                                                              %Crank angle in rad

V = VInit;                                                                  %Volume in m³
s = sInit;                                                                  %Piston position in m

p = pInit;                                                                  %Pressure in Pa
%p0 = pInit;                                                                 %Motored pressure in Pa (for WOSCHNI-model)
%pnRef2 = pInit;                                                             %1st calc. polytrop. coeff. (for WOSCHNI-model)
pnRef1 = pInit;                                                             %2nd calc. polytrop. coeff. (for WOSCHNI-model)
VnRef1 = VInit;                                                             %1st calc. polytrop. coeff. (for WOSCHNI-model)
nPoly = 1.37;                                                               %Calc. polytrop. coeff. (for WOSCHNI-model)

m = mInit;
w = wInit;

%-  Energy
T = TInit;                                                                  %Temperature in K
u = uInit;
cvMix = cvInit;
dT = 0.0;
wth = 0.0;                                                                  %Specific work in J/kg
qComb = 0.0;                                                                %Specific heat release in J/kg
qWall = 0.0;                                                                %Specific wall heat losses in J/kg
dqWall = 0.0;
q = 0.0;                                                                    %Overall specific heat release
dWWall = 0;
sMix = sMixInit;
dwi = 0;

dbstop if error
%--------------------------------------------------------------------------

%--------------------------------------------------------------------------
%   Calculation of the fluid properties over crank angle
%--------------------------------------------------------------------------
while phi <= phiEnd
   
    %----------------------------------------------------------------------
    %-  Heat release and combustion, Mixture Composition during combustion
    %----------------------------------------------------------------------
   
    %   INPUT: Conditions to call "combustion"
    if (phi >= phiSOC ) && (qComb <= 0.999*qSum)                            %Def. of end of combustion
       
        [w, m, dqComb, dwi] = ...
          combustion(qSum, dPhiCD, mVIBE, phi, phiSOC, dphi, ...
          mMix, LHV, m, w, dwf, nspec);
       
       
        dphi = dPhiCD / CMultComb;                                          %Time step size for combustion
    else
        dqComb = 0.0;
        dphi = dphiCA * pi / 180;                                           %Time step if there is no combustion
    end
   
    dt = dphi / (2*pi*Nf);
    %----------------------------------------------------------------------
   
    V = VC + (VHub/H)*((H/2)*(1-cos(phi)+lPl*(1-sqrt(1-(vSS*sin(phi))^2)))); %Volume in m³
    s = (1+vSS)*lPl - vSS*lPl*(cos(phi)+(1/vSS)*sqrt(1-(vSS)^2*sin(phi)*sin(phi)));
    %s = 4*V/(B^2*pi);
   
    LinePos = LinePos + 1;                                                  %Counter to create arrays for postprocessing
   
    %   INPUT: dV = ?
    dV = (VHub*((sin(phi)/2)+((sin(2*phi)*vSS)/(4*sqrt(1-(vSS*sin(phi))^2)))))*dphi;                                                               %Change of volume
   
    %ds = dV*4/(B^2*pi);                                                    %Position change of the piston (for WOSCHNI)      
    ds = -vSS*lPl*dphi/dt*(sin(phi)+vSS*sin(2*phi)/2);
   
     [hMix, uMix, cpMix, cvMix, kappaMix, sMix, RMix, uChem] = ...                  %Fluid properties of the mixture
             fluid(T, nspec, R, w, NASA, M, p, pRef);        
           
        %------------------------------------------------------------------
        %   WOSCHNI-Approach for the Wall Heat Losses
       
         [p0, alphaW, dqWall, AWall] = ...
           woschni(phi, phiSOC, dt, pnRef1, VnRef1, V, nPoly, VHub, TInit, ...
                   pInit, VInit, p, T, TWall, CWall, AHeadMult, pi, ...
                   cu, cm, B, s, mMix);
        %------------------------------------------------------------------
       
        %-  Energy                                  
       
        [dq, dwth, du, dT] = ...
         energy(dqComb, dqWall, p, dV, mMix, cvMix, dwi, uChem);
       
     
        % INPUT: New properties (x = x + dx)
        % ...
       
        T = T +dT;
        V = V + dV;
        p = mMix*RMix*T/V;
        q = q + dq;
        s = s + ds;
        wth = wth + dwth;
        w = m/mMix;
        u = u + du;
        qComb = qComb + dqComb;
        qWall = qWall + dqWall;
    %----------------------------------------------------------------------
    %   INPUT: Calculation Polytropic Coefficient, Motored Engine for WOSCHNI
    phin1CA = -125;                                                         %1st pos. for polytropic fitting
    phin2CA = -90;                                                          %2nd pos. for polytropic fitting
    phin1 = phin1CA / 180 * pi;
    phin2 = phin2CA / 180 * pi;
    Vphin1 = VC + (VHub/H)*((H/2)*(1-cos(phin1)+lPl*(1-sqrt(1-(vSS*sin(phin1)^2)))));
    Vphin2 = VC + (VHub/H)*((H/2)*(1-cos(phin2)+lPl*(1-sqrt(1-(vSS*sin(phin2)^2)))));
    %...
    nPoly =log10(2.1659/1.3094)/log10(Vphin1/Vphin2);
    %----------------------------------------------------------------------
   
    phi = phi + dphi;                                                       %New crank angle

    %----------------------------------------------------------------------
    %-  INPUT: Postprocessing (Arrays for diagrams)
    %
    Results(LinePos,1) = phi / pi * 180;
    Results(LinePos,2) = p/1e5;
    Results(LinePos,3) = p0/1e5;
    Results(LinePos,4) = V/mMix;
    Results(LinePos,5) = V/VInit;
    Results(LinePos,6) = sMix;
    Results(LinePos,7) = T;
    Results(LinePos,8) = -dqWall/AWall*mMix/dt/10^4;
    Results(LinePos,9) = cpMix;
    Results(LinePos,10) = kappaMix;
    Results(LinePos,11) = w(1);
    Results(LinePos,12) = w(2);
    Results(LinePos,13) = w(3);
    Results(LinePos,14) = w(4);
    Results(LinePos,15) = w(5);
    Results(LinePos,16) = w(6);
    Results(LinePos,17) = w(7);
    Results(LinePos,18) = T;
    Results(LinePos,19) = s;
   
end


LG
Private Nachricht senden Benutzer-Profile anzeigen
 
Vido
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 04.07.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.07.2021, 23:11     Titel:
  Antworten mit Zitat      
Habs schon.

Vielen Dank!

LG Vido
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 06.07.2021, 07:51     Titel:
  Antworten mit Zitat      
Hallo,

nochmal zur Erklärung: du schreibst
Code:

0 ist 0, kein Vektor. Wenn du einen Vektor haben willst, dann z.B.
Code:
dwi = zeros(1, nspec);


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Vido
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 04.07.21
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.07.2021, 09:44     Titel:
  Antworten mit Zitat      
Hallo Harald,

ja genau, das habe ich zum Schluss dann auch geändert.

Danke und LG,
Vido
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.