MIT-LAE / TASOPT.jl

Medium fidelity aircraft-propulsion system design and optimization.
https://mit-lae.github.io/TASOPT.jl/
MIT License
21 stars 12 forks source link

Setting ieepolhc before sizing makes each mission point the same #45

Open sareider opened 2 months ago

sareider commented 2 months ago

@argonaut22 @askprash

After setting ieepolhc and sizing the aircraft, each the values should change across the compressor map for each mission point, but they do not. See code example:

comp_poly_effs = [0.9, 0.95, 1]
    for comp_poly_eff in comp_poly_effs
        ac.pare[10,:,:] .= comp_poly_eff
        ac.pare[11,:,:] .= comp_poly_eff
        # Sizing aircraft and storing desired data
        size_aircraft!(ac)
        output_csv(ac, csv_dest, indices=output_indices_all, includeFlightPoints=true)
    end

Where the output of the first row of column ['ieepolhc'] is

array([0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9,
       0.9, 0.9, 0.9, 0.9])
askprash commented 2 months ago

Initial thought was that the par array's weren't being updated with the efficiency values but it looks like they are here: https://github.com/MIT-LAE/TASOPT.jl/blob/27cd90758c32fff65c30331e51c05afa3eab73c8/src/engine/tfcalc.jl#L693-L696

Need to look into the emap functions...

askprash commented 2 weeks ago

@sareider found the problem lines here: https://github.com/MIT-LAE/TASOPT.jl/blob/b02a90b58c2cf9cad655b204cd9c015a57d5623e/src/engine/tfoper.jl#L241-L245

The constants C, D are set to zero which makes the efficiency always equal to the max design efficiency: https://github.com/MIT-LAE/TASOPT.jl/blob/b02a90b58c2cf9cad655b204cd9c015a57d5623e/src/engine/tfmap.jl#L180-L182

The original FORTRAN code has these values in tfmap.inc (below) from what looks to be some tests of fixed efficiency with some tables commented out.


      real Cmapf(9), Cmapl(9), Cmaph(9)
      real Tmapl(2), Tmaph(2)

c----              a     b     k     mo     da    c    d     C    D
ccc   data Cmapf / 3.50, 0.80, 0.03, 0.75, -0.50, 3.0, 6.0,  2.5, 15.0 /
ccc   data Cmapl / 2.50, 1.00, 0.03, 0.75, -0.20, 3.0, 5.5,  4.0,  6.0 /
ccc   data Cmaph / 1.75, 2.00, 0.03, 0.75, -0.35, 3.0, 5.0, 10.5,  3.0 /

c      data Cmapf / 3.50, 0.80, 0.03, 0.95, -0.50, 3.0, 6.0,  2.5, 15.0 /
c      data Cmapl / 1.90, 1.00, 0.03, 0.95, -0.20, 3.0, 5.5,  0.5,  6.0 /
c      data Cmaph / 1.75, 2.00, 0.03, 0.95, -0.35, 3.0, 5.0, 10.5,  3.0 /

      data Cmapf / 3.50, 0.80, 0.03, 0.95, -0.50, 3.0, 6.0,  0.0,  0.0 /
      data Cmapl / 1.90, 1.00, 0.03, 0.95, -0.20, 3.0, 5.5,  0.0,  0.0 /
      data Cmaph / 1.75, 2.00, 0.03, 0.95, -0.35, 3.0, 5.0,  0.0,  0.0 /

c----              Pcon   Ncon
      data Tmapl / 0.15 , 0.15 /
      data Tmaph / 0.15 , 0.15 /

The fix for this is to update the Cmap array above. But since the origin is a little unclear (and don't match exactly what's in the pdf documentation of the FORTRAN code) @sareider has kindly agreed to fix this and refit the map to the actual E3 compressor data!