Skip to content

Latest commit

 

History

History
123 lines (80 loc) · 2.48 KB

Readme.md

File metadata and controls

123 lines (80 loc) · 2.48 KB

GTEngine

Build Status Code Climate

Math models of gas turbine engine and its parts made with ruby language

Usage

Add gem to your gemfile

gem 'gtengine'

and run

bundle

Simple

For simple parts calculation:

gas = Gtengine::Gas.new(300, 101325)

k = Gtengine::Simple::Compressor.new(gas, 4.5)
b = Gtengine::Simple::Burner.new(k.output, 1500)
t = Gtengine::Simple::Turbine.new(b, k.l_k)

k.info; b.info; t.info

To play with cycle (compressor -> burner -> turbine)

require_relative 'lib/gtengine'
gas = Gtengine::Gas.new(300, 101325)

c = Gtengine::Simple::Cycle.new(gas, 20, 1500.0)

c.compressor.info; c.burner.info; c.turbine.info; c.info

To play with pi_k optimization

require_relative 'lib/gtengine'
gas = Gtengine::Gas.new(300, 101325)

opt = Gtengine::Simple::PikOptimizer.new(gas, 3, 40, 1500, 1)
opt.info

Cycle research with T_g and pik

require_relative 'lib/gtengine'
gas = Gtengine::Gas.new(300, 101325)

res = [900, 1000, 1100, 1200, 1300, 1400, 1500].inject({}) do |memo, t_g|
  opt = Gtengine::Simple::PikOptimizer.new(gas, 3, 40, t_g, 1)
  memo.merge(t_g.to_s => opt.optimal.pi_k)
end
puts res

Compressor

Compressor initializer gets 3 arguments as input:

Gtengine::Simple::Compressor.new(gas, pi_k, options)

where:

  • gas - is gas state, as Gtengine::Gas class
  • pi_k - is pi_k
  • options - is a hash of options, defaults are:
    DEFAULTS = {
      kpd: 0.85
    }

Burner

Burner initializer gets 3 arguments as input:

Gtengine::Simple::Burner.new(gas, t_g, options)

where:

  • gas - is gas state, as Gtengine::Gas class
  • t_g - is t_g
  • options - is a hash of options, defaults are:
    DEFAULTS = {
      t_0: 288.3,
      q_n: 43000000.0,
      eta_g: 0.985,
      l_0: 14.7
    }

Turbine

Turbine initializer gets 3 arguments as input:

Gtengine::Simple::Turbine.new(burner, l_k, options)

where:

  • burner - is burner, as Gtengine::Simple::Burner class
  • l_k - is l_k
  • options - is a hash of options, defaults are:
    DEFAULTS = {
      eta: 0.9,
      eta_m: 0.985,
      g_ohl: 0.001,
      kpd: 0.9
    }

Requirements

* Ruby 2.0.0 or newer

Copyright

Copyright © 2014 Oleg Bovykin. See LICENSE for details.