From f3594bf3dcfc9aa360ad78e2e97431884c67b277 Mon Sep 17 00:00:00 2001 From: Anson Biggs Date: Mon, 22 Mar 2021 11:39:26 -0700 Subject: [PATCH] make plot prettier --- ThrustCurve.png | Bin 15200 -> 16233 bytes thrust.jl | 18 +++++++++++++++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/ThrustCurve.png b/ThrustCurve.png index f004877799b22eb89273a833dee1cc3905f25fed..6b336c4032717be3aaa42a25e40ca83bbd53b0b8 100644 GIT binary patch literal 16233 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

QrP%Qh?caVSQ{?}ZIlu5+W z?M)6E_D}HTy?AkZ`0;3^P3oX!{qQBAZ>rq)d9wLY&V&-wGU%yt&y)SRxm2$c{Rn0z zrmh73MVJ-e!e?EE^wyqd^$&1EC(J7LC{Z;Cki?TWbF(}#Z>WR5IOD`mEX~e;xGvb zXciQSHy**G)|}v>yL1T*V>|v}$N=W$FF>v2$r~tIf9SXL|G*N1PZ}a`e}4|vVjB_T zVblmlCg2B>HXvUZR%2vj^z-)zVfi2d?$vcka0K zy??L-ceg4I(;u+G3Uta}cg%plTvkr*DQ$wN%LarRjKv8}JVl+r6RMMa_Uzfcd;fqX zB3>ROd2rP&!30--e?RQYBami0A^E^21PTL@y3gRm~B2QpvVd_ay zPHqwG(V)N62+Tru+j6ZxP7s27u75e-2jgvCVAS5)+NvShM9eW+^T74>ED51ftx=zF zc7Bc9H0+y>`$O7b_M?{YJOY344ZpheuT(pMUn6Lh(EIDHw4=4m(GN1dcLMG#Emh4? z?@ko#X)uM$*VX+AJq*?Jm)M~*81vnE4kJh4LtcGk2tH-7Ea;R*pv2GAOP{G5hMQZi z1S<$DaqyCu6-59NaL=Ew0IlL6tOq5BkXq=8!5wDiS&+gA3?gaX8cGC@fY$~@3}sS& z$g!{U7h@1y0QCD=BkGhp(^1DxNhb(@#5bALnuK%EdIo1oms zAWWHv+dzg-)~*H}&o2@-Z4Dm06iI(y0GyH#1~A)IjJLT7=CV){5|VL!ZtqIKIeQgr zYilsOH~%|A0vy1QqQmuz8e!jqR~;Gj4Y;+tFnEideF?fTJHzelC!9|9bDyYS zjIN(gN@bgDXmRHkV|3fg{S6b}&qOpd$P+f2QKz4KgInP`mm>ZjFz6JD=2wBG;Cgv+rPJ37v}k;Lr?k|XMYl%ixI I=84b$0BxbZ9{>OV literal 15200 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 aX!~A#D4>1D{TB)_;)$djDqlk1_kRHO#Ighc diff --git a/thrust.jl b/thrust.jl index 7668d59..06ca7b0 100644 --- a/thrust.jl +++ b/thrust.jl @@ -1,9 +1,11 @@ using Unitful using DataFrames using Plots +theme(:ggplot2); using UnitfulRecipes using CSV using Measurements +using Measurements: value, uncertainty using Printf @@ -30,7 +32,7 @@ t = 0.0u"s" P = P0 |> u"Pa" M = V * (P / (R * T)) |> u"kg" ts = 1u"ms" -df = DataFrame(Thrust = (0 ± 0)u"N", Pressure = P, Time = t, Mass = M) +df = DataFrame(Thrust=(0 ± 0)u"N", Pressure=P, Time=t, Mass=M) while M > 0.005u"kg" # while t < 30u"s" @@ -47,7 +49,7 @@ while M > 0.005u"kg" P = (M * R * T) / V |> u"Pa" t = t + ts - df_step = DataFrame(Thrust = Thrust, Pressure = P, Time = t, Mass = M) + df_step = DataFrame(Thrust=Thrust, Pressure=P, Time=t, Mass=M) append!(df, df_step) end final_time = t |> u"s" @@ -61,7 +63,17 @@ println("Mass Total: ", Wtank + Wsolenoid + maximum(df.Mass)) print(describe(df)) -plot(df.Time[1:350:end], df.Thrust[1:350:end], title = "Thrust Over Time") +thrust_values = df.Thrust .|> ustrip .|> value +thrust_uncertainties = df.Thrust .|> ustrip .|> uncertainty + +plot(df.Time .|> ustrip, thrust_values, + title="Thrust Over Time", + ribbon=(thrust_uncertainties, thrust_uncertainties), + fillalpha=.2,label="Thrust", + xlabel="Time (s)", + ylabel="Thrust (N)", + palette=:leonardo, + ) ### Save data to readme.md