#!/usr/bin/env ruby cov_option = { :initQ => {:de => 1E-4}, :initR => {:tascg => 1E1, :alphacg => 1E-2, :q => 1E-4, :axcg => 5E+0, :azcg => 1E-1}} log_276815 = [276815.0, 276827.0, "elevator 3-2-1-1", {:sta => {:U0 => 17}}.merge(cov_option)] log_276887 = [276887.0, 276900.0, "elevator 3-2-1-1", {:sta => {:U0 => 18}}.merge(cov_option)] $si_logs = { "276815.csv" => [log_276815], "276887.csv" => [log_276887], "bj.si_in.csv" => [log_276815, log_276887] } # 080821_si/sim/longitunial.cppとmisc.hから求めたもの def d2r deg; deg / 180 * Math::PI; end def r2d rad; rad * 180 / Math::PI; end #desf = Math::hypot(d2r(-28.1) / (3868 - 3047), (d2r(25.39) / (2387 - 3047))) desf = 0.00025 # rad options = { :da => 1, :dasf => 1, :datrim => 0, #:de => 2, :desf => desf, :detrim => 3047, # シミュレータより :de => 2, :desf => desf, :detrim => 2910, # 相対的な角度でプロット :dt => 3, :dtsf => 1, :dttrim => 0, :dr => 4, :drsf => 1, :drtrim => 0,} # sf, trimとも写真判定 $si_options = { "276815.csv" => options, "276887.csv" => options, "bj.si_in.csv" => options } def derivatives_lng_property(options = {}) u0 = (options[:U0] || 20).to_f rho = 1.23 area = 0.249570 mass = 1.55 g = 9.81 r = 0.22 cD0 = 0.06 e = 0.7 ar = 5.579196217 c_bar = 0.2224885737 c_LA = 4.719392168 i_YY = mass * (r ** 2) cL = mass * g / (0.5 * rho * (u0 ** 2) * area) cD = cD0 + (cL ** 2) / (e * Math::PI * ar) c_XU_tp = cD * -2 t_req = mass * g / (cL / cD) c_XU = 2.0 / (rho * u0 * area) * (-t_req / u0) + c_XU_tp c_XA = cL * (1.0 - (c_LA * 2) / (e * Math::PI * ar)) c_ZU = 0 c_MU = 0 c_ZA = -4.719392168 c_MA = -0.320506551 c_MDE = -0.832913266 c_ZDE = -0.307888929 c_MQ = -9.38845748 c_ZQ = -3.470471941 c_MAA = -4.713629114 theta0 = (options[:theta0] || 0).to_f alpha0 = (options[:W0] || 0).to_f / u0 res = {} [:u0, :theta0, :alpha0, :rho, :area, :mass, :cL, :c_bar, :i_YY, :c_XU, :c_ZU, :c_MU, :c_XA, :c_ZA, :c_MA, :c_MAA, :c_ZQ, :c_MQ, :c_ZDE, :c_MDE].each{|k| res[k] = eval("#{k}") } return res end if __FILE__ == $0 then # ログを切り出して、画像を作る # 使う前にファイルが展開されているディレクトリに移動すること $: << File::join(File::dirname(__FILE__), "..", "080821_si") require 'log_si_runner' end