function [VOI, STATES, ALGEBRAIC, CONSTANTS] = mainFunction() % This is the "main function". In Matlab, things work best if you rename this function to match the filename. [VOI, STATES, ALGEBRAIC, CONSTANTS] = solveModel(); end function [algebraicVariableCount] = getAlgebraicVariableCount() % Used later when setting a global variable with the number of algebraic variables. % Note: This is not the "main method". algebraicVariableCount =126; end % There are a total of 46 entries in each of the rate and state variable arrays. % There are a total of 175 entries in the constant variable array. % function [VOI, STATES, ALGEBRAIC, CONSTANTS] = solveModel() % Create ALGEBRAIC of correct size global algebraicVariableCount; algebraicVariableCount = getAlgebraicVariableCount(); % Initialise constants and state variables [INIT_STATES, CONSTANTS] = initConsts; % Set timespan to solve over tspan = [0, 10]; % Set numerical accuracy options for ODE solver options = odeset('RelTol', 1e-06, 'AbsTol', 1e-06, 'MaxStep', 1); % Solve model with ODE solver [VOI, STATES] = ode15s(@(VOI, STATES)computeRates(VOI, STATES, CONSTANTS), tspan, INIT_STATES, options); % Compute algebraic variables [RATES, ALGEBRAIC] = computeRates(VOI, STATES, CONSTANTS); ALGEBRAIC = computeAlgebraic(ALGEBRAIC, CONSTANTS, STATES, VOI); % Plot state variables against variable of integration [LEGEND_STATES, LEGEND_ALGEBRAIC, LEGEND_VOI, LEGEND_CONSTANTS] = createLegends(); figure(); plot(VOI, STATES); xlabel(LEGEND_VOI); l = legend(LEGEND_STATES); set(l,'Interpreter','none'); end function [LEGEND_STATES, LEGEND_ALGEBRAIC, LEGEND_VOI, LEGEND_CONSTANTS] = createLegends() LEGEND_STATES = ''; LEGEND_ALGEBRAIC = ''; LEGEND_VOI = ''; LEGEND_CONSTANTS = ''; LEGEND_VOI = strpad('t in component main (second)'); LEGEND_CONSTANTS(:,1) = strpad('rho in component main (Js2_per_m5)'); LEGEND_CONSTANTS(:,2) = strpad('g in component main (m_per_s2)'); LEGEND_CONSTANTS(:,3) = strpad('theta_deg in component main (dim)'); LEGEND_CONSTANTS(:,175) = strpad('theta_rad in component main (radian)'); LEGEND_ALGEBRAIC(:,1) = strpad('z in component main (dim)'); LEGEND_CONSTANTS(:,4) = strpad('T in component main (second)'); LEGEND_ALGEBRAIC(:,3) = strpad('mt in component main (dim)'); LEGEND_ALGEBRAIC(:,2) = strpad('mta in component main (dim)'); LEGEND_CONSTANTS(:,5) = strpad('delay in component main (dim)'); LEGEND_CONSTANTS(:,6) = strpad('To_pk in component main (dim)'); LEGEND_STATES(:,1) = strpad('q_LV in component main (litre)'); LEGEND_CONSTANTS(:,7) = strpad('q_LV_us in component main (litre)'); LEGEND_ALGEBRAIC(:,7) = strpad('u_LV in component main (kPa)'); LEGEND_ALGEBRAIC(:,5) = strpad('E_LV in component main (kPa_per_L)'); LEGEND_CONSTANTS(:,8) = strpad('E_LVmax in component main (kPa_per_L)'); LEGEND_CONSTANTS(:,9) = strpad('E_LVmin in component main (kPa_per_L)'); LEGEND_STATES(:,2) = strpad('q_RV in component main (litre)'); LEGEND_CONSTANTS(:,10) = strpad('q_RV_us in component main (litre)'); LEGEND_ALGEBRAIC(:,11) = strpad('u_RV in component main (kPa)'); LEGEND_ALGEBRAIC(:,9) = strpad('E_RV in component main (kPa_per_L)'); LEGEND_CONSTANTS(:,11) = strpad('E_RVmax in component main (kPa_per_L)'); LEGEND_CONSTANTS(:,12) = strpad('E_RVmin in component main (kPa_per_L)'); LEGEND_STATES(:,3) = strpad('q_LA in component main (litre)'); LEGEND_CONSTANTS(:,13) = strpad('q_LA_us in component main (litre)'); LEGEND_ALGEBRAIC(:,13) = strpad('u_LA in component main (kPa)'); LEGEND_CONSTANTS(:,14) = strpad('E_LA in component main (kPa_per_L)'); LEGEND_STATES(:,4) = strpad('q_RA in component main (litre)'); LEGEND_CONSTANTS(:,15) = strpad('q_RA_us in component main (litre)'); LEGEND_ALGEBRAIC(:,15) = strpad('u_RA in component main (kPa)'); LEGEND_CONSTANTS(:,16) = strpad('E_RA in component main (kPa_per_L)'); LEGEND_ALGEBRAIC(:,25) = strpad('v_AV in component main (L_per_s)'); LEGEND_CONSTANTS(:,17) = strpad('R_AV in component main (kPa_s_per_L)'); LEGEND_ALGEBRAIC(:,24) = strpad('v_PV in component main (L_per_s)'); LEGEND_CONSTANTS(:,18) = strpad('R_PV in component main (kPa_s_per_L)'); LEGEND_ALGEBRAIC(:,17) = strpad('v_TV in component main (L_per_s)'); LEGEND_CONSTANTS(:,19) = strpad('R_TV in component main (kPa_s_per_L)'); LEGEND_ALGEBRAIC(:,19) = strpad('v_MV in component main (L_per_s)'); LEGEND_CONSTANTS(:,20) = strpad('R_MV in component main (kPa_s_per_L)'); LEGEND_STATES(:,5) = strpad('q_pulmA in component main (litre)'); LEGEND_CONSTANTS(:,21) = strpad('q_pulmA_us in component main (litre)'); LEGEND_ALGEBRAIC(:,21) = strpad('u_pulmA in component main (kPa)'); LEGEND_CONSTANTS(:,22) = strpad('E_pulmA in component main (kPa_per_L)'); LEGEND_ALGEBRAIC(:,28) = strpad('v_lungA in component main (L_per_s)'); LEGEND_CONSTANTS(:,23) = strpad('R_lungA in component main (kPa_s_per_L)'); LEGEND_STATES(:,6) = strpad('q_lungC in component main (litre)'); LEGEND_CONSTANTS(:,24) = strpad('q_lungC_us in component main (litre)'); LEGEND_ALGEBRAIC(:,26) = strpad('u_lungC in component main (kPa)'); LEGEND_CONSTANTS(:,25) = strpad('E_lungC in component main (kPa_per_L)'); LEGEND_ALGEBRAIC(:,30) = strpad('v_pulmV in component main (L_per_s)'); LEGEND_CONSTANTS(:,26) = strpad('R_pulmV in component main (kPa_s_per_L)'); LEGEND_STATES(:,7) = strpad('q_AA in component main (litre)'); LEGEND_CONSTANTS(:,27) = strpad('q_AA_us in component main (litre)'); LEGEND_ALGEBRAIC(:,22) = strpad('u_AA in component main (kPa)'); LEGEND_CONSTANTS(:,28) = strpad('E_AA in component main (kPa_per_L)'); LEGEND_ALGEBRAIC(:,29) = strpad('v_brachiocephalicA in component main (L_per_s)'); LEGEND_CONSTANTS(:,29) = strpad('R_brachiocephalicA in component main (kPa_s_per_L)'); LEGEND_STATES(:,8) = strpad('q_brachiocephalicA in component main (litre)'); LEGEND_CONSTANTS(:,30) = strpad('q_brachiocephalicA_us in component main (litre)'); LEGEND_ALGEBRAIC(:,27) = strpad('u_brachiocephalicA in component main (kPa)'); LEGEND_CONSTANTS(:,31) = strpad('E_brachiocephalicA in component main (kPa_per_L)'); LEGEND_ALGEBRAIC(:,32) = strpad('v_rSubclavianA in component main (L_per_s)'); LEGEND_CONSTANTS(:,32) = strpad('R_rSubclavianA in component main (kPa_s_per_L)'); LEGEND_ALGEBRAIC(:,36) = strpad('v_rCCA in component main (L_per_s)'); LEGEND_CONSTANTS(:,33) = strpad('R_rCCA in component main (kPa_s_per_L)'); LEGEND_STATES(:,9) = strpad('q_rSubclavianA in component main (litre)'); LEGEND_CONSTANTS(:,34) = strpad('q_rSubclavianA_us in component main (litre)'); LEGEND_ALGEBRAIC(:,31) = strpad('u_rSubclavianA in component main (kPa)'); LEGEND_CONSTANTS(:,35) = strpad('E_rSubclavianA in component main (kPa_per_L)'); LEGEND_ALGEBRAIC(:,45) = strpad('v_rBrachialA in component main (L_per_s)'); LEGEND_CONSTANTS(:,36) = strpad('R_rBrachialA in component main (kPa_s_per_L)'); LEGEND_ALGEBRAIC(:,37) = strpad('v_rVertebralA in component main (L_per_s)'); LEGEND_CONSTANTS(:,37) = strpad('R_rVertebralA in component main (kPa_s_per_L)'); LEGEND_ALGEBRAIC(:,38) = strpad('v_lCCA in component main (L_per_s)'); LEGEND_CONSTANTS(:,38) = strpad('R_lCCA in component main (kPa_s_per_L)'); LEGEND_ALGEBRAIC(:,34) = strpad('v_lSubclavianA in component main (L_per_s)'); LEGEND_CONSTANTS(:,39) = strpad('R_lSubclavianA in component main (kPa_s_per_L)'); LEGEND_STATES(:,10) = strpad('q_lSubclavianA in component main (litre)'); LEGEND_CONSTANTS(:,40) = strpad('q_lSubclavianA_us in component main (litre)'); LEGEND_ALGEBRAIC(:,33) = strpad('u_lSubclavianA in component main (kPa)'); LEGEND_CONSTANTS(:,41) = strpad('E_lSubclavianA in component main (kPa_per_L)'); LEGEND_ALGEBRAIC(:,42) = strpad('v_lBrachialA in component main (L_per_s)'); LEGEND_CONSTANTS(:,42) = strpad('R_lBrachialA in component main (kPa_s_per_L)'); LEGEND_ALGEBRAIC(:,39) = strpad('v_lVertebralA in component main (L_per_s)'); LEGEND_CONSTANTS(:,43) = strpad('R_lVertebralA in component main (kPa_s_per_L)'); LEGEND_STATES(:,11) = strpad('q_headC in component main (litre)'); LEGEND_CONSTANTS(:,44) = strpad('q_headC_us in component main (litre)'); LEGEND_ALGEBRAIC(:,35) = strpad('u_headC in component main (kPa)'); LEGEND_CONSTANTS(:,45) = strpad('E_headC in component main (kPa_per_L)'); LEGEND_ALGEBRAIC(:,40) = strpad('v_headV in component main (L_per_s)'); LEGEND_CONSTANTS(:,46) = strpad('R_headV in component main (kPa_s_per_L)'); LEGEND_STATES(:,12) = strpad('q_lArmC in component main (litre)'); LEGEND_CONSTANTS(:,47) = strpad('q_lArmC_us in component main (litre)'); LEGEND_ALGEBRAIC(:,41) = strpad('u_lArmC in component main (kPa)'); LEGEND_CONSTANTS(:,48) = strpad('E_lArmC in component main (kPa_per_L)'); LEGEND_ALGEBRAIC(:,43) = strpad('v_lArmV in component main (L_per_s)'); LEGEND_CONSTANTS(:,49) = strpad('R_lArmV in component main (kPa_s_per_L)'); LEGEND_STATES(:,13) = strpad('q_rArmC in component main (litre)'); LEGEND_CONSTANTS(:,50) = strpad('q_rArmC_us in component main (litre)'); LEGEND_ALGEBRAIC(:,44) = strpad('u_rArmC in component main (kPa)'); LEGEND_CONSTANTS(:,51) = strpad('E_rArmC in component main (kPa_per_L)'); LEGEND_ALGEBRAIC(:,46) = strpad('v_rArmV in component main (L_per_s)'); LEGEND_CONSTANTS(:,52) = strpad('R_rArmV in component main (kPa_s_per_L)'); LEGEND_STATES(:,14) = strpad('q_A1 in component main (litre)'); LEGEND_CONSTANTS(:,53) = strpad('q_A1_us in component main (litre)'); LEGEND_STATES(:,15) = strpad('q_A2 in component main (litre)'); LEGEND_CONSTANTS(:,54) = strpad('q_A2_us in component main (litre)'); LEGEND_STATES(:,16) = strpad('q_A3 in component main (litre)'); LEGEND_CONSTANTS(:,55) = strpad('q_A3_us in component main (litre)'); LEGEND_STATES(:,17) = strpad('q_A4 in component main (litre)'); LEGEND_CONSTANTS(:,56) = strpad('q_A4_us in component main (litre)'); LEGEND_STATES(:,18) = strpad('q_A5 in component main (litre)'); LEGEND_CONSTANTS(:,57) = strpad('q_A5_us in component main (litre)'); LEGEND_STATES(:,19) = strpad('q_A6 in component main (litre)'); LEGEND_CONSTANTS(:,58) = strpad('q_A6_us in component main (litre)'); LEGEND_STATES(:,20) = strpad('q_A7 in component main (litre)'); LEGEND_CONSTANTS(:,59) = strpad('q_A7_us in component main (litre)'); LEGEND_STATES(:,21) = strpad('q_A8 in component main (litre)'); LEGEND_CONSTANTS(:,60) = strpad('q_A8_us in component main (litre)'); LEGEND_ALGEBRAIC(:,55) = strpad('v_A1 in component main (L_per_s)'); LEGEND_ALGEBRAIC(:,56) = strpad('v_A2 in component main (L_per_s)'); LEGEND_ALGEBRAIC(:,57) = strpad('v_A3 in component main (L_per_s)'); LEGEND_ALGEBRAIC(:,58) = strpad('v_A4 in component main (L_per_s)'); LEGEND_ALGEBRAIC(:,59) = strpad('v_A5 in component main (L_per_s)'); LEGEND_ALGEBRAIC(:,60) = strpad('v_A6 in component main (L_per_s)'); LEGEND_ALGEBRAIC(:,61) = strpad('v_A7 in component main (L_per_s)'); LEGEND_ALGEBRAIC(:,62) = strpad('v_A8 in component main (L_per_s)'); LEGEND_ALGEBRAIC(:,47) = strpad('u_A1 in component main (kPa)'); LEGEND_ALGEBRAIC(:,48) = strpad('u_A2 in component main (kPa)'); LEGEND_ALGEBRAIC(:,49) = strpad('u_A3 in component main (kPa)'); LEGEND_ALGEBRAIC(:,50) = strpad('u_A4 in component main (kPa)'); LEGEND_ALGEBRAIC(:,51) = strpad('u_A5 in component main (kPa)'); LEGEND_ALGEBRAIC(:,52) = strpad('u_A6 in component main (kPa)'); LEGEND_ALGEBRAIC(:,53) = strpad('u_A7 in component main (kPa)'); LEGEND_ALGEBRAIC(:,54) = strpad('u_A8 in component main (kPa)'); LEGEND_CONSTANTS(:,61) = strpad('E_A1 in component main (kPa_per_L)'); LEGEND_CONSTANTS(:,62) = strpad('E_A2 in component main (kPa_per_L)'); LEGEND_CONSTANTS(:,63) = strpad('E_A3 in component main (kPa_per_L)'); LEGEND_CONSTANTS(:,64) = strpad('E_A4 in component main (kPa_per_L)'); LEGEND_CONSTANTS(:,65) = strpad('E_A5 in component main (kPa_per_L)'); LEGEND_CONSTANTS(:,66) = strpad('E_A6 in component main (kPa_per_L)'); LEGEND_CONSTANTS(:,67) = strpad('E_A7 in component main (kPa_per_L)'); LEGEND_CONSTANTS(:,68) = strpad('E_A8 in component main (kPa_per_L)'); LEGEND_CONSTANTS(:,69) = strpad('R_A1 in component main (kPa_s_per_L)'); LEGEND_CONSTANTS(:,70) = strpad('R_A2 in component main (kPa_s_per_L)'); LEGEND_CONSTANTS(:,71) = strpad('R_A3 in component main (kPa_s_per_L)'); LEGEND_CONSTANTS(:,72) = strpad('R_A4 in component main (kPa_s_per_L)'); LEGEND_CONSTANTS(:,73) = strpad('R_A5 in component main (kPa_s_per_L)'); LEGEND_CONSTANTS(:,74) = strpad('R_A6 in component main (kPa_s_per_L)'); LEGEND_CONSTANTS(:,75) = strpad('R_A7 in component main (kPa_s_per_L)'); LEGEND_CONSTANTS(:,76) = strpad('R_A8 in component main (kPa_s_per_L)'); LEGEND_ALGEBRAIC(:,64) = strpad('v_lInfPhrenicA in component main (L_per_s)'); LEGEND_CONSTANTS(:,77) = strpad('R_lInfPhrenicA in component main (kPa_s_per_L)'); LEGEND_STATES(:,22) = strpad('q_lAdrenalGlandC in component main (litre)'); LEGEND_CONSTANTS(:,78) = strpad('q_lAdrenalGlandC_us in component main (litre)'); LEGEND_ALGEBRAIC(:,63) = strpad('u_lAdrenalGlandC in component main (kPa)'); LEGEND_CONSTANTS(:,79) = strpad('E_lAdrenalGlandC in component main (kPa_per_L)'); LEGEND_ALGEBRAIC(:,66) = strpad('v_lAdrenalV in component main (L_per_s)'); LEGEND_CONSTANTS(:,80) = strpad('R_lAdrenalV in component main (kPa_s_per_L)'); LEGEND_STATES(:,23) = strpad('q_lInfPhrenicV in component main (litre)'); LEGEND_CONSTANTS(:,81) = strpad('q_lInfPhrenicV_us in component main (litre)'); LEGEND_ALGEBRAIC(:,65) = strpad('u_lInfPhrenicV in component main (kPa)'); LEGEND_CONSTANTS(:,82) = strpad('E_lInfPhrenicV in component main (kPa_per_L)'); LEGEND_ALGEBRAIC(:,105) = strpad('v_lInfPhrenicV in component main (L_per_s)'); LEGEND_CONSTANTS(:,83) = strpad('R_lInfPhrenicV in component main (kPa_s_per_L)'); LEGEND_ALGEBRAIC(:,68) = strpad('v_rInfPhrenicA in component main (L_per_s)'); LEGEND_CONSTANTS(:,84) = strpad('R_rInfPhrenicA in component main (kPa_s_per_L)'); LEGEND_STATES(:,24) = strpad('q_rAdrenalGlandC in component main (litre)'); LEGEND_CONSTANTS(:,85) = strpad('q_rAdrenalGlandC_us in component main (litre)'); LEGEND_ALGEBRAIC(:,67) = strpad('u_rAdrenalGlandC in component main (kPa)'); LEGEND_CONSTANTS(:,86) = strpad('E_rAdrenalGlandC in component main (kPa_per_L)'); LEGEND_ALGEBRAIC(:,70) = strpad('v_rAdrenalV in component main (L_per_s)'); LEGEND_CONSTANTS(:,87) = strpad('R_rAdrenalV in component main (kPa_s_per_L)'); LEGEND_STATES(:,25) = strpad('q_rInfPhrenicV in component main (litre)'); LEGEND_CONSTANTS(:,88) = strpad('q_rInfPhrenicV_us in component main (litre)'); LEGEND_ALGEBRAIC(:,69) = strpad('u_rInfPhrenicV in component main (kPa)'); LEGEND_CONSTANTS(:,89) = strpad('E_rInfPhrenicV in component main (kPa_per_L)'); LEGEND_ALGEBRAIC(:,107) = strpad('v_rInfPhrenicV in component main (L_per_s)'); LEGEND_CONSTANTS(:,90) = strpad('R_rInfPhrenicV in component main (kPa_s_per_L)'); LEGEND_ALGEBRAIC(:,72) = strpad('v_celiacA in component main (L_per_s)'); LEGEND_CONSTANTS(:,91) = strpad('R_celiacA in component main (kPa_s_per_L)'); LEGEND_STATES(:,26) = strpad('q_celiacA in component main (litre)'); LEGEND_CONSTANTS(:,92) = strpad('q_celiacA_us in component main (litre)'); LEGEND_ALGEBRAIC(:,71) = strpad('u_celiacA in component main (kPa)'); LEGEND_CONSTANTS(:,93) = strpad('E_celiacA in component main (kPa_per_L)'); LEGEND_CONSTANTS(:,94) = strpad('z_celiacA in component main (meter)'); LEGEND_ALGEBRAIC(:,74) = strpad('v_supMesA in component main (L_per_s)'); LEGEND_CONSTANTS(:,95) = strpad('R_supMesA in component main (kPa_s_per_L)'); LEGEND_STATES(:,27) = strpad('q_supMesA in component main (litre)'); LEGEND_CONSTANTS(:,96) = strpad('q_supMesA_us in component main (litre)'); LEGEND_ALGEBRAIC(:,73) = strpad('u_supMesA in component main (kPa)'); LEGEND_CONSTANTS(:,97) = strpad('E_supMesA in component main (kPa_per_L)'); LEGEND_CONSTANTS(:,98) = strpad('z_supMesA in component main (meter)'); LEGEND_ALGEBRAIC(:,76) = strpad('v_lRenalA in component main (L_per_s)'); LEGEND_CONSTANTS(:,99) = strpad('R_lRenalA in component main (kPa_s_per_L)'); LEGEND_STATES(:,28) = strpad('q_lGlomerulusC in component main (litre)'); LEGEND_CONSTANTS(:,100) = strpad('q_lGlomerulusC_us in component main (litre)'); LEGEND_ALGEBRAIC(:,75) = strpad('u_lGlomerulusC in component main (kPa)'); LEGEND_CONSTANTS(:,101) = strpad('E_lGlomerulusC in component main (kPa_per_L)'); LEGEND_ALGEBRAIC(:,78) = strpad('v_lEffArteriol in component main (L_per_s)'); LEGEND_CONSTANTS(:,102) = strpad('R_lEffArteriol in component main (kPa_s_per_L)'); LEGEND_STATES(:,29) = strpad('q_lPeritubularC in component main (litre)'); LEGEND_CONSTANTS(:,103) = strpad('q_lPeritubularC_us in component main (litre)'); LEGEND_ALGEBRAIC(:,77) = strpad('u_lPeritubularC in component main (kPa)'); LEGEND_CONSTANTS(:,104) = strpad('E_lPeritubularC in component main (kPa_per_L)'); LEGEND_ALGEBRAIC(:,111) = strpad('v_lRenalV in component main (L_per_s)'); LEGEND_CONSTANTS(:,105) = strpad('R_lRenalV in component main (kPa_s_per_L)'); LEGEND_ALGEBRAIC(:,80) = strpad('v_rRenalA in component main (L_per_s)'); LEGEND_CONSTANTS(:,106) = strpad('R_rRenalA in component main (kPa_s_per_L)'); LEGEND_STATES(:,30) = strpad('q_rGlomerulusC in component main (litre)'); LEGEND_CONSTANTS(:,107) = strpad('q_rGlomerulusC_us in component main (litre)'); LEGEND_ALGEBRAIC(:,79) = strpad('u_rGlomerulusC in component main (kPa)'); LEGEND_CONSTANTS(:,108) = strpad('E_rGlomerulusC in component main (kPa_per_L)'); LEGEND_ALGEBRAIC(:,82) = strpad('v_rEffArteriol in component main (L_per_s)'); LEGEND_CONSTANTS(:,109) = strpad('R_rEffArteriol in component main (kPa_s_per_L)'); LEGEND_STATES(:,31) = strpad('q_rPeritubularC in component main (litre)'); LEGEND_CONSTANTS(:,110) = strpad('q_rPeritubularC_us in component main (litre)'); LEGEND_ALGEBRAIC(:,81) = strpad('u_rPeritubularC in component main (kPa)'); LEGEND_CONSTANTS(:,111) = strpad('E_rPeritubularC in component main (kPa_per_L)'); LEGEND_ALGEBRAIC(:,113) = strpad('v_rRenalV in component main (L_per_s)'); LEGEND_CONSTANTS(:,112) = strpad('R_rRenalV in component main (kPa_s_per_L)'); LEGEND_ALGEBRAIC(:,93) = strpad('v_infMesA in component main (L_per_s)'); LEGEND_CONSTANTS(:,113) = strpad('R_infMesA in component main (kPa_s_per_L)'); LEGEND_ALGEBRAIC(:,84) = strpad('v_stomachA in component main (L_per_s)'); LEGEND_CONSTANTS(:,114) = strpad('R_stomachA in component main (kPa_s_per_L)'); LEGEND_STATES(:,32) = strpad('q_stomachC in component main (litre)'); LEGEND_CONSTANTS(:,115) = strpad('q_stomachC_us in component main (litre)'); LEGEND_ALGEBRAIC(:,83) = strpad('u_stomachC in component main (kPa)'); LEGEND_CONSTANTS(:,116) = strpad('E_stomachC in component main (kPa_per_L)'); LEGEND_CONSTANTS(:,117) = strpad('z_stomachC in component main (meter)'); LEGEND_ALGEBRAIC(:,96) = strpad('v_stomachV in component main (L_per_s)'); LEGEND_CONSTANTS(:,118) = strpad('R_stomachV in component main (kPa_s_per_L)'); LEGEND_ALGEBRAIC(:,86) = strpad('v_spleenA in component main (L_per_s)'); LEGEND_CONSTANTS(:,119) = strpad('R_spleenA in component main (kPa_s_per_L)'); LEGEND_STATES(:,33) = strpad('q_spleenC in component main (litre)'); LEGEND_CONSTANTS(:,120) = strpad('q_spleenC_us in component main (litre)'); LEGEND_ALGEBRAIC(:,85) = strpad('u_spleenC in component main (kPa)'); LEGEND_CONSTANTS(:,121) = strpad('E_spleenC in component main (kPa_per_L)'); LEGEND_CONSTANTS(:,122) = strpad('z_spleenC in component main (meter)'); LEGEND_ALGEBRAIC(:,97) = strpad('v_spleenV in component main (L_per_s)'); LEGEND_CONSTANTS(:,123) = strpad('R_spleenV in component main (kPa_s_per_L)'); LEGEND_ALGEBRAIC(:,88) = strpad('v_pancreas1A in component main (L_per_s)'); LEGEND_ALGEBRAIC(:,89) = strpad('v_pancreas2A in component main (L_per_s)'); LEGEND_CONSTANTS(:,124) = strpad('R_pancreas1A in component main (kPa_s_per_L)'); LEGEND_CONSTANTS(:,125) = strpad('R_pancreas2A in component main (kPa_s_per_L)'); LEGEND_STATES(:,34) = strpad('q_pancreasC in component main (litre)'); LEGEND_CONSTANTS(:,126) = strpad('q_pancreasC_us in component main (litre)'); LEGEND_ALGEBRAIC(:,87) = strpad('u_pancreasC in component main (kPa)'); LEGEND_CONSTANTS(:,127) = strpad('E_pancreasC in component main (kPa_per_L)'); LEGEND_CONSTANTS(:,128) = strpad('z_pancreasC in component main (meter)'); LEGEND_ALGEBRAIC(:,98) = strpad('v_pancreasV in component main (L_per_s)'); LEGEND_CONSTANTS(:,129) = strpad('R_pancreasV in component main (kPa_s_per_L)'); LEGEND_ALGEBRAIC(:,91) = strpad('v_intestineA in component main (L_per_s)'); LEGEND_CONSTANTS(:,130) = strpad('R_intestineA in component main (kPa_s_per_L)'); LEGEND_STATES(:,35) = strpad('q_intestineC in component main (litre)'); LEGEND_CONSTANTS(:,131) = strpad('q_intestineC_us in component main (litre)'); LEGEND_ALGEBRAIC(:,90) = strpad('u_intestineC in component main (kPa)'); LEGEND_CONSTANTS(:,132) = strpad('E_intestineC in component main (kPa_per_L)'); LEGEND_CONSTANTS(:,133) = strpad('z_ in component main (meter)'); LEGEND_ALGEBRAIC(:,99) = strpad('v_intestineV in component main (L_per_s)'); LEGEND_CONSTANTS(:,134) = strpad('R_intestineV in component main (kPa_s_per_L)'); LEGEND_ALGEBRAIC(:,94) = strpad('v_colonA in component main (L_per_s)'); LEGEND_CONSTANTS(:,135) = strpad('R_colonA in component main (kPa_s_per_L)'); LEGEND_STATES(:,36) = strpad('q_colonC in component main (litre)'); LEGEND_CONSTANTS(:,136) = strpad('q_colonC_us in component main (litre)'); LEGEND_ALGEBRAIC(:,92) = strpad('u_colonC in component main (kPa)'); LEGEND_CONSTANTS(:,137) = strpad('E_colonC in component main (kPa_per_L)'); LEGEND_CONSTANTS(:,138) = strpad('z_colonC in component main (meter)'); LEGEND_ALGEBRAIC(:,100) = strpad('v_colonV in component main (L_per_s)'); LEGEND_CONSTANTS(:,139) = strpad('R_colonV in component main (kPa_s_per_L)'); LEGEND_STATES(:,37) = strpad('q_portalV in component main (litre)'); LEGEND_CONSTANTS(:,140) = strpad('q_portalV_us in component main (litre)'); LEGEND_ALGEBRAIC(:,95) = strpad('u_portalV in component main (kPa)'); LEGEND_CONSTANTS(:,141) = strpad('E_portalV in component main (kPa_per_L)'); LEGEND_CONSTANTS(:,142) = strpad('z_portalV in component main (meter)'); LEGEND_ALGEBRAIC(:,102) = strpad('v_portalV in component main (L_per_s)'); LEGEND_CONSTANTS(:,143) = strpad('R_portalV in component main (kPa_s_per_L)'); LEGEND_ALGEBRAIC(:,103) = strpad('v_liverA in component main (L_per_s)'); LEGEND_CONSTANTS(:,144) = strpad('R_liverA in component main (kPa_s_per_L)'); LEGEND_STATES(:,38) = strpad('q_liverC in component main (litre)'); LEGEND_CONSTANTS(:,145) = strpad('q_liverC_us in component main (litre)'); LEGEND_ALGEBRAIC(:,101) = strpad('u_liverC in component main (kPa)'); LEGEND_CONSTANTS(:,146) = strpad('E_liverC in component main (kPa_per_L)'); LEGEND_CONSTANTS(:,147) = strpad('z_liverC in component main (meter)'); LEGEND_ALGEBRAIC(:,109) = strpad('v_liverV in component main (L_per_s)'); LEGEND_CONSTANTS(:,148) = strpad('R_liverV in component main (kPa_s_per_L)'); LEGEND_STATES(:,39) = strpad('q_V1 in component main (litre)'); LEGEND_CONSTANTS(:,149) = strpad('q_V1_us in component main (litre)'); LEGEND_STATES(:,40) = strpad('q_V2 in component main (litre)'); LEGEND_CONSTANTS(:,150) = strpad('q_V2_us in component main (litre)'); LEGEND_STATES(:,41) = strpad('q_V3 in component main (litre)'); LEGEND_CONSTANTS(:,151) = strpad('q_V3_us in component main (litre)'); LEGEND_STATES(:,42) = strpad('q_V4 in component main (litre)'); LEGEND_CONSTANTS(:,152) = strpad('q_V4_us in component main (litre)'); LEGEND_STATES(:,43) = strpad('q_V5 in component main (litre)'); LEGEND_CONSTANTS(:,153) = strpad('q_V5_us in component main (litre)'); LEGEND_STATES(:,44) = strpad('q_V6 in component main (litre)'); LEGEND_CONSTANTS(:,154) = strpad('q_V6_us in component main (litre)'); LEGEND_ALGEBRAIC(:,115) = strpad('v_V1 in component main (L_per_s)'); LEGEND_ALGEBRAIC(:,116) = strpad('v_V2 in component main (L_per_s)'); LEGEND_ALGEBRAIC(:,117) = strpad('v_V3 in component main (L_per_s)'); LEGEND_ALGEBRAIC(:,118) = strpad('v_V4 in component main (L_per_s)'); LEGEND_ALGEBRAIC(:,119) = strpad('v_V5 in component main (L_per_s)'); LEGEND_ALGEBRAIC(:,120) = strpad('v_V6 in component main (L_per_s)'); LEGEND_ALGEBRAIC(:,104) = strpad('u_V1 in component main (kPa)'); LEGEND_ALGEBRAIC(:,106) = strpad('u_V2 in component main (kPa)'); LEGEND_ALGEBRAIC(:,108) = strpad('u_V3 in component main (kPa)'); LEGEND_ALGEBRAIC(:,110) = strpad('u_V4 in component main (kPa)'); LEGEND_ALGEBRAIC(:,112) = strpad('u_V5 in component main (kPa)'); LEGEND_ALGEBRAIC(:,114) = strpad('u_V6 in component main (kPa)'); LEGEND_CONSTANTS(:,155) = strpad('E_V1 in component main (kPa_per_L)'); LEGEND_CONSTANTS(:,156) = strpad('E_V2 in component main (kPa_per_L)'); LEGEND_CONSTANTS(:,157) = strpad('E_V3 in component main (kPa_per_L)'); LEGEND_CONSTANTS(:,158) = strpad('E_V4 in component main (kPa_per_L)'); LEGEND_CONSTANTS(:,159) = strpad('E_V5 in component main (kPa_per_L)'); LEGEND_CONSTANTS(:,160) = strpad('E_V6 in component main (kPa_per_L)'); LEGEND_CONSTANTS(:,161) = strpad('R_V1 in component main (kPa_s_per_L)'); LEGEND_CONSTANTS(:,162) = strpad('R_V2 in component main (kPa_s_per_L)'); LEGEND_CONSTANTS(:,163) = strpad('R_V3 in component main (kPa_s_per_L)'); LEGEND_CONSTANTS(:,164) = strpad('R_V4 in component main (kPa_s_per_L)'); LEGEND_CONSTANTS(:,165) = strpad('R_V5 in component main (kPa_s_per_L)'); LEGEND_CONSTANTS(:,166) = strpad('R_V6 in component main (kPa_s_per_L)'); LEGEND_ALGEBRAIC(:,122) = strpad('v_lCommonIliacA in component main (L_per_s)'); LEGEND_CONSTANTS(:,167) = strpad('R_lCommonIliacA in component main (kPa_s_per_L)'); LEGEND_STATES(:,45) = strpad('q_lLegC in component main (litre)'); LEGEND_CONSTANTS(:,168) = strpad('q_lLegC_us in component main (litre)'); LEGEND_ALGEBRAIC(:,121) = strpad('u_lLegC in component main (kPa)'); LEGEND_CONSTANTS(:,169) = strpad('E_lLegC in component main (kPa_per_L)'); LEGEND_ALGEBRAIC(:,123) = strpad('v_lCommonIliacV in component main (L_per_s)'); LEGEND_CONSTANTS(:,170) = strpad('R_lCommonIliacV in component main (kPa_s_per_L)'); LEGEND_ALGEBRAIC(:,125) = strpad('v_rCommonIliacA in component main (L_per_s)'); LEGEND_CONSTANTS(:,171) = strpad('R_rCommonIliacA in component main (kPa_s_per_L)'); LEGEND_STATES(:,46) = strpad('q_rLegC in component main (litre)'); LEGEND_CONSTANTS(:,172) = strpad('q_rLegC_us in component main (litre)'); LEGEND_ALGEBRAIC(:,124) = strpad('u_rLegC in component main (kPa)'); LEGEND_CONSTANTS(:,173) = strpad('E_rLegC in component main (kPa_per_L)'); LEGEND_ALGEBRAIC(:,126) = strpad('v_rCommonIliacV in component main (L_per_s)'); LEGEND_CONSTANTS(:,174) = strpad('R_rCommonIliacV in component main (kPa_s_per_L)'); LEGEND_ALGEBRAIC(:,4) = strpad('q_TotHeart in component main (litre)'); LEGEND_ALGEBRAIC(:,6) = strpad('q_TotLung in component main (litre)'); LEGEND_ALGEBRAIC(:,8) = strpad('q_TotHead in component main (litre)'); LEGEND_ALGEBRAIC(:,10) = strpad('q_TotThoracic in component main (litre)'); LEGEND_ALGEBRAIC(:,12) = strpad('q_TotAorta in component main (litre)'); LEGEND_ALGEBRAIC(:,14) = strpad('q_TotRenal in component main (litre)'); LEGEND_ALGEBRAIC(:,16) = strpad('q_TotGut in component main (litre)'); LEGEND_ALGEBRAIC(:,18) = strpad('q_TotVenaCava in component main (litre)'); LEGEND_ALGEBRAIC(:,20) = strpad('q_TotLimbs in component main (litre)'); LEGEND_ALGEBRAIC(:,23) = strpad('q_TotBlood in component main (litre)'); LEGEND_RATES(:,1) = strpad('d/dt q_LV in component main (litre)'); LEGEND_RATES(:,2) = strpad('d/dt q_RV in component main (litre)'); LEGEND_RATES(:,3) = strpad('d/dt q_LA in component main (litre)'); LEGEND_RATES(:,4) = strpad('d/dt q_RA in component main (litre)'); LEGEND_RATES(:,5) = strpad('d/dt q_pulmA in component main (litre)'); LEGEND_RATES(:,6) = strpad('d/dt q_lungC in component main (litre)'); LEGEND_RATES(:,7) = strpad('d/dt q_AA in component main (litre)'); LEGEND_RATES(:,8) = strpad('d/dt q_brachiocephalicA in component main (litre)'); LEGEND_RATES(:,9) = strpad('d/dt q_rSubclavianA in component main (litre)'); LEGEND_RATES(:,10) = strpad('d/dt q_lSubclavianA in component main (litre)'); LEGEND_RATES(:,11) = strpad('d/dt q_headC in component main (litre)'); LEGEND_RATES(:,12) = strpad('d/dt q_lArmC in component main (litre)'); LEGEND_RATES(:,13) = strpad('d/dt q_rArmC in component main (litre)'); LEGEND_RATES(:,14) = strpad('d/dt q_A1 in component main (litre)'); LEGEND_RATES(:,15) = strpad('d/dt q_A2 in component main (litre)'); LEGEND_RATES(:,16) = strpad('d/dt q_A3 in component main (litre)'); LEGEND_RATES(:,17) = strpad('d/dt q_A4 in component main (litre)'); LEGEND_RATES(:,18) = strpad('d/dt q_A5 in component main (litre)'); LEGEND_RATES(:,19) = strpad('d/dt q_A6 in component main (litre)'); LEGEND_RATES(:,20) = strpad('d/dt q_A7 in component main (litre)'); LEGEND_RATES(:,21) = strpad('d/dt q_A8 in component main (litre)'); LEGEND_RATES(:,22) = strpad('d/dt q_lAdrenalGlandC in component main (litre)'); LEGEND_RATES(:,23) = strpad('d/dt q_lInfPhrenicV in component main (litre)'); LEGEND_RATES(:,24) = strpad('d/dt q_rAdrenalGlandC in component main (litre)'); LEGEND_RATES(:,25) = strpad('d/dt q_rInfPhrenicV in component main (litre)'); LEGEND_RATES(:,26) = strpad('d/dt q_celiacA in component main (litre)'); LEGEND_RATES(:,27) = strpad('d/dt q_supMesA in component main (litre)'); LEGEND_RATES(:,28) = strpad('d/dt q_lGlomerulusC in component main (litre)'); LEGEND_RATES(:,29) = strpad('d/dt q_lPeritubularC in component main (litre)'); LEGEND_RATES(:,30) = strpad('d/dt q_rGlomerulusC in component main (litre)'); LEGEND_RATES(:,31) = strpad('d/dt q_rPeritubularC in component main (litre)'); LEGEND_RATES(:,32) = strpad('d/dt q_stomachC in component main (litre)'); LEGEND_RATES(:,33) = strpad('d/dt q_spleenC in component main (litre)'); LEGEND_RATES(:,34) = strpad('d/dt q_pancreasC in component main (litre)'); LEGEND_RATES(:,35) = strpad('d/dt q_intestineC in component main (litre)'); LEGEND_RATES(:,36) = strpad('d/dt q_colonC in component main (litre)'); LEGEND_RATES(:,37) = strpad('d/dt q_portalV in component main (litre)'); LEGEND_RATES(:,38) = strpad('d/dt q_liverC in component main (litre)'); LEGEND_RATES(:,39) = strpad('d/dt q_V1 in component main (litre)'); LEGEND_RATES(:,40) = strpad('d/dt q_V2 in component main (litre)'); LEGEND_RATES(:,41) = strpad('d/dt q_V3 in component main (litre)'); LEGEND_RATES(:,42) = strpad('d/dt q_V4 in component main (litre)'); LEGEND_RATES(:,43) = strpad('d/dt q_V5 in component main (litre)'); LEGEND_RATES(:,44) = strpad('d/dt q_V6 in component main (litre)'); LEGEND_RATES(:,45) = strpad('d/dt q_lLegC in component main (litre)'); LEGEND_RATES(:,46) = strpad('d/dt q_rLegC in component main (litre)'); LEGEND_STATES = LEGEND_STATES'; LEGEND_ALGEBRAIC = LEGEND_ALGEBRAIC'; LEGEND_RATES = LEGEND_RATES'; LEGEND_CONSTANTS = LEGEND_CONSTANTS'; end function [STATES, CONSTANTS] = initConsts() VOI = 0; CONSTANTS = []; STATES = []; ALGEBRAIC = []; CONSTANTS(:,1) = 1000; CONSTANTS(:,2) = 9.81; CONSTANTS(:,3) = 90; CONSTANTS(:,4) = 1; CONSTANTS(:,5) = 0.1; CONSTANTS(:,6) = 0.1; STATES(:,1) = 2.24894867772612; CONSTANTS(:,7) = 0.005; CONSTANTS(:,8) = 320; CONSTANTS(:,9) = 6.667; STATES(:,2) = 2.24212874273495; CONSTANTS(:,10) = 0.01; CONSTANTS(:,11) = 70; CONSTANTS(:,12) = 2; STATES(:,3) = 1.50038322871398; CONSTANTS(:,13) = 0.004; CONSTANTS(:,14) = 10; STATES(:,4) = 0.582873822068968; CONSTANTS(:,15) = 0.004; CONSTANTS(:,16) = 10; CONSTANTS(:,17) = 1; CONSTANTS(:,18) = 1; CONSTANTS(:,19) = 1; CONSTANTS(:,20) = 1; STATES(:,5) = 0.274822042097049; CONSTANTS(:,21) = 0.2; CONSTANTS(:,22) = 200; CONSTANTS(:,23) = 1; STATES(:,6) = 0.274821056256821; CONSTANTS(:,24) = 0.2; CONSTANTS(:,25) = 200; CONSTANTS(:,26) = 1; STATES(:,7) = 1.43716360225001; CONSTANTS(:,27) = 0.12; CONSTANTS(:,28) = 80; CONSTANTS(:,29) = 100; STATES(:,8) = 0.658321340279823; CONSTANTS(:,30) = 0.2; CONSTANTS(:,31) = 200; CONSTANTS(:,32) = 100; CONSTANTS(:,33) = 100; STATES(:,9) = 0.578637981993128; CONSTANTS(:,34) = 0.2; CONSTANTS(:,35) = 200; CONSTANTS(:,36) = 100; CONSTANTS(:,37) = 100; CONSTANTS(:,38) = 100; CONSTANTS(:,39) = 100; STATES(:,10) = 0.609560299960373; CONSTANTS(:,40) = 0.2; CONSTANTS(:,41) = 200; CONSTANTS(:,42) = 100; CONSTANTS(:,43) = 100; STATES(:,11) = 0.575700923676085; CONSTANTS(:,44) = 0.2; CONSTANTS(:,45) = 200; CONSTANTS(:,46) = 100; STATES(:,12) = 0.380415025779693; CONSTANTS(:,47) = 0.06; CONSTANTS(:,48) = 150; CONSTANTS(:,49) = 100; STATES(:,13) = 0.380415025779692; CONSTANTS(:,50) = 0.06; CONSTANTS(:,51) = 150; CONSTANTS(:,52) = 100; STATES(:,14) = 0.0726453866278764; CONSTANTS(:,53) = 0.06; STATES(:,15) = 0.0722595904606296; CONSTANTS(:,54) = 0.06; STATES(:,16) = 0.0717727262354559; CONSTANTS(:,55) = 0.06; STATES(:,17) = 0.0715328891139091; CONSTANTS(:,56) = 0.06; STATES(:,18) = 0.0714293557557069; CONSTANTS(:,57) = 0.06; STATES(:,19) = 0.0713497500336812; CONSTANTS(:,58) = 0.06; STATES(:,20) = 0.0712949341825069; CONSTANTS(:,59) = 0.06; STATES(:,21) = 0.0712201889071758; CONSTANTS(:,60) = 0.06; CONSTANTS(:,61) = 400; CONSTANTS(:,62) = 400; CONSTANTS(:,63) = 400; CONSTANTS(:,64) = 400; CONSTANTS(:,65) = 400; CONSTANTS(:,66) = 400; CONSTANTS(:,67) = 400; CONSTANTS(:,68) = 400; CONSTANTS(:,69) = 10000000; CONSTANTS(:,70) = 100; CONSTANTS(:,71) = 100; CONSTANTS(:,72) = 100; CONSTANTS(:,73) = 100; CONSTANTS(:,74) = 100; CONSTANTS(:,75) = 100; CONSTANTS(:,76) = 100; CONSTANTS(:,77) = 100; STATES(:,22) = 0.226013520134949; CONSTANTS(:,78) = 0.2; CONSTANTS(:,79) = 200; CONSTANTS(:,80) = 100; STATES(:,23) = 0.226425525942081; CONSTANTS(:,81) = 0.2; CONSTANTS(:,82) = 200; CONSTANTS(:,83) = 100; CONSTANTS(:,84) = 100; STATES(:,24) = 0.224729694488936; CONSTANTS(:,85) = 0.2; CONSTANTS(:,86) = 200; CONSTANTS(:,87) = 100; STATES(:,25) = 0.224899115493557; CONSTANTS(:,88) = 0.2; CONSTANTS(:,89) = 200; CONSTANTS(:,90) = 100; CONSTANTS(:,91) = 100; STATES(:,26) = 0.0715428919998289; CONSTANTS(:,92) = 0.06; CONSTANTS(:,93) = 400; CONSTANTS(:,94) = 0.2; CONSTANTS(:,95) = 100; STATES(:,27) = 0.071414457768405; CONSTANTS(:,96) = 0.06; CONSTANTS(:,97) = 400; CONSTANTS(:,98) = 0.2; CONSTANTS(:,99) = 100; STATES(:,28) = 0.222843940557744; CONSTANTS(:,100) = 0.2; CONSTANTS(:,101) = 200; CONSTANTS(:,102) = 100; STATES(:,29) = 0.222892809988734; CONSTANTS(:,103) = 0.2; CONSTANTS(:,104) = 200; CONSTANTS(:,105) = 100; CONSTANTS(:,106) = 100; STATES(:,30) = 0.222680450943523; CONSTANTS(:,107) = 0.2; CONSTANTS(:,108) = 200; CONSTANTS(:,109) = 100; STATES(:,31) = 0.222721287850087; CONSTANTS(:,110) = 0.2; CONSTANTS(:,111) = 200; CONSTANTS(:,112) = 100; CONSTANTS(:,113) = 100; CONSTANTS(:,114) = 100; STATES(:,32) = 0.105910755847991; CONSTANTS(:,115) = 0.06; CONSTANTS(:,116) = 100; CONSTANTS(:,117) = 0.2; CONSTANTS(:,118) = 2400; CONSTANTS(:,119) = 100; STATES(:,33) = 0.105910034847806; CONSTANTS(:,120) = 0.06; CONSTANTS(:,121) = 100; CONSTANTS(:,122) = 0.2; CONSTANTS(:,123) = 3000; CONSTANTS(:,124) = 100; CONSTANTS(:,125) = 100; STATES(:,34) = 0.105787155209054; CONSTANTS(:,126) = 0.06; CONSTANTS(:,127) = 100; CONSTANTS(:,128) = 0.2; CONSTANTS(:,129) = 4000; CONSTANTS(:,130) = 100; STATES(:,35) = 0.105459895332545; CONSTANTS(:,131) = 0.06; CONSTANTS(:,132) = 100; CONSTANTS(:,133) = 0.2; CONSTANTS(:,134) = 1200; CONSTANTS(:,135) = 100; STATES(:,36) = 0.105317375726849; CONSTANTS(:,136) = 0.06; CONSTANTS(:,137) = 100; CONSTANTS(:,138) = 0.2; CONSTANTS(:,139) = 2000; STATES(:,37) = 0.152013945600315; CONSTANTS(:,140) = 0.06; CONSTANTS(:,141) = 50; CONSTANTS(:,142) = 0.2; CONSTANTS(:,143) = 100; CONSTANTS(:,144) = 800; STATES(:,38) = 0.526188169704937; CONSTANTS(:,145) = 0.06; CONSTANTS(:,146) = 10; CONSTANTS(:,147) = -0.5; CONSTANTS(:,148) = 1; STATES(:,39) = 0.0732527312969717; CONSTANTS(:,149) = 0.06; STATES(:,40) = 0.0724355014489091; CONSTANTS(:,150) = 0.06; STATES(:,41) = 0.0716607456049039; CONSTANTS(:,151) = 0.06; STATES(:,42) = 0.071501504166401; CONSTANTS(:,152) = 0.06; STATES(:,43) = 0.0714111536200381; CONSTANTS(:,153) = 0.06; STATES(:,44) = 0.0713861207574313; CONSTANTS(:,154) = 0.06; CONSTANTS(:,155) = 400; CONSTANTS(:,156) = 400; CONSTANTS(:,157) = 400; CONSTANTS(:,158) = 400; CONSTANTS(:,159) = 400; CONSTANTS(:,160) = 400; CONSTANTS(:,161) = 100; CONSTANTS(:,162) = 100; CONSTANTS(:,163) = 100; CONSTANTS(:,164) = 100; CONSTANTS(:,165) = 100; CONSTANTS(:,166) = 100; CONSTANTS(:,167) = 100; STATES(:,45) = 0.0898390162613648; CONSTANTS(:,168) = 0.06; CONSTANTS(:,169) = 150; CONSTANTS(:,170) = 4000; CONSTANTS(:,171) = 100; STATES(:,46) = 0.0898390162613648; CONSTANTS(:,172) = 0.06; CONSTANTS(:,173) = 150; CONSTANTS(:,174) = 4000; CONSTANTS(:,175) = ( CONSTANTS(:,3).* pi)./180.000; if (isempty(STATES)), warning('Initial values for states not set');, end end function [RATES, ALGEBRAIC] = computeRates(VOI, STATES, CONSTANTS) global algebraicVariableCount; statesSize = size(STATES); statesColumnCount = statesSize(2); if ( statesColumnCount == 1) STATES = STATES'; ALGEBRAIC = zeros(1, algebraicVariableCount); utilOnes = 1; else statesRowCount = statesSize(1); ALGEBRAIC = zeros(statesRowCount, algebraicVariableCount); RATES = zeros(statesRowCount, statesColumnCount); utilOnes = ones(statesRowCount, 1); end ALGEBRAIC(:,3) = VOI./CONSTANTS(:,4) - floor(VOI./CONSTANTS(:,4)); ALGEBRAIC(:,5) = piecewise({ALGEBRAIC(:,3)<0.400000, (( (CONSTANTS(:,8) - CONSTANTS(:,9)).*ALGEBRAIC(:,3))./CONSTANTS(:,6)).*exp( 0.500000.*(1.00000 - power(ALGEBRAIC(:,3)./CONSTANTS(:,6), 2.00000)))+CONSTANTS(:,9) , ALGEBRAIC(:,3)<0.600000, (( (CONSTANTS(:,8) - CONSTANTS(:,9)).*0.400000)./CONSTANTS(:,6)).*exp( 0.500000.*(1.00000 - power(0.400000./CONSTANTS(:,6), 2.00000)))+CONSTANTS(:,9) }, CONSTANTS(:,9)); ALGEBRAIC(:,7) = ALGEBRAIC(:,5).*(STATES(:,1) - CONSTANTS(:,7)); ALGEBRAIC(:,22) = CONSTANTS(:,28).*(STATES(:,7) - CONSTANTS(:,27)); ALGEBRAIC(:,25) = piecewise({ALGEBRAIC(:,7)>ALGEBRAIC(:,22), (ALGEBRAIC(:,7) - ALGEBRAIC(:,22))./CONSTANTS(:,17) }, 0.00000); ALGEBRAIC(:,13) = CONSTANTS(:,14).*(STATES(:,3) - CONSTANTS(:,13)); ALGEBRAIC(:,19) = piecewise({ALGEBRAIC(:,13)>ALGEBRAIC(:,7), (ALGEBRAIC(:,13) - ALGEBRAIC(:,7))./CONSTANTS(:,20) }, 0.00000); RATES(:,1) = ALGEBRAIC(:,19) - ALGEBRAIC(:,25); ALGEBRAIC(:,9) = piecewise({ALGEBRAIC(:,3)<0.400000, (( (CONSTANTS(:,11) - CONSTANTS(:,12)).*ALGEBRAIC(:,3))./CONSTANTS(:,6)).*exp( 0.500000.*(1.00000 - power(ALGEBRAIC(:,3)./CONSTANTS(:,6), 2.00000)))+CONSTANTS(:,12) , ALGEBRAIC(:,3)<0.600000, (( (CONSTANTS(:,11) - CONSTANTS(:,12)).*0.400000)./CONSTANTS(:,6)).*exp( 0.500000.*(1.00000 - power(0.400000./CONSTANTS(:,6), 2.00000)))+CONSTANTS(:,12) }, CONSTANTS(:,12)); ALGEBRAIC(:,11) = ALGEBRAIC(:,9).*(STATES(:,2) - CONSTANTS(:,10)); ALGEBRAIC(:,21) = CONSTANTS(:,22).*(STATES(:,5) - CONSTANTS(:,21)); ALGEBRAIC(:,24) = piecewise({ALGEBRAIC(:,11)>ALGEBRAIC(:,21), (ALGEBRAIC(:,11) - ALGEBRAIC(:,21))./CONSTANTS(:,18) }, 0.00000); ALGEBRAIC(:,15) = CONSTANTS(:,16).*(STATES(:,4) - CONSTANTS(:,15)); ALGEBRAIC(:,17) = piecewise({ALGEBRAIC(:,15)>ALGEBRAIC(:,11), (ALGEBRAIC(:,15) - ALGEBRAIC(:,11))./CONSTANTS(:,19) }, 0.00000); RATES(:,2) = ALGEBRAIC(:,17) - ALGEBRAIC(:,24); ALGEBRAIC(:,26) = CONSTANTS(:,25).*(STATES(:,6) - CONSTANTS(:,24)); ALGEBRAIC(:,28) = (ALGEBRAIC(:,21) - ALGEBRAIC(:,26))./CONSTANTS(:,23); RATES(:,5) = ALGEBRAIC(:,24) - ALGEBRAIC(:,28); ALGEBRAIC(:,30) = (ALGEBRAIC(:,26) - ALGEBRAIC(:,13))./CONSTANTS(:,26); RATES(:,3) = ALGEBRAIC(:,30) - ALGEBRAIC(:,19); RATES(:,6) = ALGEBRAIC(:,28) - ALGEBRAIC(:,30); ALGEBRAIC(:,27) = CONSTANTS(:,31).*(STATES(:,8) - CONSTANTS(:,30)); ALGEBRAIC(:,29) = (ALGEBRAIC(:,22) - ALGEBRAIC(:,27))./CONSTANTS(:,29); ALGEBRAIC(:,31) = CONSTANTS(:,35).*(STATES(:,9) - CONSTANTS(:,34)); ALGEBRAIC(:,32) = (ALGEBRAIC(:,27) - ALGEBRAIC(:,31))./CONSTANTS(:,32); ALGEBRAIC(:,35) = CONSTANTS(:,45).*(STATES(:,11) - CONSTANTS(:,44)); ALGEBRAIC(:,36) = (ALGEBRAIC(:,27) - ALGEBRAIC(:,35))./CONSTANTS(:,33); RATES(:,8) = (ALGEBRAIC(:,29) - ALGEBRAIC(:,32)) - ALGEBRAIC(:,36); ALGEBRAIC(:,37) = (ALGEBRAIC(:,31) - ALGEBRAIC(:,35))./CONSTANTS(:,37); ALGEBRAIC(:,38) = (ALGEBRAIC(:,22) - ALGEBRAIC(:,35))./CONSTANTS(:,38); ALGEBRAIC(:,33) = CONSTANTS(:,41).*(STATES(:,10) - CONSTANTS(:,40)); ALGEBRAIC(:,39) = (ALGEBRAIC(:,33) - ALGEBRAIC(:,35))./CONSTANTS(:,43); ALGEBRAIC(:,40) = (ALGEBRAIC(:,35) - ALGEBRAIC(:,15))./CONSTANTS(:,46); RATES(:,11) = (ALGEBRAIC(:,37)+ALGEBRAIC(:,36)+ALGEBRAIC(:,38)+ALGEBRAIC(:,39)) - ALGEBRAIC(:,40); ALGEBRAIC(:,34) = (ALGEBRAIC(:,22) - ALGEBRAIC(:,33))./CONSTANTS(:,39); ALGEBRAIC(:,41) = CONSTANTS(:,48).*(STATES(:,12) - CONSTANTS(:,47)); ALGEBRAIC(:,42) = (ALGEBRAIC(:,33) - ALGEBRAIC(:,41))./CONSTANTS(:,42); RATES(:,10) = (ALGEBRAIC(:,34) - ALGEBRAIC(:,42)) - ALGEBRAIC(:,39); ALGEBRAIC(:,43) = (ALGEBRAIC(:,41) - ALGEBRAIC(:,15))./CONSTANTS(:,49); RATES(:,12) = ALGEBRAIC(:,42) - ALGEBRAIC(:,43); ALGEBRAIC(:,44) = CONSTANTS(:,51).*(STATES(:,13) - CONSTANTS(:,50)); ALGEBRAIC(:,45) = (ALGEBRAIC(:,31) - ALGEBRAIC(:,44))./CONSTANTS(:,36); RATES(:,9) = (ALGEBRAIC(:,32) - ALGEBRAIC(:,45)) - ALGEBRAIC(:,37); ALGEBRAIC(:,46) = (ALGEBRAIC(:,44) - ALGEBRAIC(:,15))./CONSTANTS(:,52); RATES(:,13) = ALGEBRAIC(:,45) - ALGEBRAIC(:,46); ALGEBRAIC(:,47) = CONSTANTS(:,61).*(STATES(:,14) - CONSTANTS(:,53)); ALGEBRAIC(:,55) = (ALGEBRAIC(:,22) - ALGEBRAIC(:,47))./CONSTANTS(:,69); RATES(:,7) = (((ALGEBRAIC(:,25) - ALGEBRAIC(:,55)) - ALGEBRAIC(:,29)) - ALGEBRAIC(:,38)) - ALGEBRAIC(:,34); ALGEBRAIC(:,48) = CONSTANTS(:,62).*(STATES(:,15) - CONSTANTS(:,54)); ALGEBRAIC(:,56) = (ALGEBRAIC(:,47) - ALGEBRAIC(:,48))./CONSTANTS(:,70); ALGEBRAIC(:,63) = CONSTANTS(:,79).*(STATES(:,22) - CONSTANTS(:,78)); ALGEBRAIC(:,64) = (ALGEBRAIC(:,47) - ALGEBRAIC(:,63))./CONSTANTS(:,77); RATES(:,14) = (ALGEBRAIC(:,55) - ALGEBRAIC(:,56)) - ALGEBRAIC(:,64); ALGEBRAIC(:,65) = CONSTANTS(:,82).*(STATES(:,23) - CONSTANTS(:,81)); ALGEBRAIC(:,66) = (ALGEBRAIC(:,63) - ALGEBRAIC(:,65))./CONSTANTS(:,80); RATES(:,22) = ALGEBRAIC(:,64) - ALGEBRAIC(:,66); ALGEBRAIC(:,49) = CONSTANTS(:,63).*(STATES(:,16) - CONSTANTS(:,55)); ALGEBRAIC(:,57) = (ALGEBRAIC(:,48) - ALGEBRAIC(:,49))./CONSTANTS(:,71); ALGEBRAIC(:,67) = CONSTANTS(:,86).*(STATES(:,24) - CONSTANTS(:,85)); ALGEBRAIC(:,68) = (ALGEBRAIC(:,48) - ALGEBRAIC(:,67))./CONSTANTS(:,84); RATES(:,15) = (ALGEBRAIC(:,56) - ALGEBRAIC(:,57)) - ALGEBRAIC(:,68); ALGEBRAIC(:,69) = CONSTANTS(:,89).*(STATES(:,25) - CONSTANTS(:,88)); ALGEBRAIC(:,70) = (ALGEBRAIC(:,67) - ALGEBRAIC(:,69))./CONSTANTS(:,87); RATES(:,24) = ALGEBRAIC(:,68) - ALGEBRAIC(:,70); ALGEBRAIC(:,50) = CONSTANTS(:,64).*(STATES(:,17) - CONSTANTS(:,56)); ALGEBRAIC(:,58) = (ALGEBRAIC(:,49) - ALGEBRAIC(:,50))./CONSTANTS(:,72); ALGEBRAIC(:,71) = CONSTANTS(:,93).*(STATES(:,26) - CONSTANTS(:,92)); ALGEBRAIC(:,72) = (ALGEBRAIC(:,49) - ALGEBRAIC(:,71))./CONSTANTS(:,91); RATES(:,16) = (ALGEBRAIC(:,57) - ALGEBRAIC(:,58)) - ALGEBRAIC(:,72); ALGEBRAIC(:,51) = CONSTANTS(:,65).*(STATES(:,18) - CONSTANTS(:,57)); ALGEBRAIC(:,59) = (ALGEBRAIC(:,50) - ALGEBRAIC(:,51))./CONSTANTS(:,73); ALGEBRAIC(:,73) = CONSTANTS(:,97).*(STATES(:,27) - CONSTANTS(:,96)); ALGEBRAIC(:,74) = (ALGEBRAIC(:,50) - ALGEBRAIC(:,73))./CONSTANTS(:,95); RATES(:,17) = (ALGEBRAIC(:,58) - ALGEBRAIC(:,59)) - ALGEBRAIC(:,74); ALGEBRAIC(:,52) = CONSTANTS(:,66).*(STATES(:,19) - CONSTANTS(:,58)); ALGEBRAIC(:,60) = (ALGEBRAIC(:,51) - ALGEBRAIC(:,52))./CONSTANTS(:,74); ALGEBRAIC(:,75) = CONSTANTS(:,101).*(STATES(:,28) - CONSTANTS(:,100)); ALGEBRAIC(:,76) = (ALGEBRAIC(:,51) - ALGEBRAIC(:,75))./CONSTANTS(:,99); RATES(:,18) = (ALGEBRAIC(:,59) - ALGEBRAIC(:,60)) - ALGEBRAIC(:,76); ALGEBRAIC(:,77) = CONSTANTS(:,104).*(STATES(:,29) - CONSTANTS(:,103)); ALGEBRAIC(:,78) = (ALGEBRAIC(:,75) - ALGEBRAIC(:,77))./CONSTANTS(:,102); RATES(:,28) = ALGEBRAIC(:,76) - ALGEBRAIC(:,78); ALGEBRAIC(:,53) = CONSTANTS(:,67).*(STATES(:,20) - CONSTANTS(:,59)); ALGEBRAIC(:,61) = (ALGEBRAIC(:,52) - ALGEBRAIC(:,53))./CONSTANTS(:,75); ALGEBRAIC(:,79) = CONSTANTS(:,108).*(STATES(:,30) - CONSTANTS(:,107)); ALGEBRAIC(:,80) = (ALGEBRAIC(:,52) - ALGEBRAIC(:,79))./CONSTANTS(:,106); RATES(:,19) = (ALGEBRAIC(:,60) - ALGEBRAIC(:,61)) - ALGEBRAIC(:,80); ALGEBRAIC(:,81) = CONSTANTS(:,111).*(STATES(:,31) - CONSTANTS(:,110)); ALGEBRAIC(:,82) = (ALGEBRAIC(:,79) - ALGEBRAIC(:,81))./CONSTANTS(:,109); RATES(:,30) = ALGEBRAIC(:,80) - ALGEBRAIC(:,82); ALGEBRAIC(:,54) = CONSTANTS(:,68).*(STATES(:,21) - CONSTANTS(:,60)); ALGEBRAIC(:,62) = (ALGEBRAIC(:,53) - ALGEBRAIC(:,54))./CONSTANTS(:,76); ALGEBRAIC(:,92) = CONSTANTS(:,137).*(STATES(:,36) - CONSTANTS(:,136)); ALGEBRAIC(:,93) = (ALGEBRAIC(:,53) - ALGEBRAIC(:,92))./CONSTANTS(:,113); RATES(:,20) = (ALGEBRAIC(:,61) - ALGEBRAIC(:,62)) - ALGEBRAIC(:,93); ALGEBRAIC(:,87) = CONSTANTS(:,127).*(STATES(:,34) - CONSTANTS(:,126)); ALGEBRAIC(:,89) = (ALGEBRAIC(:,73) - ALGEBRAIC(:,87))./CONSTANTS(:,125); ALGEBRAIC(:,90) = CONSTANTS(:,132).*(STATES(:,35) - CONSTANTS(:,131)); ALGEBRAIC(:,91) = (ALGEBRAIC(:,73) - ALGEBRAIC(:,90))./CONSTANTS(:,130); ALGEBRAIC(:,94) = (ALGEBRAIC(:,73) - ALGEBRAIC(:,92))./CONSTANTS(:,135); RATES(:,27) = ((ALGEBRAIC(:,74) - ALGEBRAIC(:,89)) - ALGEBRAIC(:,91)) - ALGEBRAIC(:,94); ALGEBRAIC(:,83) = CONSTANTS(:,116).*(STATES(:,32) - CONSTANTS(:,115)); ALGEBRAIC(:,84) = (ALGEBRAIC(:,71) - ALGEBRAIC(:,83))./CONSTANTS(:,114); ALGEBRAIC(:,95) = CONSTANTS(:,141).*(STATES(:,37) - CONSTANTS(:,140)); ALGEBRAIC(:,96) = (ALGEBRAIC(:,83) - ALGEBRAIC(:,95))./CONSTANTS(:,118); RATES(:,32) = ALGEBRAIC(:,84) - ALGEBRAIC(:,96); ALGEBRAIC(:,85) = CONSTANTS(:,121).*(STATES(:,33) - CONSTANTS(:,120)); ALGEBRAIC(:,86) = (ALGEBRAIC(:,71) - ALGEBRAIC(:,85))./CONSTANTS(:,119); ALGEBRAIC(:,97) = (ALGEBRAIC(:,85) - ALGEBRAIC(:,95))./CONSTANTS(:,123); RATES(:,33) = ALGEBRAIC(:,86) - ALGEBRAIC(:,97); ALGEBRAIC(:,88) = (ALGEBRAIC(:,71) - ALGEBRAIC(:,87))./CONSTANTS(:,124); ALGEBRAIC(:,98) = (ALGEBRAIC(:,87) - ALGEBRAIC(:,95))./CONSTANTS(:,129); RATES(:,34) = (ALGEBRAIC(:,88)+ALGEBRAIC(:,89)) - ALGEBRAIC(:,98); ALGEBRAIC(:,99) = (ALGEBRAIC(:,90) - ALGEBRAIC(:,95))./CONSTANTS(:,134); RATES(:,35) = ALGEBRAIC(:,91) - ALGEBRAIC(:,99); ALGEBRAIC(:,100) = (ALGEBRAIC(:,92) - ALGEBRAIC(:,95))./CONSTANTS(:,139); RATES(:,36) = (ALGEBRAIC(:,94)+ALGEBRAIC(:,93)) - ALGEBRAIC(:,100); ALGEBRAIC(:,101) = CONSTANTS(:,146).*(STATES(:,38) - CONSTANTS(:,145)); ALGEBRAIC(:,102) = (ALGEBRAIC(:,95) - ALGEBRAIC(:,101))./CONSTANTS(:,143); RATES(:,37) = (ALGEBRAIC(:,96)+ALGEBRAIC(:,97)+ALGEBRAIC(:,98)+ALGEBRAIC(:,99)+ALGEBRAIC(:,100)) - ALGEBRAIC(:,102); ALGEBRAIC(:,103) = (ALGEBRAIC(:,71) - ALGEBRAIC(:,101))./CONSTANTS(:,144); RATES(:,26) = (((ALGEBRAIC(:,72) - ALGEBRAIC(:,103)) - ALGEBRAIC(:,84)) - ALGEBRAIC(:,86)) - ALGEBRAIC(:,88); ALGEBRAIC(:,104) = CONSTANTS(:,155).*(STATES(:,39) - CONSTANTS(:,149)); ALGEBRAIC(:,105) = (ALGEBRAIC(:,65) - ALGEBRAIC(:,104))./CONSTANTS(:,83); RATES(:,23) = ALGEBRAIC(:,66) - ALGEBRAIC(:,105); ALGEBRAIC(:,106) = CONSTANTS(:,156).*(STATES(:,40) - CONSTANTS(:,150)); ALGEBRAIC(:,107) = (ALGEBRAIC(:,69) - ALGEBRAIC(:,106))./CONSTANTS(:,90); RATES(:,25) = ALGEBRAIC(:,70) - ALGEBRAIC(:,107); ALGEBRAIC(:,108) = CONSTANTS(:,157).*(STATES(:,41) - CONSTANTS(:,151)); ALGEBRAIC(:,109) = (ALGEBRAIC(:,101) - ALGEBRAIC(:,108))./CONSTANTS(:,148); RATES(:,38) = (ALGEBRAIC(:,103)+ALGEBRAIC(:,102)) - ALGEBRAIC(:,109); ALGEBRAIC(:,110) = CONSTANTS(:,158).*(STATES(:,42) - CONSTANTS(:,152)); ALGEBRAIC(:,111) = (ALGEBRAIC(:,77) - ALGEBRAIC(:,110))./CONSTANTS(:,105); RATES(:,29) = ALGEBRAIC(:,78) - ALGEBRAIC(:,111); ALGEBRAIC(:,112) = CONSTANTS(:,159).*(STATES(:,43) - CONSTANTS(:,153)); ALGEBRAIC(:,113) = (ALGEBRAIC(:,81) - ALGEBRAIC(:,112))./CONSTANTS(:,112); RATES(:,31) = ALGEBRAIC(:,82) - ALGEBRAIC(:,113); ALGEBRAIC(:,115) = (ALGEBRAIC(:,104) - ALGEBRAIC(:,15))./CONSTANTS(:,161); RATES(:,4) = (ALGEBRAIC(:,40)+ALGEBRAIC(:,43)+ALGEBRAIC(:,46)+ALGEBRAIC(:,115)) - ALGEBRAIC(:,17); ALGEBRAIC(:,116) = (ALGEBRAIC(:,106) - ALGEBRAIC(:,104))./CONSTANTS(:,162); RATES(:,39) = (ALGEBRAIC(:,116)+ALGEBRAIC(:,105)) - ALGEBRAIC(:,115); ALGEBRAIC(:,117) = (ALGEBRAIC(:,108) - ALGEBRAIC(:,106))./CONSTANTS(:,163); RATES(:,40) = (ALGEBRAIC(:,117)+ALGEBRAIC(:,107)) - ALGEBRAIC(:,116); ALGEBRAIC(:,118) = (ALGEBRAIC(:,110) - ALGEBRAIC(:,108))./CONSTANTS(:,164); RATES(:,41) = (ALGEBRAIC(:,118)+ALGEBRAIC(:,109)) - ALGEBRAIC(:,117); ALGEBRAIC(:,119) = (ALGEBRAIC(:,112) - ALGEBRAIC(:,110))./CONSTANTS(:,165); RATES(:,42) = (ALGEBRAIC(:,119)+ALGEBRAIC(:,111)) - ALGEBRAIC(:,118); ALGEBRAIC(:,114) = CONSTANTS(:,160).*(STATES(:,44) - CONSTANTS(:,154)); ALGEBRAIC(:,120) = (ALGEBRAIC(:,114) - ALGEBRAIC(:,112))./CONSTANTS(:,166); RATES(:,43) = (ALGEBRAIC(:,120)+ALGEBRAIC(:,113)) - ALGEBRAIC(:,119); ALGEBRAIC(:,121) = CONSTANTS(:,169).*(STATES(:,45) - CONSTANTS(:,168)); ALGEBRAIC(:,122) = (ALGEBRAIC(:,54) - ALGEBRAIC(:,121))./CONSTANTS(:,167); ALGEBRAIC(:,123) = (ALGEBRAIC(:,121) - ALGEBRAIC(:,114))./CONSTANTS(:,170); RATES(:,45) = ALGEBRAIC(:,122) - ALGEBRAIC(:,123); ALGEBRAIC(:,124) = CONSTANTS(:,173).*(STATES(:,46) - CONSTANTS(:,172)); ALGEBRAIC(:,125) = (ALGEBRAIC(:,54) - ALGEBRAIC(:,124))./CONSTANTS(:,171); RATES(:,21) = (ALGEBRAIC(:,62) - ALGEBRAIC(:,122)) - ALGEBRAIC(:,125); ALGEBRAIC(:,126) = (ALGEBRAIC(:,124) - ALGEBRAIC(:,114))./CONSTANTS(:,174); RATES(:,44) = (ALGEBRAIC(:,123)+ALGEBRAIC(:,126)) - ALGEBRAIC(:,120); RATES(:,46) = ALGEBRAIC(:,125) - ALGEBRAIC(:,126); RATES = RATES'; end % Calculate algebraic variables function ALGEBRAIC = computeAlgebraic(ALGEBRAIC, CONSTANTS, STATES, VOI) statesSize = size(STATES); statesColumnCount = statesSize(2); if ( statesColumnCount == 1) STATES = STATES'; utilOnes = 1; else statesRowCount = statesSize(1); utilOnes = ones(statesRowCount, 1); end ALGEBRAIC(:,3) = VOI./CONSTANTS(:,4) - floor(VOI./CONSTANTS(:,4)); ALGEBRAIC(:,5) = piecewise({ALGEBRAIC(:,3)<0.400000, (( (CONSTANTS(:,8) - CONSTANTS(:,9)).*ALGEBRAIC(:,3))./CONSTANTS(:,6)).*exp( 0.500000.*(1.00000 - power(ALGEBRAIC(:,3)./CONSTANTS(:,6), 2.00000)))+CONSTANTS(:,9) , ALGEBRAIC(:,3)<0.600000, (( (CONSTANTS(:,8) - CONSTANTS(:,9)).*0.400000)./CONSTANTS(:,6)).*exp( 0.500000.*(1.00000 - power(0.400000./CONSTANTS(:,6), 2.00000)))+CONSTANTS(:,9) }, CONSTANTS(:,9)); ALGEBRAIC(:,7) = ALGEBRAIC(:,5).*(STATES(:,1) - CONSTANTS(:,7)); ALGEBRAIC(:,22) = CONSTANTS(:,28).*(STATES(:,7) - CONSTANTS(:,27)); ALGEBRAIC(:,25) = piecewise({ALGEBRAIC(:,7)>ALGEBRAIC(:,22), (ALGEBRAIC(:,7) - ALGEBRAIC(:,22))./CONSTANTS(:,17) }, 0.00000); ALGEBRAIC(:,13) = CONSTANTS(:,14).*(STATES(:,3) - CONSTANTS(:,13)); ALGEBRAIC(:,19) = piecewise({ALGEBRAIC(:,13)>ALGEBRAIC(:,7), (ALGEBRAIC(:,13) - ALGEBRAIC(:,7))./CONSTANTS(:,20) }, 0.00000); ALGEBRAIC(:,9) = piecewise({ALGEBRAIC(:,3)<0.400000, (( (CONSTANTS(:,11) - CONSTANTS(:,12)).*ALGEBRAIC(:,3))./CONSTANTS(:,6)).*exp( 0.500000.*(1.00000 - power(ALGEBRAIC(:,3)./CONSTANTS(:,6), 2.00000)))+CONSTANTS(:,12) , ALGEBRAIC(:,3)<0.600000, (( (CONSTANTS(:,11) - CONSTANTS(:,12)).*0.400000)./CONSTANTS(:,6)).*exp( 0.500000.*(1.00000 - power(0.400000./CONSTANTS(:,6), 2.00000)))+CONSTANTS(:,12) }, CONSTANTS(:,12)); ALGEBRAIC(:,11) = ALGEBRAIC(:,9).*(STATES(:,2) - CONSTANTS(:,10)); ALGEBRAIC(:,21) = CONSTANTS(:,22).*(STATES(:,5) - CONSTANTS(:,21)); ALGEBRAIC(:,24) = piecewise({ALGEBRAIC(:,11)>ALGEBRAIC(:,21), (ALGEBRAIC(:,11) - ALGEBRAIC(:,21))./CONSTANTS(:,18) }, 0.00000); ALGEBRAIC(:,15) = CONSTANTS(:,16).*(STATES(:,4) - CONSTANTS(:,15)); ALGEBRAIC(:,17) = piecewise({ALGEBRAIC(:,15)>ALGEBRAIC(:,11), (ALGEBRAIC(:,15) - ALGEBRAIC(:,11))./CONSTANTS(:,19) }, 0.00000); ALGEBRAIC(:,26) = CONSTANTS(:,25).*(STATES(:,6) - CONSTANTS(:,24)); ALGEBRAIC(:,28) = (ALGEBRAIC(:,21) - ALGEBRAIC(:,26))./CONSTANTS(:,23); ALGEBRAIC(:,30) = (ALGEBRAIC(:,26) - ALGEBRAIC(:,13))./CONSTANTS(:,26); ALGEBRAIC(:,27) = CONSTANTS(:,31).*(STATES(:,8) - CONSTANTS(:,30)); ALGEBRAIC(:,29) = (ALGEBRAIC(:,22) - ALGEBRAIC(:,27))./CONSTANTS(:,29); ALGEBRAIC(:,31) = CONSTANTS(:,35).*(STATES(:,9) - CONSTANTS(:,34)); ALGEBRAIC(:,32) = (ALGEBRAIC(:,27) - ALGEBRAIC(:,31))./CONSTANTS(:,32); ALGEBRAIC(:,35) = CONSTANTS(:,45).*(STATES(:,11) - CONSTANTS(:,44)); ALGEBRAIC(:,36) = (ALGEBRAIC(:,27) - ALGEBRAIC(:,35))./CONSTANTS(:,33); ALGEBRAIC(:,37) = (ALGEBRAIC(:,31) - ALGEBRAIC(:,35))./CONSTANTS(:,37); ALGEBRAIC(:,38) = (ALGEBRAIC(:,22) - ALGEBRAIC(:,35))./CONSTANTS(:,38); ALGEBRAIC(:,33) = CONSTANTS(:,41).*(STATES(:,10) - CONSTANTS(:,40)); ALGEBRAIC(:,39) = (ALGEBRAIC(:,33) - ALGEBRAIC(:,35))./CONSTANTS(:,43); ALGEBRAIC(:,40) = (ALGEBRAIC(:,35) - ALGEBRAIC(:,15))./CONSTANTS(:,46); ALGEBRAIC(:,34) = (ALGEBRAIC(:,22) - ALGEBRAIC(:,33))./CONSTANTS(:,39); ALGEBRAIC(:,41) = CONSTANTS(:,48).*(STATES(:,12) - CONSTANTS(:,47)); ALGEBRAIC(:,42) = (ALGEBRAIC(:,33) - ALGEBRAIC(:,41))./CONSTANTS(:,42); ALGEBRAIC(:,43) = (ALGEBRAIC(:,41) - ALGEBRAIC(:,15))./CONSTANTS(:,49); ALGEBRAIC(:,44) = CONSTANTS(:,51).*(STATES(:,13) - CONSTANTS(:,50)); ALGEBRAIC(:,45) = (ALGEBRAIC(:,31) - ALGEBRAIC(:,44))./CONSTANTS(:,36); ALGEBRAIC(:,46) = (ALGEBRAIC(:,44) - ALGEBRAIC(:,15))./CONSTANTS(:,52); ALGEBRAIC(:,47) = CONSTANTS(:,61).*(STATES(:,14) - CONSTANTS(:,53)); ALGEBRAIC(:,55) = (ALGEBRAIC(:,22) - ALGEBRAIC(:,47))./CONSTANTS(:,69); ALGEBRAIC(:,48) = CONSTANTS(:,62).*(STATES(:,15) - CONSTANTS(:,54)); ALGEBRAIC(:,56) = (ALGEBRAIC(:,47) - ALGEBRAIC(:,48))./CONSTANTS(:,70); ALGEBRAIC(:,63) = CONSTANTS(:,79).*(STATES(:,22) - CONSTANTS(:,78)); ALGEBRAIC(:,64) = (ALGEBRAIC(:,47) - ALGEBRAIC(:,63))./CONSTANTS(:,77); ALGEBRAIC(:,65) = CONSTANTS(:,82).*(STATES(:,23) - CONSTANTS(:,81)); ALGEBRAIC(:,66) = (ALGEBRAIC(:,63) - ALGEBRAIC(:,65))./CONSTANTS(:,80); ALGEBRAIC(:,49) = CONSTANTS(:,63).*(STATES(:,16) - CONSTANTS(:,55)); ALGEBRAIC(:,57) = (ALGEBRAIC(:,48) - ALGEBRAIC(:,49))./CONSTANTS(:,71); ALGEBRAIC(:,67) = CONSTANTS(:,86).*(STATES(:,24) - CONSTANTS(:,85)); ALGEBRAIC(:,68) = (ALGEBRAIC(:,48) - ALGEBRAIC(:,67))./CONSTANTS(:,84); ALGEBRAIC(:,69) = CONSTANTS(:,89).*(STATES(:,25) - CONSTANTS(:,88)); ALGEBRAIC(:,70) = (ALGEBRAIC(:,67) - ALGEBRAIC(:,69))./CONSTANTS(:,87); ALGEBRAIC(:,50) = CONSTANTS(:,64).*(STATES(:,17) - CONSTANTS(:,56)); ALGEBRAIC(:,58) = (ALGEBRAIC(:,49) - ALGEBRAIC(:,50))./CONSTANTS(:,72); ALGEBRAIC(:,71) = CONSTANTS(:,93).*(STATES(:,26) - CONSTANTS(:,92)); ALGEBRAIC(:,72) = (ALGEBRAIC(:,49) - ALGEBRAIC(:,71))./CONSTANTS(:,91); ALGEBRAIC(:,51) = CONSTANTS(:,65).*(STATES(:,18) - CONSTANTS(:,57)); ALGEBRAIC(:,59) = (ALGEBRAIC(:,50) - ALGEBRAIC(:,51))./CONSTANTS(:,73); ALGEBRAIC(:,73) = CONSTANTS(:,97).*(STATES(:,27) - CONSTANTS(:,96)); ALGEBRAIC(:,74) = (ALGEBRAIC(:,50) - ALGEBRAIC(:,73))./CONSTANTS(:,95); ALGEBRAIC(:,52) = CONSTANTS(:,66).*(STATES(:,19) - CONSTANTS(:,58)); ALGEBRAIC(:,60) = (ALGEBRAIC(:,51) - ALGEBRAIC(:,52))./CONSTANTS(:,74); ALGEBRAIC(:,75) = CONSTANTS(:,101).*(STATES(:,28) - CONSTANTS(:,100)); ALGEBRAIC(:,76) = (ALGEBRAIC(:,51) - ALGEBRAIC(:,75))./CONSTANTS(:,99); ALGEBRAIC(:,77) = CONSTANTS(:,104).*(STATES(:,29) - CONSTANTS(:,103)); ALGEBRAIC(:,78) = (ALGEBRAIC(:,75) - ALGEBRAIC(:,77))./CONSTANTS(:,102); ALGEBRAIC(:,53) = CONSTANTS(:,67).*(STATES(:,20) - CONSTANTS(:,59)); ALGEBRAIC(:,61) = (ALGEBRAIC(:,52) - ALGEBRAIC(:,53))./CONSTANTS(:,75); ALGEBRAIC(:,79) = CONSTANTS(:,108).*(STATES(:,30) - CONSTANTS(:,107)); ALGEBRAIC(:,80) = (ALGEBRAIC(:,52) - ALGEBRAIC(:,79))./CONSTANTS(:,106); ALGEBRAIC(:,81) = CONSTANTS(:,111).*(STATES(:,31) - CONSTANTS(:,110)); ALGEBRAIC(:,82) = (ALGEBRAIC(:,79) - ALGEBRAIC(:,81))./CONSTANTS(:,109); ALGEBRAIC(:,54) = CONSTANTS(:,68).*(STATES(:,21) - CONSTANTS(:,60)); ALGEBRAIC(:,62) = (ALGEBRAIC(:,53) - ALGEBRAIC(:,54))./CONSTANTS(:,76); ALGEBRAIC(:,92) = CONSTANTS(:,137).*(STATES(:,36) - CONSTANTS(:,136)); ALGEBRAIC(:,93) = (ALGEBRAIC(:,53) - ALGEBRAIC(:,92))./CONSTANTS(:,113); ALGEBRAIC(:,87) = CONSTANTS(:,127).*(STATES(:,34) - CONSTANTS(:,126)); ALGEBRAIC(:,89) = (ALGEBRAIC(:,73) - ALGEBRAIC(:,87))./CONSTANTS(:,125); ALGEBRAIC(:,90) = CONSTANTS(:,132).*(STATES(:,35) - CONSTANTS(:,131)); ALGEBRAIC(:,91) = (ALGEBRAIC(:,73) - ALGEBRAIC(:,90))./CONSTANTS(:,130); ALGEBRAIC(:,94) = (ALGEBRAIC(:,73) - ALGEBRAIC(:,92))./CONSTANTS(:,135); ALGEBRAIC(:,83) = CONSTANTS(:,116).*(STATES(:,32) - CONSTANTS(:,115)); ALGEBRAIC(:,84) = (ALGEBRAIC(:,71) - ALGEBRAIC(:,83))./CONSTANTS(:,114); ALGEBRAIC(:,95) = CONSTANTS(:,141).*(STATES(:,37) - CONSTANTS(:,140)); ALGEBRAIC(:,96) = (ALGEBRAIC(:,83) - ALGEBRAIC(:,95))./CONSTANTS(:,118); ALGEBRAIC(:,85) = CONSTANTS(:,121).*(STATES(:,33) - CONSTANTS(:,120)); ALGEBRAIC(:,86) = (ALGEBRAIC(:,71) - ALGEBRAIC(:,85))./CONSTANTS(:,119); ALGEBRAIC(:,97) = (ALGEBRAIC(:,85) - ALGEBRAIC(:,95))./CONSTANTS(:,123); ALGEBRAIC(:,88) = (ALGEBRAIC(:,71) - ALGEBRAIC(:,87))./CONSTANTS(:,124); ALGEBRAIC(:,98) = (ALGEBRAIC(:,87) - ALGEBRAIC(:,95))./CONSTANTS(:,129); ALGEBRAIC(:,99) = (ALGEBRAIC(:,90) - ALGEBRAIC(:,95))./CONSTANTS(:,134); ALGEBRAIC(:,100) = (ALGEBRAIC(:,92) - ALGEBRAIC(:,95))./CONSTANTS(:,139); ALGEBRAIC(:,101) = CONSTANTS(:,146).*(STATES(:,38) - CONSTANTS(:,145)); ALGEBRAIC(:,102) = (ALGEBRAIC(:,95) - ALGEBRAIC(:,101))./CONSTANTS(:,143); ALGEBRAIC(:,103) = (ALGEBRAIC(:,71) - ALGEBRAIC(:,101))./CONSTANTS(:,144); ALGEBRAIC(:,104) = CONSTANTS(:,155).*(STATES(:,39) - CONSTANTS(:,149)); ALGEBRAIC(:,105) = (ALGEBRAIC(:,65) - ALGEBRAIC(:,104))./CONSTANTS(:,83); ALGEBRAIC(:,106) = CONSTANTS(:,156).*(STATES(:,40) - CONSTANTS(:,150)); ALGEBRAIC(:,107) = (ALGEBRAIC(:,69) - ALGEBRAIC(:,106))./CONSTANTS(:,90); ALGEBRAIC(:,108) = CONSTANTS(:,157).*(STATES(:,41) - CONSTANTS(:,151)); ALGEBRAIC(:,109) = (ALGEBRAIC(:,101) - ALGEBRAIC(:,108))./CONSTANTS(:,148); ALGEBRAIC(:,110) = CONSTANTS(:,158).*(STATES(:,42) - CONSTANTS(:,152)); ALGEBRAIC(:,111) = (ALGEBRAIC(:,77) - ALGEBRAIC(:,110))./CONSTANTS(:,105); ALGEBRAIC(:,112) = CONSTANTS(:,159).*(STATES(:,43) - CONSTANTS(:,153)); ALGEBRAIC(:,113) = (ALGEBRAIC(:,81) - ALGEBRAIC(:,112))./CONSTANTS(:,112); ALGEBRAIC(:,115) = (ALGEBRAIC(:,104) - ALGEBRAIC(:,15))./CONSTANTS(:,161); ALGEBRAIC(:,116) = (ALGEBRAIC(:,106) - ALGEBRAIC(:,104))./CONSTANTS(:,162); ALGEBRAIC(:,117) = (ALGEBRAIC(:,108) - ALGEBRAIC(:,106))./CONSTANTS(:,163); ALGEBRAIC(:,118) = (ALGEBRAIC(:,110) - ALGEBRAIC(:,108))./CONSTANTS(:,164); ALGEBRAIC(:,119) = (ALGEBRAIC(:,112) - ALGEBRAIC(:,110))./CONSTANTS(:,165); ALGEBRAIC(:,114) = CONSTANTS(:,160).*(STATES(:,44) - CONSTANTS(:,154)); ALGEBRAIC(:,120) = (ALGEBRAIC(:,114) - ALGEBRAIC(:,112))./CONSTANTS(:,166); ALGEBRAIC(:,121) = CONSTANTS(:,169).*(STATES(:,45) - CONSTANTS(:,168)); ALGEBRAIC(:,122) = (ALGEBRAIC(:,54) - ALGEBRAIC(:,121))./CONSTANTS(:,167); ALGEBRAIC(:,123) = (ALGEBRAIC(:,121) - ALGEBRAIC(:,114))./CONSTANTS(:,170); ALGEBRAIC(:,124) = CONSTANTS(:,173).*(STATES(:,46) - CONSTANTS(:,172)); ALGEBRAIC(:,125) = (ALGEBRAIC(:,54) - ALGEBRAIC(:,124))./CONSTANTS(:,171); ALGEBRAIC(:,126) = (ALGEBRAIC(:,124) - ALGEBRAIC(:,114))./CONSTANTS(:,174); ALGEBRAIC(:,1) = piecewise({VOI>100.000&VOI<101.000, 1.00000 }, 0.00000); ALGEBRAIC(:,2) = (VOI./CONSTANTS(:,4) - CONSTANTS(:,5)) - floor((VOI - CONSTANTS(:,5).*CONSTANTS(:,4))./CONSTANTS(:,4)); ALGEBRAIC(:,4) = STATES(:,4)+STATES(:,2)+STATES(:,3)+STATES(:,1); ALGEBRAIC(:,6) = STATES(:,6)+STATES(:,5); ALGEBRAIC(:,8) = STATES(:,8)+STATES(:,9)+STATES(:,10)+STATES(:,11); ALGEBRAIC(:,10) = STATES(:,22)+STATES(:,23)+STATES(:,24)+STATES(:,25); ALGEBRAIC(:,12) = STATES(:,7)+STATES(:,14)+STATES(:,15)+STATES(:,16)+STATES(:,17)+STATES(:,18)+STATES(:,19)+STATES(:,20)+STATES(:,21); ALGEBRAIC(:,14) = STATES(:,28)+STATES(:,29)+STATES(:,30)+STATES(:,31); ALGEBRAIC(:,16) = STATES(:,26)+STATES(:,27)+STATES(:,32)+STATES(:,33)+STATES(:,34)+STATES(:,35)+STATES(:,36)+STATES(:,37)+STATES(:,38); ALGEBRAIC(:,18) = STATES(:,39)+STATES(:,40)+STATES(:,41)+STATES(:,42)+STATES(:,43)+STATES(:,44); ALGEBRAIC(:,20) = STATES(:,12)+STATES(:,13)+STATES(:,45)+STATES(:,46); ALGEBRAIC(:,23) = ALGEBRAIC(:,4)+ALGEBRAIC(:,6)+(ALGEBRAIC(:,8))+ALGEBRAIC(:,10)+ALGEBRAIC(:,12)+ALGEBRAIC(:,14)+ALGEBRAIC(:,16)+ALGEBRAIC(:,18)+ALGEBRAIC(:,20); end % Compute result of a piecewise function function x = piecewise(cases, default) set = [0]; for i = 1:2:length(cases) if (length(cases{i+1}) == 1) x(cases{i} & ~set,:) = cases{i+1}; else x(cases{i} & ~set,:) = cases{i+1}(cases{i} & ~set); end set = set | cases{i}; if(set), break, end end if (length(default) == 1) x(~set,:) = default; else x(~set,:) = default(~set); end end % Pad out or shorten strings to a set length function strout = strpad(strin) req_length = 160; insize = size(strin,2); if insize > req_length strout = strin(1:req_length); else strout = [strin, blanks(req_length - insize)]; end end