/Temperature.m
http://freesteamplus.googlecode.com/ · MATLAB · 741 lines · 694 code · 0 blank · 47 comment · 164 complexity · 5389ddc406b565e8794abe10408ccd48 MD5 · raw file
- function output = Temperature(material,prop1,units1,value1,varargin)%,prop2,units2,value2)
- value1 = CheckUnits(prop1,units1,value1);
- switch lower(material)
- case {'water','steam'}
- %% Water
- error(nargchk(7, 7, nargin, 'struct'))
- prop2 = varargin{1};
- units2 = varargin{2};
- value2 = varargin{3};
- value2 = CheckUnits(prop2,units2,value2);
- if strcmpi(prop1,'t')
- output = value1;
- return;
- elseif strcmpi(prop2,'t')
- output = value2;
- return;
- end
- switch lower(prop1)
- case 'p'
- pressure = value1;
- switch lower(prop2)
- case 'v'
- volume = value2;
- temperature = fzero(@(temperature) Corr_Water_Volume(pressure,temperature)-volume,...
- [4.219990731E-1 1.657886606].*647.3);
- case 's'
- entropy = value2;
- temperature = fzero(@(temperature) Corr_Water_Entropy(pressure,temperature)-entropy,...
- [4.219990731E-1 1.657886606].*647.3);
- case 'h'
- enthalpy = value2;
- temperature = fzero(@(temperature) Corr_Water_Enthalpy(pressure,temperature)-enthalpy,...
- [4.219990731E-1 1.657886606].*647.3);
- otherwise
- error('Therm:corr','No correlation found for given properties')
- end
- case 'v'
- volume = value1;
- switch lower(prop2)
- case 'p'
- pressure = value2;
- temperature = fzero(@(temperature) Corr_Water_Volume(pressure,temperature)-volume,...
- [4.219990731E-1 1.657886606].*647.3);
- case 's'
- entropy = value2;
- x = fsolve(@(x) [Corr_Water_Volume(x(1),x(2))-volume;...
- Corr_Water_Entropy(x(1),x(2))]-entropy,...
- [[0 4.520795660].*611.2;[4.219990731E-1 1.657886606].*647.3]);
- temperature = x(2);
- case 'h'
- enthalpy = value2;
- x = fsolve(@(x) [Corr_Water_Volume(x(1),x(2))-volume;...
- Corr_Water_Enthalpy(x(1),x(2))-enthalpy],...
- [[0 4.520795660].*611.2;[4.219990731E-1 1.657886606].*647.3]);
- temperature = x(2);
- otherwise
- error('Therm:corr','No correlation found for given properties')
- end
- case 's'
- entropy = value1;
- switch lower(prop2)
- case 'p'
- pressure = value2;
- temperature = fzero(@(temperature) Corr_Water_Entropy(pressure,temperature)-entropy,...
- [4.219990731E-1 1.657886606].*647.3);
- case 'v'
- volume = value2;
- x = fsolve(@(x) [Corr_Water_Entropy(x(1),x(2))-entropy;...
- Corr_Water_Volume(x(1),x(2))-volume],...
- [[0 4.520795660].*611.2;[4.219990731E-1 1.657886606].*647.3]);
- temperature = x(2);
- case 'h'
- enthalpy = value2;
- x = fsolve(@(x) [Corr_Water_Entropy(x(1),x(2))-entropy;...
- Corr_Water_Enthalpy(x(1),x(2))-enthalpy],...
- [[0 4.520795660].*611.2;[4.219990731E-1 1.657886606].*647.3]);
- temperature = x(2);
- otherwise
- error('Therm:corr','No correlation found for given properties')
- end
- case 'h'
- enthalpy = value1;
- switch lower(prop2)
- case 'p'
- pressure = value2;
- temperature = fzero(@(temperature) Corr_Water_Enthalpy(pressure,temperature)-enthalpy,...
- [4.219990731E-1 1.657886606].*647.3);
- case 'v'
- volume = value2;
- x = fsolve(@(x) [Corr_Water_Enthalpy(x(1),x(2))-enthalpy;...
- Corr_Water_Volume(x(1),x(2))-volume],...
- [[0 4.520795660].*611.2;[4.219990731E-1 1.657886606].*647.3]);
- temperature = x(2);
- case 's'
- entropy = value2;
- x = fsolve(@(x) [Corr_Water_Enthalpy(x(1),x(2))-enthalpy;...
- Corr_Water_Entropy(x(1),x(2))-entropy],...
- [[0 4.520795660].*611.2;[4.219990731E-1 1.657886606].*647.3]);
- temperature = x(2);
- otherwise
- error('Therm:corr','No correlation found for given properties')
- end
- otherwise
- error('Therm:corr','No correlation found for given properties')
- end
- output = temperature;
- case {'saturated water','saturatedwater','saturated steam','saturatedsteam'}
- %% Saturated Water
- error(nargchk(4, 4, nargin, 'struct'))
- switch lower(prop1)
- case 't'
- temperature = value1;
- case 'p'
- pressure = value1;
- temperature = Corr_SaturatedWater_Temperature(pressure);
- otherwise
- error('Therm:corr','No correlation found for given properties')
- end
- output = temperature;
- case {'refrigerant','r-134a','r134a','hfc-134a','hfc134a',...
- '1,1,1,2-tetrafluoroethane','tetrafluoroethane'}
- %% Refrigerant
- error(nargchk(7, 7, nargin, 'struct'))
- prop2 = varargin{1};
- units2 = varargin{2};
- value2 = varargin{3};
- value2 = CheckUnits(prop2,units2,value2);
- if strcmpi(prop1,'t')
- output = value1;
- return;
- elseif strcmpi(prop2,'t')
- output = value2;
- return;
- end
- switch lower(prop1)
- case 'v'
- volume = value1;
- switch lower(prop2)
- case 'p'
- pressure = value2;
- temperature = fzero(@(temperature) Corr_Refrigerant_Pressure(temperature,volume)-pressure,[170,455]);
- case 's'
- entropy = value2;
- temperature = fzero(@(temperature) Corr_Refrigerant_Entropy(temperature,volume)-entropy,[170,455]);
- case 'h'
- enthalpy = value2;
- temperature = fzero(@(temperature) Corr_Refrigerant_Enthalpy(temperature,volume)-enthalpy,[170,455]);
- otherwise
- error('Therm:corr','No correlation found for given properties')
- end
- case 'p'
- pressure = value1;
- switch lower(prop2)
- case 'v'
- volume = value2;
- temperature = fzero(@(temperature) Corr_Refrigerant_Pressure(temperature,volume)-pressure,[170,455]);
- % case 's'
- % entropy = value2;
- % x = fsolve(@(x) [Corr_Refrigerant_Pressure(x(1),x(2))-pressure;...
- % Corr_Refrigerant_Entropy_pt(x(1),x(2))-entropy],...
- % [[0 4.520795660].*611.2;[170,455]]);
- % temperature = x(1);
- % case 'h'
- % enthalpy = value2;
- % x = fsolve(@(x) [Corr_Refrigerant_Volume_pt(x(1),x(2))-volume;...
- % Corr_Refrigerant_Enthalpy_pt(x(1),x(2))-enthalpy],...
- % [[0 4.520795660].*611.2;[170,455]]);
- % temperature = x(2);
- otherwise
- error('Therm:corr','No correlation found for given properties')
- end
- case 's'
- entropy = value1;
- switch lower(prop2)
- case 'v'
- volume = value2;
- temperature = fzero(@(temperature) Corr_Refrigerant_Entropy(temperature,volume)-entropy,[170,455]);
- % case 'p'
- % volume = value2;
- % x = fsolve(@(x) [Corr_Refrigerant_Entropy_pt(x(1),x(2))-entropy;...
- % Corr_Refrigerant_Volume_pt(x(1),x(2))-volume],...
- % [[0 4.520795660].*611.2;[170,455]]);
- % temperature = x(2);
- % case 'h'
- % enthalpy = value2;
- % x = fsolve(@(x) [Corr_Refrigerant_Entropy_pt(x(1),x(2))-entropy;...
- % Corr_Refrigerant_Enthalpy_pt(x(1),x(2))-enthalpy],...
- % [[0 4.520795660].*611.2;[170,455]]);
- % temperature = x(2);
- otherwise
- error('Therm:corr','No correlation found for given properties')
- end
- case 'h'
- enthalpy = value1;
- switch lower(prop2)
- case 'v'
- volume = value2;
- temperature = fzero(@(temperature) Corr_Refrigerant_Enthalpy(temperature,volume)-enthalpy,[170,455]);
- % case 'p'
- % volume = value2;
- % x = fsolve(@(x) [Corr_Refrigerant_Enthalpy_pt(x(1),x(2))-enthalpy;...
- % Corr_Refrigerant_Volume_pt(x(1),x(2))-volume],...
- % [[0 4.520795660].*611.2;[170,455]]);
- % temperature = x(2);
- % case 's'
- % entropy = value2;
- % x = fsolve(@(x) [Corr_Refrigerant_Enthalpy_pt(x(1),x(2))-enthalpy;...
- % Corr_Refrigerant_Entropy_pt(x(1),x(2))-entropy],...
- % [[0 4.520795660].*611.2;[170,455]]);
- % temperature = x(2);
- otherwise
- error('Therm:corr','No correlation found for given properties')
- end
- otherwise
- error('Therm:corr','No correlation found for given properties')
- end
- output = temperature;
- case {'saturated refrigerant','saturated r-134a','saturated r134a','saturated hfc-134a',...
- 'saturated hfc134a','saturated 1,1,1,2-tetrafluoroethane','saturated tetrafluoroethane',...
- 'saturatedrefrigerant','saturatedr-134a','saturatedr134a','saturatedhfc-134a',...
- 'saturatedhfc134a','saturated1,1,1,2-tetrafluoroethane','saturatedtetrafluoroethane'}
- %% Saturated Refrigerant
- error(nargchk(4, 4, nargin, 'struct'))
- switch lower(prop1)
- case 't'
- temperature = value1;
- case 'p'
- pressure = value1;
- temperature = fzero(@(temperature) Corr_Refrigerant_SatPressure(temperature)-pressure, [170,455]);
- otherwise
- error('Therm:corr','No correlation found for given properties')
- end
- output = temperature;
- case 'air'
- %% Air
- error(nargchk(4, 7, nargin, 'struct'))
- if ((nargin > 4) && (nargin < 7))
- error('Therm:nargchk:improperNumberOfInputs','Improper number of input arguments.')
- end
- if strcmpi(prop1,'t')
- output = value1;
- return;
- end
- if nargin == 7
- prop2 = varargin{1};
- units2 = varargin{2};
- value2 = varargin{3};
- value2 = CheckUnits(prop2,units2,value2);
- if strcmpi(prop2,'t')
- output = value2;
- return;
- end
- end
- switch lower(prop1)
- case 'p'
- error(nargchk(7, 7, nargin, 'struct'))
- pressure = value1;
- switch lower(prop2)
- case 'v'
- volume = value2;
- temperature = Corr_Air_Temperature(pressure,volume);
- case 'cp'
- specificHeat = value2;
- temperature = fzero(@(temperature) Corr_Air_SpecificHeatP(temperature)-specificHeat,[250,2000]);
- case 'h'
- enthalpy = value2;
- temperature = fzero(@(temperature) Corr_Air_Enthalpy(temperature)-enthalpy,[250,2000]);
- case 's'
- entropy = value2;
- temperature = fzero(@(temperature) Corr_Air_Entropy(temperature)-entropy,[250,2000]);
- otherwise
- error('Therm:corr','No correlation found for given properties')
- end
- case 'v'
- error(nargchk(7, 7, nargin, 'struct'))
- volume = value1;
- switch lower(prop2)
- case 'p'
- pressure = value2;
- temperature = Corr_Air_Temperature(pressure,volume);
- case 'cp'
- specificHeat = value2;
- temperature = fzero(@(temperature) Corr_Air_SpecificHeatP(temperature)-specificHeat,[250,2000]);
- case 'h'
- enthalpy = value2;
- temperature = fzero(@(temperature) Corr_Air_Enthalpy(temperature)-enthalpy,[250,2000]);
- case 's'
- entropy = value2;
- temperature = fzero(@(temperature) Corr_Air_Entropy(temperature)-entropy,[250,2000]);
- otherwise
- error('Therm:corr','No correlation found for given properties')
- end
- case 'cp'
- specificHeat = value1;
- temperature = fzero(@(temperature) Corr_Air_SpecificHeatP(temperature)-specificHeat,[250,2000]);
- case 'h'
- enthalpy = value1;
- temperature = fzero(@(temperature) Corr_Air_Enthalpy(temperature)-enthalpy,[250,2000]);
- case 's'
- entropy = value1;
- temperature = fzero(@(temperature) Corr_Air_Entropy(temperature)-entropy,[250,2000]);
- otherwise
- error('Therm:corr','No correlation found for given properties')
- end
- output = temperature;
- case {'carbon dioxide','co2'}
- %% Carbon Dioxide
- error(nargchk(4, 7, nargin, 'struct'))
- if ((nargin > 4) && (nargin < 7))
- error('Therm:nargchk:improperNumberOfInputs','Improper number of input arguments.')
- end
- if strcmpi(prop1,'t')
- output = value1;
- return;
- end
- if nargin == 7
- prop2 = varargin{1};
- units2 = varargin{2};
- value2 = varargin{3};
- value2 = CheckUnits(prop2,units2,value2);
- if strcmpi(prop2,'t')
- output = value2;
- return;
- end
- end
- switch lower(prop1)
- case 'p'
- error(nargchk(7, 7, nargin, 'struct'))
- pressure = value1;
- switch lower(prop2)
- case 'v'
- volume = value2;
- temperature = Corr_CarbonDioxide_Temperature(pressure,volume);
- case 'cp'
- specificHeat = value2;
- temperature = fzero(@(temperature) Corr_CarbonDioxide_SpecificHeatP(temperature)-specificHeat,[200,1000]);
- case 'h'
- enthalpy = value2;
- temperature = fzero(@(temperature) Corr_CarbonDioxide_Enthalpy(temperature)-enthalpy,[200,1000]);
- case 's'
- entropy = value2;
- temperature = fzero(@(temperature) Corr_CarbonDioxide_Entropy(temperature)-entropy,[200,1000]);
- otherwise
- error('Therm:corr','No correlation found for given properties')
- end
- case 'v'
- error(nargchk(7, 7, nargin, 'struct'))
- volume = value1;
- switch lower(prop2)
- case 'p'
- pressure = value2;
- temperature = Corr_CarbonDioxide_Temperature(pressure,volume);
- case 'cp'
- specificHeat = value2;
- temperature = fzero(@(temperature) Corr_CarbonDioxide_SpecificHeatP(temperature)-specificHeat,[200,1000]);
- case 'h'
- enthalpy = value2;
- temperature = fzero(@(temperature) Corr_CarbonDioxide_Enthalpy(temperature)-enthalpy,[200,1000]);
- case 's'
- entropy = value2;
- temperature = fzero(@(temperature) Corr_CarbonDioxide_Entropy(temperature)-entropy,[200,1000]);
- otherwise
- error('Therm:corr','No correlation found for given properties')
- end
- case 'cp'
- specificHeat = value1;
- temperature = fzero(@(temperature) Corr_CarbonDioxide_SpecificHeatP(temperature)-specificHeat,[200,1000]);
- case 'h'
- enthalpy = value1;
- temperature = fzero(@(temperature) Corr_CarbonDioxide_Enthalpy(temperature)-enthalpy,[200,1000]);
- case 's'
- entropy = value1;
- temperature = fzero(@(temperature) Corr_CarbonDioxide_Entropy(temperature)-entropy,[200,1000]);
- otherwise
- error('Therm:corr','No correlation found for given properties')
- end
- output = temperature;
- case {'hydrogen','h2'}
- %% Hydrogen
- error(nargchk(4, 7, nargin, 'struct'))
- if ((nargin > 4) && (nargin < 7))
- error('Therm:nargchk:improperNumberOfInputs','Improper number of input arguments.')
- end
- if strcmpi(prop1,'t')
- output = value1;
- return;
- end
- if nargin == 7
- prop2 = varargin{1};
- units2 = varargin{2};
- value2 = varargin{3};
- value2 = CheckUnits(prop2,units2,value2);
- if strcmpi(prop2,'t')
- output = value2;
- return;
- end
- end
- switch lower(prop1)
- case 'p'
- error(nargchk(7, 7, nargin, 'struct'))
- pressure = value1;
- switch lower(prop2)
- case 'v'
- volume = value2;
- temperature = Corr_Hydrogen_Temperature(pressure,volume);
- case 'cp'
- specificHeat = value2;
- temperature = fzero(@(temperature) Corr_Hydrogen_SpecificHeatP(temperature)-specificHeat,[250,1050]);
- case 'h'
- enthalpy = value2;
- temperature = fzero(@(temperature) Corr_Hydrogen_Enthalpy(temperature)-enthalpy,[250,1050]);
- case 's'
- entropy = value2;
- temperature = fzero(@(temperature) Corr_Hydrogen_Entropy(temperature)-entropy,[250,1050]);
- otherwise
- error('Therm:corr','No correlation found for given properties')
- end
- case 'v'
- error(nargchk(7, 7, nargin, 'struct'))
- volume = value1;
- switch lower(prop2)
- case 'p'
- pressure = value2;
- temperature = Corr_Hydrogen_Temperature(pressure,volume);
- case 'cp'
- specificHeat = value2;
- temperature = fzero(@(temperature) Corr_Hydrogen_SpecificHeatP(temperature)-specificHeat,[250,1050]);
- case 'h'
- enthalpy = value2;
- temperature = fzero(@(temperature) Corr_Hydrogen_Enthalpy(temperature)-enthalpy,[250,1050]);
- case 's'
- entropy = value2;
- temperature = fzero(@(temperature) Corr_Hydrogen_Entropy(temperature)-entropy,[250,1050]);
- otherwise
- error('Therm:corr','No correlation found for given properties')
- end
- case 'cp'
- specificHeat = value1;
- temperature = fzero(@(temperature) Corr_Hydrogen_SpecificHeatP(temperature)-specificHeat,[250,1050]);
- case 'h'
- enthalpy = value1;
- temperature = fzero(@(temperature) Corr_Hydrogen_Enthalpy(temperature)-enthalpy,[250,1050]);
- case 's'
- entropy = value1;
- temperature = fzero(@(temperature) Corr_Hydrogen_Entropy(temperature)-entropy,[250,1050]);
- otherwise
- error('Therm:corr','No correlation found for given properties')
- end
- output = temperature;
- case {'helium','he'}
- %% Helium
- error(nargchk(4, 7, nargin, 'struct'))
- if ((nargin > 4) && (nargin < 7))
- error('Therm:nargchk:improperNumberOfInputs','Improper number of input arguments.')
- end
- if strcmpi(prop1,'t')
- output = value1;
- return;
- end
- if nargin == 7
- prop2 = varargin{1};
- units2 = varargin{2};
- value2 = varargin{3};
- value2 = CheckUnits(prop2,units2,value2);
- if strcmpi(prop2,'t')
- output = value2;
- return;
- end
- end
- switch lower(prop1)
- case 'p'
- error(nargchk(7, 7, nargin, 'struct'))
- pressure = value1;
- switch lower(prop2)
- case 'v'
- volume = value2;
- temperature = Corr_Helium_Temperature(pressure,volume);
- case 'cp'
- specificHeat = value2;
- temperature = fzero(@(temperature) Corr_Helium_SpecificHeatP(temperature)-specificHeat,[250,1050]);
- case 'h'
- enthalpy = value2;
- temperature = fzero(@(temperature) Corr_Helium_Enthalpy(temperature)-enthalpy,[250,1050]);
- case 's'
- entropy = value2;
- temperature = fzero(@(temperature) Corr_Helium_Entropy(temperature)-entropy,[250,1050]);
- otherwise
- error('Therm:corr','No correlation found for given properties')
- end
- case 'v'
- error(nargchk(7, 7, nargin, 'struct'))
- volume = value1;
- switch lower(prop2)
- case 'p'
- pressure = value2;
- temperature = Corr_Helium_Temperature(pressure,volume);
- case 'cp'
- specificHeat = value2;
- temperature = fzero(@(temperature) Corr_Helium_SpecificHeatP(temperature)-specificHeat,[250,1050]);
- case 'h'
- enthalpy = value2;
- temperature = fzero(@(temperature) Corr_Helium_Enthalpy(temperature)-enthalpy,[250,1050]);
- case 's'
- entropy = value2;
- temperature = fzero(@(temperature) Corr_Helium_Entropy(temperature)-entropy,[250,1050]);
- otherwise
- error('Therm:corr','No correlation found for given properties')
- end
- case 'cp'
- specificHeat = value1;
- temperature = fzero(@(temperature) Corr_Helium_SpecificHeatP(temperature)-specificHeat,[250,1050]);
- case 'h'
- enthalpy = value1;
- temperature = fzero(@(temperature) Corr_Helium_Enthalpy(temperature)-enthalpy,[250,1050]);
- case 's'
- entropy = value1;
- temperature = fzero(@(temperature) Corr_Helium_Entropy(temperature)-entropy,[250,1050]);
- otherwise
- error('Therm:corr','No correlation found for given properties')
- end
- output = temperature;
- case {'nitrogen','n2'}
- %% Nitrogen
- error(nargchk(4, 7, nargin, 'struct'))
- if ((nargin > 4) && (nargin < 7))
- error('Therm:nargchk:improperNumberOfInputs','Improper number of input arguments.')
- end
- if strcmpi(prop1,'t')
- output = value1;
- return;
- end
- if nargin == 7
- prop2 = varargin{1};
- units2 = varargin{2};
- value2 = varargin{3};
- value2 = CheckUnits(prop2,units2,value2);
- if strcmpi(prop2,'t')
- output = value2;
- return;
- end
- end
- switch lower(prop1)
- case 'p'
- error(nargchk(7, 7, nargin, 'struct'))
- pressure = value1;
- switch lower(prop2)
- case 'v'
- volume = value2;
- temperature = Corr_Nitrogen_Temperature(pressure,volume);
- case 'cp'
- specificHeat = value2;
- temperature = fzero(@(temperature) Corr_Nitrogen_SpecificHeatP(temperature)-specificHeat,[280,1080]);
- case 'h'
- enthalpy = value2;
- temperature = fzero(@(temperature) Corr_Nitrogen_Enthalpy(temperature)-enthalpy,[280,1080]);
- case 's'
- entropy = value2;
- temperature = fzero(@(temperature) Corr_Nitrogen_Entropy(temperature)-entropy,[280,1080]);
- otherwise
- error('Therm:corr','No correlation found for given properties')
- end
- case 'v'
- error(nargchk(7, 7, nargin, 'struct'))
- volume = value1;
- switch lower(prop2)
- case 'p'
- pressure = value2;
- temperature = Corr_Nitrogen_Temperature(pressure,volume);
- case 'cp'
- specificHeat = value2;
- temperature = fzero(@(temperature) Corr_Nitrogen_SpecificHeatP(temperature)-specificHeat,[280,1080]);
- case 'h'
- enthalpy = value2;
- temperature = fzero(@(temperature) Corr_Nitrogen_Enthalpy(temperature)-enthalpy,[280,1080]);
- case 's'
- entropy = value2;
- temperature = fzero(@(temperature) Corr_Nitrogen_Entropy(temperature)-entropy,[280,1080]);
- otherwise
- error('Therm:corr','No correlation found for given properties')
- end
- case 'cp'
- specificHeat = value1;
- temperature = fzero(@(temperature) Corr_Nitrogen_SpecificHeatP(temperature)-specificHeat,[280,1080]);
- case 'h'
- enthalpy = value1;
- temperature = fzero(@(temperature) Corr_Nitrogen_Enthalpy(temperature)-enthalpy,[280,1080]);
- case 's'
- entropy = value1;
- temperature = fzero(@(temperature) Corr_Nitrogen_Entropy(temperature)-entropy,[280,1080]);
- otherwise
- error('Therm:corr','No correlation found for given properties')
- end
- output = temperature;
- case {'oxygen','o2'}
- %% Oxygen
- error(nargchk(4, 7, nargin, 'struct'))
- if ((nargin > 4) && (nargin < 7))
- error('Therm:nargchk:improperNumberOfInputs','Improper number of input arguments.')
- end
- if strcmpi(prop1,'t')
- output = value1;
- return;
- end
- if nargin == 7
- prop2 = varargin{1};
- units2 = varargin{2};
- value2 = varargin{3};
- value2 = CheckUnits(prop2,units2,value2);
- if strcmpi(prop2,'t')
- output = value2;
- return;
- end
- end
- switch lower(prop1)
- case 'p'
- error(nargchk(7, 7, nargin, 'struct'))
- pressure = value1;
- switch lower(prop2)
- case 'v'
- volume = value2;
- temperature = Corr_Oxygen_Temperature(pressure,volume);
- case 'cp'
- specificHeat = value2;
- temperature = fzero(@(temperature) Corr_Oxygen_SpecificHeatP(temperature)-specificHeat,[250,1050]);
- case 'h'
- enthalpy = value2;
- temperature = fzero(@(temperature) Corr_Oxygen_Enthalpy(temperature)-enthalpy,[250,1050]);
- case 's'
- entropy = value2;
- temperature = fzero(@(temperature) Corr_Oxygen_Entropy(temperature)-entropy,[250,1050]);
- otherwise
- error('Therm:corr','No correlation found for given properties')
- end
- case 'v'
- error(nargchk(7, 7, nargin, 'struct'))
- volume = value1;
- switch lower(prop2)
- case 'p'
- pressure = value2;
- temperature = Corr_Oxygen_Temperature(pressure,volume);
- case 'cp'
- specificHeat = value2;
- temperature = fzero(@(temperature) Corr_Oxygen_SpecificHeatP(temperature)-specificHeat,[250,1050]);
- case 'h'
- enthalpy = value2;
- temperature = fzero(@(temperature) Corr_Oxygen_Enthalpy(temperature)-enthalpy,[250,1050]);
- case 's'
- entropy = value2;
- temperature = fzero(@(temperature) Corr_Oxygen_Entropy(temperature)-entropy,[250,1050]);
- otherwise
- error('Therm:corr','No correlation found for given properties')
- end
- case 'cp'
- specificHeat = value1;
- temperature = fzero(@(temperature) Corr_Oxygen_SpecificHeatP(temperature)-specificHeat,[250,1050]);
- case 'h'
- enthalpy = value1;
- temperature = fzero(@(temperature) Corr_Oxygen_Enthalpy(temperature)-enthalpy,[250,1050]);
- case 's'
- entropy = value1;
- temperature = fzero(@(temperature) Corr_Oxygen_Entropy(temperature)-entropy,[250,1050]);
- otherwise
- error('Therm:corr','No correlation found for given properties')
- end
- output = temperature;
- case {'propane','c3h8'}
- %% Propane
- error(nargchk(4, 7, nargin, 'struct'))
- if ((nargin > 4) && (nargin < 7))
- error('Therm:nargchk:improperNumberOfInputs','Improper number of input arguments.')
- end
- if strcmpi(prop1,'t')
- output = value1;
- return;
- end
- if nargin == 7
- prop2 = varargin{1};
- units2 = varargin{2};
- value2 = varargin{3};
- value2 = CheckUnits(prop2,units2,value2);
- if strcmpi(prop2,'t')
- output = value2;
- return;
- end
- end
- switch lower(prop1)
- case 'p'
- error(nargchk(7, 7, nargin, 'struct'))
- pressure = value1;
- switch lower(prop2)
- case 'v'
- volume = value2;
- temperature = Corr_Propane_Temperature(pressure,volume);
- case 'cp'
- specificHeat = value2;
- temperature = fzero(@(temperature) Corr_Propane_SpecificHeatP(temperature)-specificHeat,[280,1080]);
- case 'h'
- enthalpy = value2;
- temperature = fzero(@(temperature) Corr_Propane_Enthalpy(temperature)-enthalpy,[280,1080]);
- case 's'
- entropy = value2;
- temperature = fzero(@(temperature) Corr_Propane_Entropy(temperature)-entropy,[280,1080]);
- otherwise
- error('Therm:corr','No correlation found for given properties')
- end
- case 'v'
- error(nargchk(7, 7, nargin, 'struct'))
- volume = value1;
- switch lower(prop2)
- case 'p'
- pressure = value2;
- temperature = Corr_Propane_Temperature(pressure,volume);
- case 'cp'
- specificHeat = value2;
- temperature = fzero(@(temperature) Corr_Propane_SpecificHeatP(temperature)-specificHeat,[280,1080]);
- case 'h'
- enthalpy = value2;
- temperature = fzero(@(temperature) Corr_Propane_Enthalpy(temperature)-enthalpy,[280,1080]);
- case 's'
- entropy = value2;
- temperature = fzero(@(temperature) Corr_Propane_Entropy(temperature)-entropy,[280,1080]);
- otherwise
- error('Therm:corr','No correlation found for given properties')
- end
- case 'cp'
- specificHeat = value1;
- temperature = fzero(@(temperature) Corr_Propane_SpecificHeatP(temperature)-specificHeat,[280,1080]);
- case 'h'
- enthalpy = value1;
- temperature = fzero(@(temperature) Corr_Propane_Enthalpy(temperature)-enthalpy,[280,1080]);
- case 's'
- entropy = value1;
- temperature = fzero(@(temperature) Corr_Propane_Entropy(temperature)-entropy,[280,1080]);
- otherwise
- error('Therm:corr','No correlation found for given properties')
- end
- output = temperature;
- otherwise
- error('Therm:matChk', 'Unknown material')
- end
- return