Bayesian Rotor Imbalance Tracking for Steam Turbines
Setup
# CPU only — no GPU required
System.put_env("EXLA_CPU_ONLY", "true")
System.put_env("CUDA_VISIBLE_DEVICES", "")
Mix.install([
{:exmc, path: Path.expand("../", __DIR__)},
{:exla, "~> 0.10"},
{:kino_vega_lite, "~> 0.1"}
])
Application.put_env(:exla, :clients, host: [platform: :host])
Application.put_env(:exla, :default_client, :host)
Nx.default_backend(Nx.BinaryBackend)
Nx.Defn.default_options(compiler: EXLA, client: :host)
[]
Why This Matters
A steam turbine vibrates. They all vibrate. The question is whether the vibration pattern reveals an imbalance mass — and if so, how large, at what angle, and how urgently it needs correction.
The traditional approach: an experienced technician reads a spectrum analyzer, recognizes the 1X signature, and makes a judgment call. This works until the technician retires, or until you have 200 turbines across six plants and can’t put a human in front of every spectrum.
The Bayesian approach: encode the physics of rotor dynamics as a probabilistic model. The imbalance mass and angle are unknown parameters. The vibration measurements are noisy observations. NUTS recovers the posterior — not “the imbalance is 12 grams at 45 degrees” but “the imbalance is 12 ± 3 grams at 45 ± 8 degrees, and here is the probability it exceeds the trip threshold.”
The Jeffcott Rotor Model
Every rotating machine vibrates. The dominant vibration at running speed (1X synchronous) is caused by mass imbalance — an uneven distribution of weight around the rotor centerline.
The Jeffcott rotor model predicts the 1X vibration amplitude from the physics:
$$A = \frac{U \cdot \omega^2}{\sqrt{(k - m\omega^2)^2 + (c\omega)^2}}$$
- U — imbalance magnitude (g-mm), the mass-eccentricity product
- omega — running speed (rad/s), measured by the keyphasor
- k — bearing/shaft stiffness (N/m), approximately known from design
- c — damping coefficient (N-s/m), approximately known from design
- m — rotor mass (kg), known from design
The question every turbine engineer asks: “How bad is the imbalance, and when do I need to balance?” Today this is answered by gut feel and fixed alarm thresholds. We answer it with a probability distribution.
alias VegaLite, as: Vl
alias Exmc.{Builder, NUTS.Sampler, Dist}
# --- Rotor design parameters (known from OEM data) ---
# Typical 50 MW steam turbine, 3600 RPM (60 Hz)
rotor_mass = 5000.0 # kg
omega = 3600.0 * 2 * :math.pi() / 60.0 # rad/s (376.99)
k_design = 2.0e8 # N/m (bearing stiffness, approximate)
c_design = 5.0e4 # N-s/m (damping coefficient, approximate)
# Show how imbalance magnitude affects vibration amplitude
imbalance_range = Enum.map(0..500, fn u -> u * 1.0 end)
amp_data =
Enum.map(imbalance_range, fn u ->
# Convert g-mm to kg-m: 1 g-mm = 1e-6 kg-m
u_si = u * 1.0e-6
denom = :math.sqrt(:math.pow(k_design - rotor_mass * omega * omega, 2) + :math.pow(c_design * omega, 2))
a_m = u_si * omega * omega / denom
# Convert to mils peak-to-peak (1 mil = 25.4 um, p-p = 2 * amplitude)
a_mils = a_m * 1.0e6 / 25.4 * 2.0
%{"imbalance_gmm" => u, "amplitude_mils" => a_mils}
end)
Vl.new(width: 700, height: 350, title: "Jeffcott Rotor: Vibration vs Imbalance at 3600 RPM")
|> Vl.data_from_values(amp_data)
|> Vl.mark(:line, stroke_width: 2, color: "#1f77b4")
|> Vl.encode_field(:x, "imbalance_gmm", type: :quantitative, title: "Imbalance U (g-mm)")
|> Vl.encode_field(:y, "amplitude_mils", type: :quantitative, title: "1X Vibration (mils p-p)")
{"$schema":"https://vega.github.io/schema/vega-lite/v5.json","data":{"values":[{"amplitude_mils":0.0,"imbalance_gmm":0.0},{"amplitude_mils":2.1901415839296986e-5,"imbalance_gmm":1.0},{"amplitude_mils":4.380283167859397e-5,"imbalance_gmm":2.0},{"amplitude_mils":6.570424751789096e-5,"imbalance_gmm":3.0},{"amplitude_mils":8.760566335718795e-5,"imbalance_gmm":4.0},{"amplitude_mils":1.0950707919648492e-4,"imbalance_gmm":5.0},{"amplitude_mils":1.314084950357819e-4,"imbalance_gmm":6.0},{"amplitude_mils":1.533099108750789e-4,"imbalance_gmm":7.0},{"amplitude_mils":1.752113267143759e-4,"imbalance_gmm":8.0},{"amplitude_mils":1.9711274255367284e-4,"imbalance_gmm":9.0},{"amplitude_mils":2.1901415839296984e-4,"imbalance_gmm":10.0},{"amplitude_mils":2.409155742322668e-4,"imbalance_gmm":11.0},{"amplitude_mils":2.628169900715638e-4,"imbalance_gmm":12.0},{"amplitude_mils":2.847184059108608e-4,"imbalance_gmm":13.0},{"amplitude_mils":3.066198217501578e-4,"imbalance_gmm":14.0},{"amplitude_mils":3.285212375894548e-4,"imbalance_gmm":15.0},{"amplitude_mils":3.504226534287518e-4,"imbalance_gmm":16.0},{"amplitude_mils":3.7232406926804876e-4,"imbalance_gmm":17.0},{"amplitude_mils":3.942254851073457e-4,"imbalance_gmm":18.0},{"amplitude_mils":4.161269009466427e-4,"imbalance_gmm":19.0},{"amplitude_mils":4.380283167859397e-4,"imbalance_gmm":20.0},{"amplitude_mils":4.5992973262523666e-4,"imbalance_gmm":21.0},{"amplitude_mils":4.818311484645336e-4,"imbalance_gmm":22.0},{"amplitude_mils":5.037325643038307e-4,"imbalance_gmm":23.0},{"amplitude_mils":5.256339801431276e-4,"imbalance_gmm":24.0},{"amplitude_mils":5.475353959824246e-4,"imbalance_gmm":25.0},{"amplitude_mils":5.694368118217216e-4,"imbalance_gmm":26.0},{"amplitude_mils":5.913382276610186e-4,"imbalance_gmm":27.0},{"amplitude_mils":6.132396435003155e-4,"imbalance_gmm":28.0},{"amplitude_mils":6.351410593396125e-4,"imbalance_gmm":29.0},{"amplitude_mils":6.570424751789096e-4,"imbalance_gmm":30.0},{"amplitude_mils":6.789438910182066e-4,"imbalance_gmm":31.0},{"amplitude_mils":7.008453068575036e-4,"imbalance_gmm":32.0},{"amplitude_mils":7.227467226968004e-4,"imbalance_gmm":33.0},{"amplitude_mils":7.446481385360975e-4,"imbalance_gmm":34.0},{"amplitude_mils":7.665495543753943e-4,"imbalance_gmm":35.0},{"amplitude_mils":7.884509702146914e-4,"imbalance_gmm":36.0},{"amplitude_mils":8.103523860539886e-4,"imbalance_gmm":37.0},{"amplitude_mils":8.322538018932854e-4,"imbalance_gmm":38.0},{"amplitude_mils":8.541552177325825e-4,"imbalance_gmm":39.0},{"amplitude_mils":8.760566335718794e-4,"imbalance_gmm":40.0},{"amplitude_mils":8.979580494111763e-4,"imbalance_gmm":41.0},{"amplitude_mils":9.198594652504733e-4,"imbalance_gmm":42.0},{"amplitude_mils":9.417608810897703e-4,"imbalance_gmm":43.0},{"amplitude_mils":9.636622969290672e-4,"imbalance_gmm":44.0},{"amplitude_mils":9.855637127683641e-4,"imbalance_gmm":45.0},{"amplitude_mils":0.0010074651286076613,"imbalance_gmm":46.0},{"amplitude_mils":0.0010293665444469583,"imbalance_gmm":47.0},{"amplitude_mils":0.0010512679602862553,"imbalance_gmm":48.0},{"amplitude_mils":0.0010731693761255525,"imbalance_gmm":49.0},{"amplitude_mils":0.0010950707919648492,"imbalance_gmm":50.0},{"amplitude_mils":0.0011169722078041462,"imbalance_gmm":51.0},{"amplitude_mils":0.0011388736236434432,"imbalance_gmm":52.0},{"amplitude_mils":0.0011607750394827402,"imbalance_gmm":53.0},{"amplitude_mils":0.0011826764553220371,"imbalance_gmm":54.0},{"amplitude_mils":0.0012045778711613341,"imbalance_gmm":55.0},{"amplitude_mils":0.001226479287000631,"imbalance_gmm":56.0},{"amplitude_mils":0.0012483807028399283,"imbalance_gmm":57.0},{"amplitude_mils":0.001270282118679225,"imbalance_gmm":58.0},{"amplitude_mils":0.0012921835345185222,"imbalance_gmm":59.0},{"amplitude_mils":0.0013140849503578192,"imbalance_gmm":60.0},{"amplitude_mils":0.0013359863661971162,"imbalance_gmm":61.0},{"amplitude_mils":0.0013578877820364132,"imbalance_gmm":62.0},{"amplitude_mils":0.00137978919787571,"imbalance_gmm":63.0},{"amplitude_mils":0.0014016906137150071,"imbalance_gmm":64.0},{"amplitude_mils":0.0014235920295543039,"imbalance_gmm":65.0},{"amplitude_mils":0.0014454934453936009,"imbalance_gmm":66.0},{"amplitude_mils":0.001467394861232898,"imbalance_gmm":67.0},{"amplitude_mils":0.001489296277072195,"imbalance_gmm":68.0},{"amplitude_mils":0.0015111976929114922,"imbalance_gmm":69.0},{"amplitude_mils":0.0015330991087507885,"imbalance_gmm":70.0},{"amplitude_mils":0.0015550005245900857,"imbalance_gmm":71.0},{"amplitude_mils":0.0015769019404293827,"imbalance_gmm":72.0},{"amplitude_mils":0.0015988033562686797,"imbalance_gmm":73.0},{"amplitude_mils":0.001620704772107977,"imbalance_gmm":74.0},{"amplitude_mils":0.0016426061879472739,"imbalance_gmm":75.0},{"amplitude_mils":0.0016645076037865708,"imbalance_gmm":76.0},{"amplitude_mils":0.0016864090196258678,"imbalance_gmm":77.0},{"amplitude_mils":0.001708310435465165,"imbalance_gmm":78.0},{"amplitude_mils":0.0017302118513044615,"imbalance_gmm":79.0},{"amplitude_mils":0.0017521132671437587,"imbalance_gmm":80.0},{"amplitude_mils":0.0017740146829830555,"imbalance_gmm":81.0},{"amplitude_mils":0.0017959160988223527,"imbalance_gmm":82.0},{"amplitude_mils":0.0018178175146616497,"imbalance_gmm":83.0},{"amplitude_mils":0.0018397189305009466,"imbalance_gmm":84.0},{"amplitude_mils":0.0018616203463402436,"imbalance_gmm":85.0},{"amplitude_mils":0.0018835217621795406,"imbalance_gmm":86.0},{"amplitude_mils":0.0019054231780188376,"imbalance_gmm":87.0},{"amplitude_mils":0.0019273245938581343,"imbalance_gmm":88.0},{"amplitude_mils":0.0019492260096974315,"imbalance_gmm":89.0},{"amplitude_mils":0.0019711274255367283,"imbalance_gmm":90.0},{"amplitude_mils":0.0019930288413760257,"imbalance_gmm":91.0},{"amplitude_mils":0.0020149302572153227,"imbalance_gmm":92.0},{"amplitude_mils":0.0020368316730546196,"imbalance_gmm":93.0},{"amplitude_mils":0.0020587330888939166,"imbalance_gmm":94.0},{"amplitude_mils":0.002080634504733213,"imbalance_gmm":95.0},{"amplitude_mils":0.0021025359205725106,"imbalance_gmm":96.0},{"amplitude_mils":0.0021244373364118076,"imbalance_gmm":97.0},{"amplitude_mils":0.002146338752251105,"imbalance_gmm":98.0},{"amplitude_mils":0.0021682401680904015,"imbalance_gmm":99.0},{"amplitude_mils":0.0021901415839296985,"imbalance_gmm":100.0},{"amplitude_mils":0.0022120429997689955,"imbalance_gmm":101.0},{"amplitude_mils":0.0022339444156082924,"imbalance_gmm":102.0},{"amplitude_mils":0.00225584583144759,"imbalance_gmm":103.0},{"amplitude_mils":0.0022777472472868864,"imbalance_gmm":104.0},{"amplitude_mils":0.0022996486631261834,"imbalance_gmm":105.0},{"amplitude_mils":0.0023215500789654803,"imbalance_gmm":106.0},{"amplitude_mils":0.0023434514948047773,"imbalance_gmm":107.0},{"amplitude_mils":0.0023653529106440743,"imbalance_gmm":108.0},{"amplitude_mils":0.0023872543264833713,"imbalance_gmm":109.0},{"amplitude_mils":0.0024091557423226682,"imbalance_gmm":110.0},{"amplitude_mils":0.0024310571581619652,"imbalance_gmm":111.0},{"amplitude_mils":0.002452958574001262,"imbalance_gmm":112.0},{"amplitude_mils":0.0024748599898405596,"imbalance_gmm":113.0},{"amplitude_mils":0.0024967614056798566,"imbalance_gmm":114.0},{"amplitude_mils":0.0025186628215191536,"imbalance_gmm":115.0},{"amplitude_mils":0.00254056423735845,"imbalance_gmm":116.0},{"amplitude_mils":0.0025624656531977466,"imbalance_gmm":117.0},{"amplitude_mils":0.0025843670690370445,"imbalance_gmm":118.0},{"amplitude_mils":0.0026062684848763415,"imbalance_gmm":119.0},{"amplitude_mils":0.0026281699007156384,"imbalance_gmm":120.0},{"amplitude_mils":0.002650071316554935,"imbalance_gmm":121.0},{"amplitude_mils":0.0026719727323942324,"imbalance_gmm":122.0},{"amplitude_mils":0.002693874148233529,"imbalance_gmm":123.0},{"amplitude_mils":0.0027157755640728263,"imbalance_gmm":124.0},{"amplitude_mils":0.002737676979912123,"imbalance_gmm":125.0},{"amplitude_mils":0.00275957839575142,"imbalance_gmm":126.0},{"amplitude_mils":0.0027814798115907173,"imbalance_gmm":127.0},{"amplitude_mils":0.0028033812274300142,"imbalance_gmm":128.0},{"amplitude_mils":0.0028252826432693112,"imbalance_gmm":129.0},{"amplitude_mils":0.0028471840591086078,"imbalance_gmm":130.0},{"amplitude_mils":0.002869085474947905,"imbalance_gmm":131.0},{"amplitude_mils":0.0028909868907872017,"imbalance_gmm":132.0},{"amplitude_mils":0.002912888306626499,"imbalance_gmm":133.0},{"amplitude_mils":0.002934789722465796,"imbalance_gmm":134.0},{"amplitude_mils":0.0029566911383050926,"imbalance_gmm":135.0},{"amplitude_mils":0.00297859255414439,"imbalance_gmm":136.0},{"amplitude_mils":0.003000493969983687,"imbalance_gmm":137.0},{"amplitude_mils":0.0030223953858229844,"imbalance_gmm":138.0},{"amplitude_mils":0.0030442968016622806,"imbalance_gmm":139.0},{"amplitude_mils":0.003066198217501577,"imbalance_gmm":140.0},{"amplitude_mils":0.003088099633340875,"imbalance_gmm":141.0},{"amplitude_mils":0.0031100010491801715,"imbalance_gmm":142.0},{"amplitude_mils":0.0031319024650194693,"imbalance_gmm":143.0},{"amplitude_mils":0.0031538038808587654,"imbalance_gmm":144.0},{"amplitude_mils":0.003175705296698063,"imbalance_gmm":145.0},{"amplitude_mils":0.0031976067125373594,"imbalance_gmm":146.0},{"amplitude_mils":0.0032195081283766572,"imbalance_gmm":147.0},{"amplitude_mils":0.003241409544215954,"imbalance_gmm":148.0},{"amplitude_mils":0.0032633109600552503,"imbalance_gmm":149.0},{"amplitude_mils":0.0032852123758945477,"imbalance_gmm":150.0},{"amplitude_mils":0.0033071137917338443,"imbalance_gmm":151.0},{"amplitude_mils":0.0033290152075731417,"imbalance_gmm":152.0},{"amplitude_mils":0.003350916623412439,"imbalance_gmm":153.0},{"amplitude_mils":0.0033728180392517356,"imbalance_gmm":154.0},{"amplitude_mils":0.0033947194550910326,"imbalance_gmm":155.0},{"amplitude_mils":0.00341662087093033,"imbalance_gmm":156.0},{"amplitude_mils":0.003438522286769627,"imbalance_gmm":157.0},{"amplitude_mils":0.003460423702608923,"imbalance_gmm":158.0},{"amplitude_mils":0.0034823251184482205,"imbalance_gmm":159.0},{"amplitude_mils":0.0035042265342875175,"imbalance_gmm":160.0},{"amplitude_mils":0.0035261279501268145,"imbalance_gmm":161.0},{"amplitude_mils":0.003548029365966111,"imbalance_gmm":162.0},{"amplitude_mils":0.0035699307818054084,"imbalance_gmm":163.0},{"amplitude_mils":0.0035918321976447054,"imbalance_gmm":164.0},{"amplitude_mils":0.0036137336134840024,"imbalance_gmm":165.0},{"amplitude_mils":0.0036356350293232993,"imbalance_gmm":166.0},{"amplitude_mils":0.003657536445162596,"imbalance_gmm":167.0},{"amplitude_mils":0.0036794378610018933,"imbalance_gmm":168.0},{"amplitude_mils":0.0037013392768411903,"imbalance_gmm":169.0},{"amplitude_mils":0.0037232406926804872,"imbalance_gmm":170.0},{"amplitude_mils":0.003745142108519784,"imbalance_gmm":171.0},{"amplitude_mils":0.003767043524359081,"imbalance_gmm":172.0},{"amplitude_mils":0.003788944940198378,"imbalance_gmm":173.0},{"amplitude_mils":0.003810846356037675,"imbalance_gmm":174.0},{"amplitude_mils":0.003832747771876972,"imbalance_gmm":175.0},{"amplitude_mils":0.0038546491877162687,"imbalance_gmm":176.0},{"amplitude_mils":0.003876550603555567,"imbalance_gmm":177.0},{"amplitude_mils":0.003898452019394863,"imbalance_gmm":178.0},{"amplitude_mils":0.003920353435234161,"imbalance_gmm":179.0},{"amplitude_mils":0.003942254851073457,"imbalance_gmm":180.0},{"amplitude_mils":0.003964156266912754,"imbalance_gmm":181.0},{"amplitude_mils":0.003986057682752051,"imbalance_gmm":182.0},{"amplitude_mils":0.004007959098591348,"imbalance_gmm":183.0},{"amplitude_mils":0.004029860514430645,"imbalance_gmm":184.0},{"amplitude_mils":0.004051761930269942,"imbalance_gmm":185.0},{"amplitude_mils":0.004073663346109239,"imbalance_gmm":186.0},{"amplitude_mils":0.004095564761948536,"imbalance_gmm":187.0},{"amplitude_mils":0.004117466177787833,"imbalance_gmm":188.0},{"amplitude_mils":0.00413936759362713,"imbalance_gmm":189.0},{"amplitude_mils":0.004161269009466426,"imbalance_gmm":190.0},{"amplitude_mils":0.004183170425305724,"imbalance_gmm":191.0},{"amplitude_mils":0.004205071841145021,"imbalance_gmm":192.0},{"amplitude_mils":0.0042269732569843186,"imbalance_gmm":193.0},{"amplitude_mils":0.004248874672823615,"imbalance_gmm":194.0},{"amplitude_mils":0.004270776088662912,"imbalance_gmm":195.0},{"amplitude_mils":0.00429267750450221,"imbalance_gmm":196.0},{"amplitude_mils":0.0043145789203415065,"imbalance_gmm":197.0},{"amplitude_mils":0.004336480336180803,"imbalance_gmm":198.0},{"amplitude_mils":0.0043583817520200996,"imbalance_gmm":199.0},{"amplitude_mils":0.004380283167859397,"imbalance_gmm":200.0},{"amplitude_mils":0.0044021845836986935,"imbalance_gmm":201.0},{"amplitude_mils":0.004424085999537991,"imbalance_gmm":202.0},{"amplitude_mils":0.0044459874153772875,"imbalance_gmm":203.0},{"amplitude_mils":0.004467888831216585,"imbalance_gmm":204.0},{"amplitude_mils":0.004489790247055881,"imbalance_gmm":205.0},{"amplitude_mils":0.00451169166289518,"imbalance_gmm":206.0},{"amplitude_mils":0.004533593078734476,"imbalance_gmm":207.0},{"amplitude_mils":0.004555494494573773,"imbalance_gmm":208.0},{"amplitude_mils":0.004577395910413069,"imbalance_gmm":209.0},{"amplitude_mils":0.004599297326252367,"imbalance_gmm":210.0},{"amplitude_mils":0.004621198742091663,"imbalance_gmm":211.0},{"amplitude_mils":0.004643100157930961,"imbalance_gmm":212.0},{"amplitude_mils":0.004665001573770258,"imbalance_gmm":213.0},{"amplitude_mils":0.004686902989609555,"imbalance_gmm":214.0},{"amplitude_mils":0.004708804405448851,"imbalance_gmm":215.0},{"amplitude_mils":0.004730705821288149,"imbalance_gmm":216.0},{"amplitude_mils":0.004752607237127445,"imbalance_gmm":217.0},{"amplitude_mils":0.0047745086529667425,"imbalance_gmm":218.0},{"amplitude_mils":0.00479641006880604,"imbalance_gmm":219.0},{"amplitude_mils":0.0048183114846453365,"imbalance_gmm":220.0},{"amplitude_mils":0.004840212900484633,"imbalance_gmm":221.0},{"amplitude_mils":0.0048621143163239304,"imbalance_gmm":222.0},{"amplitude_mils":0.004884015732163227,"imbalance_gmm":223.0},{"amplitude_mils":0.004905917148002524,"imbalance_gmm":224.0},{"amplitude_mils":0.004927818563841822,"imbalance_gmm":225.0},{"amplitude_mils":0.004949719979681119,"imbalance_gmm":226.0},{"amplitude_mils":0.004971621395520416,"imbalance_gmm":227.0},{"amplitude_mils":0.004993522811359713,"imbalance_gmm":228.0},{"amplitude_mils":0.00501542422719901,"imbalance_gmm":229.0},{"amplitude_mils":0.005037325643038307,"imbalance_gmm":230.0},{"amplitude_mils":0.005059227058877603,"imbalance_gmm":231.0},{"amplitude_mils":0.0050811284747169,"imbalance_gmm":232.0},{"amplitude_mils":0.005103029890556197,"imbalance_gmm":233.0},{"amplitude_mils":0.005124931306395493,"imbalance_gmm":234.0},{"amplitude_mils":0.005146832722234792,"imbalance_gmm":235.0},{"amplitude_mils":0.005168734138074089,"imbalance_gmm":236.0},{"amplitude_mils":0.0051906355539133855,"imbalance_gmm":237.0},{"amplitude_mils":0.005212536969752683,"imbalance_gmm":238.0},{"amplitude_mils":0.00523443838559198,"imbalance_gmm":239.0},{"amplitude_mils":0.005256339801431277,"imbalance_gmm":240.0},{"amplitude_mils":0.0052782412172705725,"imbalance_gmm":241.0},{"amplitude_mils":0.00530014263310987,"imbalance_gmm":242.0},{"amplitude_mils":0.0053220440489491665,"imbalance_gmm":243.0},{"amplitude_mils":0.005343945464788465,"imbalance_gmm":244.0},{"amplitude_mils":0.005365846880627762,"imbalance_gmm":245.0},{"amplitude_mils":0.005387748296467058,"imbalance_gmm":246.0},{"amplitude_mils":0.005409649712306355,"imbalance_gmm":247.0},{"amplitude_mils":0.005431551128145653,"imbalance_gmm":248.0},{"amplitude_mils":0.00545345254398495,"imbalance_gmm":249.0},{"amplitude_mils":0.005475353959824246,"imbalance_gmm":250.0},{"amplitude_mils":0.0054972553756635414,"imbalance_gmm":251.0},{"amplitude_mils":0.00551915679150284,"imbalance_gmm":252.0},{"amplitude_mils":0.005541058207342137,"imbalance_gmm":253.0},{"amplitude_mils":0.0055629596231814345,"imbalance_gmm":254.0},{"amplitude_mils":0.005584861039020731,"imbalance_gmm":255.0},{"amplitude_mils":0.0056067624548600285,"imbalance_gmm":256.0},{"amplitude_mils":0.005628663870699325,"imbalance_gmm":257.0},{"amplitude_mils":0.0056505652865386224,"imbalance_gmm":258.0},{"amplitude_mils":0.00567246670237792,"imbalance_gmm":259.0},{"amplitude_mils":0.0056943681182172155,"imbalance_gmm":260.0},{"amplitude_mils":0.005716269534056512,"imbalance_gmm":261.0},{"amplitude_mils":0.00573817094989581,"imbalance_gmm":262.0},{"amplitude_mils":0.005760072365735107,"imbalance_gmm":263.0},{"amplitude_mils":0.0057819737815744034,"imbalance_gmm":264.0},{"amplitude_mils":0.005803875197413702,"imbalance_gmm":265.0},{"amplitude_mils":0.005825776613252998,"imbalance_gmm":266.0},{"amplitude_mils":0.005847678029092296,"imbalance_gmm":267.0},{"amplitude_mils":0.005869579444931592,"imbalance_gmm":268.0},{"amplitude_mils":0.005891480860770889,"imbalance_gmm":269.0},{"amplitude_mils":0.005913382276610185,"imbalance_gmm":270.0},{"amplitude_mils":0.005935283692449483,"imbalance_gmm":271.0},{"amplitude_mils":0.00595718510828878,"imbalance_gmm":272.0},{"amplitude_mils":0.005979086524128077,"imbalance_gmm":273.0},{"amplitude_mils":0.006000987939967374,"imbalance_gmm":274.0},{"amplitude_mils":0.006022889355806671,"imbalance_gmm":275.0},{"amplitude_mils":0.006044790771645969,"imbalance_gmm":276.0},{"amplitude_mils":0.006066692187485265,"imbalance_gmm":277.0},{"amplitude_mils":0.006088593603324561,"imbalance_gmm":278.0},{"amplitude_mils":0.0061104950191638585,"imbalance_gmm":279.0},{"amplitude_mils":0.006132396435003154,"imbalance_gmm":280.0},{"amplitude_mils":0.0061542978508424525,"imbalance_gmm":281.0},{"amplitude_mils":0.00617619926668175,"imbalance_gmm":282.0},{"amplitude_mils":0.006198100682521047,"imbalance_gmm":283.0},{"amplitude_mils":0.006220002098360343,"imbalance_gmm":284.0},{"amplitude_mils":0.006241903514199641,"imbalance_gmm":285.0},{"amplitude_mils":0.006263804930038939,"imbalance_gmm":286.0},{"amplitude_mils":0.006285706345878235,"imbalance_gmm":287.0},{"amplitude_mils":0.006307607761717531,"imbalance_gmm":288.0},{"amplitude_mils":0.006329509177556828,"imbalance_gmm":289.0},{"amplitude_mils":0.006351410593396126,"imbalance_gmm":290.0},{"amplitude_mils":0.006373312009235422,"imbalance_gmm":291.0},{"amplitude_mils":0.006395213425074719,"imbalance_gmm":292.0},{"amplitude_mils":0.006417114840914016,"imbalance_gmm":293.0},{"amplitude_mils":0.0064390162567533145,"imbalance_gmm":294.0},{"amplitude_mils":0.006460917672592609,"imbalance_gmm":295.0},{"amplitude_mils":0.006482819088431908,"imbalance_gmm":296.0},{"amplitude_mils":0.006504720504271204,"imbalance_gmm":297.0},{"amplitude_mils":0.006526621920110501,"imbalance_gmm":298.0},{"amplitude_mils":0.006548523335949798,"imbalance_gmm":299.0},{"amplitude_mils":0.0065704247517890954,"imbalance_gmm":300.0},{"amplitude_mils":0.006592326167628392,"imbalance_gmm":301.0},{"amplitude_mils":0.0066142275834676885,"imbalance_gmm":302.0},{"amplitude_mils":0.006636128999306988,"imbalance_gmm":303.0},{"amplitude_mils":0.006658030415146283,"imbalance_gmm":304.0},{"amplitude_mils":0.006679931830985581,"imbalance_gmm":305.0},{"amplitude_mils":0.006701833246824878,"imbalance_gmm":306.0},{"amplitude_mils":0.006723734662664174,"imbalance_gmm":307.0},{"amplitude_mils":0.006745636078503471,"imbalance_gmm":308.0},{"amplitude_mils":0.006767537494342768,"imbalance_gmm":309.0},{"amplitude_mils":0.006789438910182065,"imbalance_gmm":310.0},{"amplitude_mils":0.006811340326021362,"imbalance_gmm":311.0},{"amplitude_mils":0.00683324174186066,"imbalance_gmm":312.0},{"amplitude_mils":0.0068551431576999566,"imbalance_gmm":313.0},{"amplitude_mils":0.006877044573539254,"imbalance_gmm":314.0},{"amplitude_mils":0.006898945989378549,"imbalance_gmm":315.0},{"amplitude_mils":0.006920847405217846,"imbalance_gmm":316.0},{"amplitude_mils":0.006942748821057145,"imbalance_gmm":317.0},{"amplitude_mils":0.006964650236896441,"imbalance_gmm":318.0},{"amplitude_mils":0.0069865516527357376,"imbalance_gmm":319.0},{"amplitude_mils":0.007008453068575035,"imbalance_gmm":320.0},{"amplitude_mils":0.007030354484414333,"imbalance_gmm":321.0},{"amplitude_mils":0.007052255900253629,"imbalance_gmm":322.0},{"amplitude_mils":0.007074157316092926,"imbalance_gmm":323.0},{"amplitude_mils":0.007096058731932222,"imbalance_gmm":324.0},{"amplitude_mils":0.007117960147771519,"imbalance_gmm":325.0},{"amplitude_mils":0.007139861563610817,"imbalance_gmm":326.0},{"amplitude_mils":0.007161762979450114,"imbalance_gmm":327.0},{"amplitude_mils":0.007183664395289411,"imbalance_gmm":328.0},{"amplitude_mils":0.007205565811128707,"imbalance_gmm":329.0},{"amplitude_mils":0.007227467226968005,"imbalance_gmm":330.0},{"amplitude_mils":0.007249368642807302,"imbalance_gmm":331.0},{"amplitude_mils":0.007271270058646599,"imbalance_gmm":332.0},{"amplitude_mils":0.007293171474485896,"imbalance_gmm":333.0},{"amplitude_mils":0.007315072890325192,"imbalance_gmm":334.0},{"amplitude_mils":0.007336974306164491,"imbalance_gmm":335.0},{"amplitude_mils":0.007358875722003787,"imbalance_gmm":336.0},{"amplitude_mils":0.007380777137843086,"imbalance_gmm":337.0},{"amplitude_mils":0.0074026785536823805,"imbalance_gmm":338.0},{"amplitude_mils":0.007424579969521679,"imbalance_gmm":339.0},{"amplitude_mils":0.0074464813853609745,"imbalance_gmm":340.0},{"amplitude_mils":0.007468382801200273,"imbalance_gmm":341.0},{"amplitude_mils":0.007490284217039568,"imbalance_gmm":342.0},{"amplitude_mils":0.007512185632878865,"imbalance_gmm":343.0},{"amplitude_mils":0.007534087048718162,"imbalance_gmm":344.0},{"amplitude_mils":0.00755598846455746,"imbalance_gmm":345.0},{"amplitude_mils":0.007577889880396756,"imbalance_gmm":346.0},{"amplitude_mils":0.007599791296236054,"imbalance_gmm":347.0},{"amplitude_mils":0.00762169271207535,"imbalance_gmm":348.0},{"amplitude_mils":0.007643594127914647,"imbalance_gmm":349.0},{"amplitude_mils":0.007665495543753944,"imbalance_gmm":350.0},{"amplitude_mils":0.00768739695959324,"imbalance_gmm":351.0},{"amplitude_mils":0.007709298375432537,"imbalance_gmm":352.0},{"amplitude_mils":0.0077311997912718365,"imbalance_gmm":353.0},{"amplitude_mils":0.007753101207111134,"imbalance_gmm":354.0},{"amplitude_mils":0.0077750026229504296,"imbalance_gmm":355.0},{"amplitude_mils":0.007796904038789726,"imbalance_gmm":356.0},{"amplitude_mils":0.007818805454629024,"imbalance_gmm":357.0},{"amplitude_mils":0.007840706870468322,"imbalance_gmm":358.0},{"amplitude_mils":0.007862608286307618,"imbalance_gmm":359.0},{"amplitude_mils":0.007884509702146913,"imbalance_gmm":360.0},{"amplitude_mils":0.007906411117986211,"imbalance_gmm":361.0},{"amplitude_mils":0.007928312533825508,"imbalance_gmm":362.0},{"amplitude_mils":0.007950213949664806,"imbalance_gmm":363.0},{"amplitude_mils":0.007972115365504103,"imbalance_gmm":364.0},{"amplitude_mils":0.0079940167813434,"imbalance_gmm":365.0},{"amplitude_mils":0.008015918197182696,"imbalance_gmm":366.0},{"amplitude_mils":0.008037819613021992,"imbalance_gmm":367.0},{"amplitude_mils":0.00805972102886129,"imbalance_gmm":368.0},{"amplitude_mils":0.008081622444700585,"imbalance_gmm":369.0},{"amplitude_mils":0.008103523860539884,"imbalance_gmm":370.0},{"amplitude_mils":0.008125425276379182,"imbalance_gmm":371.0},{"amplitude_mils":0.008147326692218479,"imbalance_gmm":372.0},{"amplitude_mils":0.008169228108057775,"imbalance_gmm":373.0},{"amplitude_mils":0.008191129523897072,"imbalance_gmm":374.0},{"amplitude_mils":0.00821303093973637,"imbalance_gmm":375.0},{"amplitude_mils":0.008234932355575666,"imbalance_gmm":376.0},{"amplitude_mils":0.008256833771414965,"imbalance_gmm":377.0},{"amplitude_mils":0.00827873518725426,"imbalance_gmm":378.0},{"amplitude_mils":0.008300636603093558,"imbalance_gmm":379.0},{"amplitude_mils":0.008322538018932853,"imbalance_gmm":380.0},{"amplitude_mils":0.008344439434772151,"imbalance_gmm":381.0},{"amplitude_mils":0.008366340850611447,"imbalance_gmm":382.0},{"amplitude_mils":0.008388242266450746,"imbalance_gmm":383.0},{"amplitude_mils":0.008410143682290042,"imbalance_gmm":384.0},{"amplitude_mils":0.00843204509812934,"imbalance_gmm":385.0},{"amplitude_mils":0.008453946513968637,"imbalance_gmm":386.0},{"amplitude_mils":0.008475847929807932,"imbalance_gmm":387.0},{"amplitude_mils":0.00849774934564723,"imbalance_gmm":388.0},{"amplitude_mils":0.008519650761486525,"imbalance_gmm":389.0},{"amplitude_mils":0.008541552177325823,"imbalance_gmm":390.0},{"amplitude_mils":0.008563453593165122,"imbalance_gmm":391.0},{"amplitude_mils":0.00858535500900442,"imbalance_gmm":392.0},{"amplitude_mils":0.008607256424843715,"imbalance_gmm":393.0},{"amplitude_mils":0.008629157840683013,"imbalance_gmm":394.0},{"amplitude_mils":0.008651059256522311,"imbalance_gmm":395.0},{"amplitude_mils":0.008672960672361606,"imbalance_gmm":396.0},{"amplitude_mils":0.008694862088200903,"imbalance_gmm":397.0},{"amplitude_mils":0.008716763504040199,"imbalance_gmm":398.0},{"amplitude_mils":0.008738664919879497,"imbalance_gmm":399.0},{"amplitude_mils":0.008760566335718794,"imbalance_gmm":400.0},{"amplitude_mils":0.00878246775155809,"imbalance_gmm":401.0},{"amplitude_mils":0.008804369167397387,"imbalance_gmm":402.0},{"amplitude_mils":0.008826270583236685,"imbalance_gmm":403.0},{"amplitude_mils":0.008848171999075982,"imbalance_gmm":404.0},{"amplitude_mils":0.008870073414915278,"imbalance_gmm":405.0},{"amplitude_mils":0.008891974830754575,"imbalance_gmm":406.0},{"amplitude_mils":0.008913876246593871,"imbalance_gmm":407.0},{"amplitude_mils":0.00893577766243317,"imbalance_gmm":408.0},{"amplitude_mils":0.008957679078272466,"imbalance_gmm":409.0},{"amplitude_mils":0.008979580494111763,"imbalance_gmm":410.0},{"amplitude_mils":0.009001481909951061,"imbalance_gmm":411.0},{"amplitude_mils":0.00902338332579036,"imbalance_gmm":412.0},{"amplitude_mils":0.009045284741629656,"imbalance_gmm":413.0},{"amplitude_mils":0.009067186157468952,"imbalance_gmm":414.0},{"amplitude_mils":0.009089087573308249,"imbalance_gmm":415.0},{"amplitude_mils":0.009110988989147546,"imbalance_gmm":416.0},{"amplitude_mils":0.009132890404986844,"imbalance_gmm":417.0},{"amplitude_mils":0.009154791820826139,"imbalance_gmm":418.0},{"amplitude_mils":0.009176693236665437,"imbalance_gmm":419.0},{"amplitude_mils":0.009198594652504733,"imbalance_gmm":420.0},{"amplitude_mils":0.00922049606834403,"imbalance_gmm":421.0},{"amplitude_mils":0.009242397484183327,"imbalance_gmm":422.0},{"amplitude_mils":0.009264298900022625,"imbalance_gmm":423.0},{"amplitude_mils":0.009286200315861921,"imbalance_gmm":424.0},{"amplitude_mils":0.009308101731701218,"imbalance_gmm":425.0},{"amplitude_mils":0.009330003147540516,"imbalance_gmm":426.0},{"amplitude_mils":0.009351904563379813,"imbalance_gmm":427.0},{"amplitude_mils":0.00937380597921911,"imbalance_gmm":428.0},{"amplitude_mils":0.009395707395058408,"imbalance_gmm":429.0},{"amplitude_mils":0.009417608810897702,"imbalance_gmm":430.0},{"amplitude_mils":0.009439510226737,"imbalance_gmm":431.0},{"amplitude_mils":0.009461411642576297,"imbalance_gmm":432.0},{"amplitude_mils":0.009483313058415595,"imbalance_gmm":433.0},{"amplitude_mils":0.00950521447425489,"imbalance_gmm":434.0},{"amplitude_mils":0.009527115890094189,"imbalance_gmm":435.0},{"amplitude_mils":0.009549017305933485,"imbalance_gmm":436.0},{"amplitude_mils":0.009570918721772785,"imbalance_gmm":437.0},{"amplitude_mils":0.00959282013761208,"imbalance_gmm":438.0},{"amplitude_mils":0.009614721553451376,"imbalance_gmm":439.0},{"amplitude_mils":0.009636622969290673,"imbalance_gmm":440.0},{"amplitude_mils":0.009658524385129971,"imbalance_gmm":441.0},{"amplitude_mils":0.009680425800969266,"imbalance_gmm":442.0},{"amplitude_mils":0.009702327216808564,"imbalance_gmm":443.0},{"amplitude_mils":0.009724228632647861,"imbalance_gmm":444.0},{"amplitude_mils":0.009746130048487157,"imbalance_gmm":445.0},{"amplitude_mils":0.009768031464326454,"imbalance_gmm":446.0},{"amplitude_mils":0.00978993288016575,"imbalance_gmm":447.0},{"amplitude_mils":0.009811834296005049,"imbalance_gmm":448.0},{"amplitude_mils":0.009833735711844345,"imbalance_gmm":449.0},{"amplitude_mils":0.009855637127683644,"imbalance_gmm":450.0},{"amplitude_mils":0.009877538543522938,"imbalance_gmm":451.0},{"amplitude_mils":0.009899439959362238,"imbalance_gmm":452.0},{"amplitude_mils":0.009921341375201533,"imbalance_gmm":453.0},{"amplitude_mils":0.009943242791040832,"imbalance_gmm":454.0},{"amplitude_mils":0.009965144206880128,"imbalance_gmm":455.0},{"amplitude_mils":0.009987045622719426,"imbalance_gmm":456.0},{"amplitude_mils":0.010008947038558723,"imbalance_gmm":457.0},{"amplitude_mils":0.01003084845439802,"imbalance_gmm":458.0},{"amplitude_mils":0.010052749870237316,"imbalance_gmm":459.0},{"amplitude_mils":0.010074651286076614,"imbalance_gmm":460.0},{"amplitude_mils":0.010096552701915909,"imbalance_gmm":461.0},{"amplitude_mils":0.010118454117755206,"imbalance_gmm":462.0},{"amplitude_mils":0.010140355533594504,"imbalance_gmm":463.0},{"amplitude_mils":0.0101622569494338,"imbalance_gmm":464.0},{"amplitude_mils":0.010184158365273099,"imbalance_gmm":465.0},{"amplitude_mils":0.010206059781112393,"imbalance_gmm":466.0},{"amplitude_mils":0.010227961196951692,"imbalance_gmm":467.0},{"amplitude_mils":0.010249862612790987,"imbalance_gmm":468.0},{"amplitude_mils":0.010271764028630287,"imbalance_gmm":469.0},{"amplitude_mils":0.010293665444469585,"imbalance_gmm":470.0},{"amplitude_mils":0.010315566860308878,"imbalance_gmm":471.0},{"amplitude_mils":0.010337468276148178,"imbalance_gmm":472.0},{"amplitude_mils":0.010359369691987473,"imbalance_gmm":473.0},{"amplitude_mils":0.010381271107826771,"imbalance_gmm":474.0},{"amplitude_mils":0.010403172523666068,"imbalance_gmm":475.0},{"amplitude_mils":0.010425073939505366,"imbalance_gmm":476.0},{"amplitude_mils":0.010446975355344662,"imbalance_gmm":477.0},{"amplitude_mils":0.01046887677118396,"imbalance_gmm":478.0},{"amplitude_mils":0.010490778187023255,"imbalance_gmm":479.0},{"amplitude_mils":0.010512679602862554,"imbalance_gmm":480.0},{"amplitude_mils":0.010534581018701849,"imbalance_gmm":481.0},{"amplitude_mils":0.010556482434541145,"imbalance_gmm":482.0},{"amplitude_mils":0.010578383850380445,"imbalance_gmm":483.0},{"amplitude_mils":0.01060028526621974,"imbalance_gmm":484.0},{"amplitude_mils":0.010622186682059038,"imbalance_gmm":485.0},{"amplitude_mils":0.010644088097898333,"imbalance_gmm":486.0},{"amplitude_mils":0.010665989513737631,"imbalance_gmm":487.0},{"amplitude_mils":0.01068789092957693,"imbalance_gmm":488.0},{"amplitude_mils":0.010709792345416224,"imbalance_gmm":489.0},{"amplitude_mils":0.010731693761255524,"imbalance_gmm":490.0},{"amplitude_mils":0.01075359517709482,"imbalance_gmm":491.0},{"amplitude_mils":0.010775496592934116,"imbalance_gmm":492.0},{"amplitude_mils":0.010797398008773412,"imbalance_gmm":493.0},{"amplitude_mils":0.01081929942461271,"imbalance_gmm":494.0},{"amplitude_mils":0.010841200840452007,"imbalance_gmm":495.0},{"amplitude_mils":0.010863102256291305,"imbalance_gmm":496.0},{"amplitude_mils":0.0108850036721306,"imbalance_gmm":497.0},{"amplitude_mils":0.0109069050879699,"imbalance_gmm":498.0},{"amplitude_mils":0.010928806503809195,"imbalance_gmm":499.0},{"amplitude_mils":0.010950707919648492,"imbalance_gmm":500.0}]},"encoding":{"x":{"field":"imbalance_gmm","title":"Imbalance U (g-mm)","type":"quantitative"},"y":{"field":"amplitude_mils","title":"1X Vibration (mils p-p)","type":"quantitative"}},"height":350,"mark":{"color":"#1f77b4","strokeWidth":2,"type":"line"},"title":"Jeffcott Rotor: Vibration vs Imbalance at 3600 RPM","width":700}
Synthetic Vibration Data
We simulate 8 weeks of daily vibration readings from a turbine with gradually increasing imbalance — mimicking deposit buildup on turbine blades.
# True parameters (unknown to the model)
true_u_initial = 80.0 # g-mm (well-balanced rotor)
true_growth_rate = 0.018 # per day (exponential growth from deposits)
true_phi = 2.35 # radians (~135 degrees, heavy spot location)
true_sigma = 0.08 # mils measurement noise
# Generate 56 days (8 weeks) of daily observations
days = Enum.to_list(1..56)
rng = :rand.seed_s(:exsss, 42)
# Physical constants for forward model
u_to_amp = fn u_gmm ->
u_si = u_gmm * 1.0e-6
denom = :math.sqrt(:math.pow(k_design - rotor_mass * omega * omega, 2) + :math.pow(c_design * omega, 2))
a_m = u_si * omega * omega / denom
# mils p-p
a_m * 1.0e6 / 25.4 * 2.0
end
{observed, _rng} =
Enum.map_reduce(days, rng, fn day, rng ->
# True imbalance grows exponentially
u_true = true_u_initial * :math.exp(true_growth_rate * day)
a_true = u_to_amp.(u_true)
# Add lognormal measurement noise
{noise, rng} = :rand.normal_s(rng)
a_obs = a_true * :math.exp(true_sigma * noise)
{{day, a_obs, a_true, u_true}, rng}
end)
# Alarm threshold: 2.5 mils p-p (API 670 typical)
alarm_threshold = 2.5
obs_data =
Enum.flat_map(observed, fn {day, a_obs, a_true, _u} ->
[
%{"day" => day, "amplitude" => a_obs, "series" => "Observed (1X probe)"},
%{"day" => day, "amplitude" => a_true, "series" => "True response"}
]
end)
alarm_line =
Enum.map(days, fn day ->
%{"day" => day, "amplitude" => alarm_threshold, "series" => "Alarm Threshold (2.5 mil)"}
end)
Vl.new(
width: 700,
height: 350,
title: [
text: "Turbine Vibration Trend — 8 Weeks",
subtitle: "Unit 3, Bearing #2, X-probe"
]
)
|> Vl.data_from_values(obs_data ++ alarm_line)
|> Vl.layers([
Vl.new()
|> Vl.mark(:line, stroke_width: 2, stroke_dash: [6, 3], color: "#d62728")
|> Vl.transform(filter: "datum.series == 'Alarm Threshold (2.5 mil)'")
|> Vl.encode_field(:x, "day", type: :quantitative, title: "Day")
|> Vl.encode_field(:y, "amplitude", type: :quantitative, title: "1X Vibration (mils p-p)"),
Vl.new()
|> Vl.mark(:line, stroke_width: 1.5, stroke_dash: [4, 2], color: "#999")
|> Vl.transform(filter: "datum.series == 'True response'")
|> Vl.encode_field(:x, "day", type: :quantitative)
|> Vl.encode_field(:y, "amplitude", type: :quantitative),
Vl.new()
|> Vl.mark(:point, size: 40, filled: true, color: "#1f77b4")
|> Vl.transform(filter: "datum.series == 'Observed (1X probe)'")
|> Vl.encode_field(:x, "day", type: :quantitative)
|> Vl.encode_field(:y, "amplitude", type: :quantitative)
])
{"$schema":"https://vega.github.io/schema/vega-lite/v5.json","data":{"values":[{"amplitude":0.0018692433513519365,"day":1,"series":"Observed (1X probe)"},{"amplitude":0.0017839368590471351,"day":1,"series":"True response"},{"amplitude":0.0015600917918305768,"day":2,"series":"Observed (1X probe)"},{"amplitude":0.001816338462098891,"day":2,"series":"True response"},{"amplitude":0.0018515297437218152,"day":3,"series":"Observed (1X probe)"},{"amplitude":0.0018493285747018678,"day":3,"series":"True response"},{"amplitude":0.0022017868518929345,"day":4,"series":"Observed (1X probe)"},{"amplitude":0.0018829178859411488,"day":4,"series":"True response"},{"amplitude":0.0016589129925106407,"day":5,"series":"Observed (1X probe)"},{"amplitude":0.0019171172790474176,"day":5,"series":"True response"},{"amplitude":0.002144288375581983,"day":6,"series":"Observed (1X probe)"},{"amplitude":0.0019519378349232219,"day":6,"series":"True response"},{"amplitude":0.00226039966039249,"day":7,"series":"Observed (1X probe)"},{"amplitude":0.0019873908357332776,"day":7,"series":"True response"},{"amplitude":0.002174053797180669,"day":8,"series":"Observed (1X probe)"},{"amplitude":0.002023487768559994,"day":8,"series":"True response"},{"amplitude":0.0020100200560923894,"day":9,"series":"Observed (1X probe)"},{"amplitude":0.0020602403291253854,"day":9,"series":"True response"},{"amplitude":0.002149465022083736,"day":10,"series":"Observed (1X probe)"},{"amplitude":0.0020976604255805906,"day":10,"series":"True response"},{"amplitude":0.0020896640146212974,"day":11,"series":"Observed (1X probe)"},{"amplitude":0.002135760182364216,"day":11,"series":"True response"},{"amplitude":0.002138818033396594,"day":12,"series":"Observed (1X probe)"},{"amplitude":0.002174551944130758,"day":12,"series":"True response"},{"amplitude":0.0020476469699435957,"day":13,"series":"Observed (1X probe)"},{"amplitude":0.0022140482797503858,"day":13,"series":"True response"},{"amplitude":0.0021526261403687157,"day":14,"series":"Observed (1X probe)"},{"amplitude":0.0022542619863813555,"day":14,"series":"True response"},{"amplitude":0.002500420333619556,"day":15,"series":"Observed (1X probe)"},{"amplitude":0.002295206093616409,"day":15,"series":"True response"},{"amplitude":0.002630711326722741,"day":16,"series":"Observed (1X probe)"},{"amplitude":0.002336893867704475,"day":16,"series":"True response"},{"amplitude":0.0025961894608494116,"day":17,"series":"Observed (1X probe)"},{"amplitude":0.0023793388158490454,"day":17,"series":"True response"},{"amplitude":0.0028403124787368434,"day":18,"series":"Observed (1X probe)"},{"amplitude":0.0024225546905846315,"day":18,"series":"True response"},{"amplitude":0.0024241541674372893,"day":19,"series":"Observed (1X probe)"},{"amplitude":0.0024665554942327043,"day":19,"series":"True response"},{"amplitude":0.002501936726061779,"day":20,"series":"Observed (1X probe)"},{"amplitude":0.002511355483438568,"day":20,"series":"True response"},{"amplitude":0.0023505086699129375,"day":21,"series":"Observed (1X probe)"},{"amplitude":0.002556969173790642,"day":21,"series":"True response"},{"amplitude":0.0027322653959512702,"day":22,"series":"Observed (1X probe)"},{"amplitude":0.002603411344523633,"day":22,"series":"True response"},{"amplitude":0.0025312306697968722,"day":23,"series":"Observed (1X probe)"},{"amplitude":0.0026506970433071366,"day":23,"series":"True response"},{"amplitude":0.002787443617410404,"day":24,"series":"Observed (1X probe)"},{"amplitude":0.0026988415911212205,"day":24,"series":"True response"},{"amplitude":0.0028510207514109175,"day":25,"series":"Observed (1X probe)"},{"amplitude":0.0027478605872205486,"day":25,"series":"True response"},{"amplitude":0.002692975286650207,"day":26,"series":"Observed (1X probe)"},{"amplitude":0.002797769914188679,"day":26,"series":"True response"},{"amplitude":0.0022696140970061584,"day":27,"series":"Observed (1X probe)"},{"amplitude":0.0028485857430841635,"day":27,"series":"True response"},{"amplitude":0.002648811971349699,"day":28,"series":"Observed (1X probe)"},{"amplitude":0.0029003245386801054,"day":28,"series":"True response"},{"amplitude":0.0030702641271775377,"day":29,"series":"Observed (1X probe)"},{"amplitude":0.0029530030647988907,"day":29,"series":"True response"},{"amplitude":0.003160918137142843,"day":30,"series":"Observed (1X probe)"},{"amplitude":0.0030066383897438217,"day":30,"series":"True response"},{"amplitude":0.003135391204627754,"day":31,"series":"Observed (1X probe)"},{"amplitude":0.0030612478918293864,"day":31,"series":"True response"},{"amplitude":0.0031821247450571234,"day":32,"series":"Observed (1X probe)"},{"amplitude":0.003116849265011989,"day":32,"series":"True response"},{"amplitude":0.003141146871558335,"day":33,"series":"Observed (1X probe)"},{"amplitude":0.0031734605246229483,"day":33,"series":"True response"},{"amplitude":0.0031737446252185983,"day":34,"series":"Observed (1X probe)"},{"amplitude":0.003231100013205618,"day":34,"series":"True response"},{"amplitude":0.00343198223175103,"day":35,"series":"Observed (1X probe)"},{"amplitude":0.0032897864064585338,"day":35,"series":"True response"},{"amplitude":0.0032054824202780966,"day":36,"series":"Observed (1X probe)"},{"amplitude":0.003349538719286504,"day":36,"series":"True response"},{"amplitude":0.0037136938449923336,"day":37,"series":"Observed (1X probe)"},{"amplitude":0.0034103763119616042,"day":37,"series":"True response"},{"amplitude":0.0036222677484358443,"day":38,"series":"Observed (1X probe)"},{"amplitude":0.0034723188963960757,"day":38,"series":"True response"},{"amplitude":0.003627718602410881,"day":39,"series":"Observed (1X probe)"},{"amplitude":0.0035353865425291524,"day":39,"series":"True response"},{"amplitude":0.003808467540967873,"day":40,"series":"Observed (1X probe)"},{"amplitude":0.003599599684829903,"day":40,"series":"True response"},{"amplitude":0.003786052117686019,"day":41,"series":"Observed (1X probe)"},{"amplitude":0.003664979128918179,"day":41,"series":"True response"},{"amplitude":0.0035232447004579976,"day":42,"series":"Observed (1X probe)"},{"amplitude":0.0037315460583058064,"day":42,"series":"True response"},{"amplitude":0.0035593090809295704,"day":43,"series":"Observed (1X probe)"},{"amplitude":0.0037993220412602426,"day":43,"series":"True response"},{"amplitude":0.003886902912631799,"day":44,"series":"Observed (1X probe)"},{"amplitude":0.0038683290377928754,"day":44,"series":"True response"},{"amplitude":0.003987379912489197,"day":45,"series":"Observed (1X probe)"},{"amplitude":0.003938589406774262,"day":45,"series":"True response"},{"amplitude":0.004092224122797043,"day":46,"series":"Observed (1X probe)"},{"amplitude":0.004010125913178594,"day":46,"series":"True response"},{"amplitude":0.004262924130097846,"day":47,"series":"Observed (1X probe)"},{"amplitude":0.004082961735459757,"day":47,"series":"True response"},{"amplitude":0.003920966236386954,"day":48,"series":"Observed (1X probe)"},{"amplitude":0.004157120473061345,"day":48,"series":"True response"},{"amplitude":0.004840382051613223,"day":49,"series":"Observed (1X probe)"},{"amplitude":0.004232626154063085,"day":49,"series":"True response"},{"amplitude":0.004362080160132145,"day":50,"series":"Observed (1X probe)"},{"amplitude":0.004309503242966156,"day":50,"series":"True response"},{"amplitude":0.004962769941724683,"day":51,"series":"Observed (1X probe)"},{"amplitude":0.00438777664861989,"day":51,"series":"True response"},{"amplitude":0.004506599454381675,"day":52,"series":"Observed (1X probe)"},{"amplitude":0.0044674717322924625,"day":52,"series":"True response"},{"amplitude":0.004878947900203013,"day":53,"series":"Observed (1X probe)"},{"amplitude":0.004548614315888161,"day":53,"series":"True response"},{"amplitude":0.004761213325515078,"day":54,"series":"Observed (1X probe)"},{"amplitude":0.004631230690313916,"day":54,"series":"True response"},{"amplitude":0.0044926342044481265,"day":55,"series":"Observed (1X probe)"},{"amplitude":0.004715347623997776,"day":55,"series":"True response"},{"amplitude":0.004637570889918955,"day":56,"series":"Observed (1X probe)"},{"amplitude":0.004800992371562118,"day":56,"series":"True response"},{"amplitude":2.5,"day":1,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":2,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":3,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":4,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":5,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":6,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":7,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":8,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":9,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":10,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":11,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":12,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":13,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":14,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":15,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":16,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":17,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":18,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":19,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":20,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":21,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":22,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":23,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":24,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":25,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":26,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":27,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":28,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":29,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":30,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":31,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":32,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":33,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":34,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":35,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":36,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":37,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":38,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":39,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":40,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":41,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":42,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":43,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":44,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":45,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":46,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":47,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":48,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":49,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":50,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":51,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":52,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":53,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":54,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":55,"series":"Alarm Threshold (2.5 mil)"},{"amplitude":2.5,"day":56,"series":"Alarm Threshold (2.5 mil)"}]},"height":350,"layer":[{"encoding":{"x":{"field":"day","title":"Day","type":"quantitative"},"y":{"field":"amplitude","title":"1X Vibration (mils p-p)","type":"quantitative"}},"mark":{"color":"#d62728","strokeDash":[6,3],"strokeWidth":2,"type":"line"},"transform":[{"filter":"datum.series == 'Alarm Threshold (2.5 mil)'"}]},{"encoding":{"x":{"field":"day","type":"quantitative"},"y":{"field":"amplitude","type":"quantitative"}},"mark":{"color":"#999","strokeDash":[4,2],"strokeWidth":1.5,"type":"line"},"transform":[{"filter":"datum.series == 'True response'"}]},{"encoding":{"x":{"field":"day","type":"quantitative"},"y":{"field":"amplitude","type":"quantitative"}},"mark":{"color":"#1f77b4","filled":true,"size":40,"type":"point"},"transform":[{"filter":"datum.series == 'Observed (1X probe)'"}]}],"title":{"subtitle":"Unit 3, Bearing #2, X-probe","text":"Turbine Vibration Trend — 8 Weeks"},"width":700}
Bayesian Model
We infer three latent parameters from the vibration amplitude observations:
-
log_u— log of imbalance magnitude (ensures positivity) -
phi— phase angle of heavy spot -
sigma— measurement noise scale
The likelihood uses the Jeffcott forward model to predict vibration amplitude from the imbalance, then compares to observed data under lognormal noise.
# Prepare data tensors — use first 28 days (4 weeks) initially
n_obs = 28
subset = Enum.take(observed, n_obs)
a_obs_list = Enum.map(subset, fn {_, a, _, _} -> a end)
day_list = Enum.map(subset, fn {d, _, _, _} -> d * 1.0 end)
t_days = Nx.tensor(day_list)
log_a_obs = Nx.tensor(Enum.map(a_obs_list, &:math.log/1))
# Forward model constants (precomputed)
# A(U) = U * 1e-6 * omega^2 / denom * 1e6/25.4 * 2
# Simplify: A(U) = U * scale_factor
denom_val = :math.sqrt(:math.pow(k_design - rotor_mass * omega * omega, 2) + :math.pow(c_design * omega, 2))
scale_factor = 1.0e-6 * omega * omega / denom_val * 1.0e6 / 25.4 * 2.0
scale_tensor = Nx.tensor(scale_factor)
# Custom logpdf: Jeffcott rotor likelihood with exponential imbalance growth
turbine_logpdf = fn _x, params ->
log_u0 = params.log_u0
growth = params.growth
sigma = params.sigma
t = params.t_days
log_a_observed = params.log_a_obs
scale = params.scale
# Predicted imbalance at each time: U(t) = U0 * exp(growth * t)
# Predicted amplitude: A(t) = U(t) * scale_factor
# log(A(t)) = log(U0) + growth * t + log(scale_factor)
log_a_pred = Nx.add(Nx.add(log_u0, Nx.multiply(growth, t)), Nx.log(scale))
# Lognormal likelihood
residuals = Nx.subtract(log_a_observed, log_a_pred)
n = Nx.tensor(Nx.size(log_a_observed) * 1.0)
Nx.subtract(
Nx.sum(Nx.negate(Nx.divide(Nx.pow(residuals, 2), Nx.multiply(2.0, Nx.pow(sigma, 2))))),
Nx.multiply(n, Nx.log(sigma))
)
end
# Build model IR
ir = Builder.new_ir()
# Priors informed by turbomachinery engineering knowledge
# log_u0: well-balanced rotor ~50-150 g-mm
ir = Builder.rv(ir, "log_u0", Dist.Normal, %{
mu: Nx.tensor(:math.log(100.0)),
sigma: Nx.tensor(0.8)
})
# growth rate: typically 0.005-0.05 per day for deposit buildup
ir = Builder.rv(ir, "growth", Dist.Normal, %{
mu: Nx.tensor(0.015),
sigma: Nx.tensor(0.015)
})
# measurement noise
ir = Builder.rv(ir, "sigma", Dist.HalfCauchy, %{
scale: Nx.tensor(0.2)
}, transform: :log)
# Custom likelihood
turbine_dist = Dist.Custom.new(turbine_logpdf, support: :real)
ir =
Dist.Custom.rv(ir, "ll", turbine_dist, %{
log_u0: "log_u0",
growth: "growth",
sigma: "sigma",
t_days: t_days,
log_a_obs: log_a_obs,
scale: scale_tensor
})
ir = Builder.obs(ir, "ll_obs", "ll", Nx.tensor(0.0))
IO.puts("Free parameters: #{inspect(Enum.sort(Map.keys(ir.nodes) -- ["ll", "ll_obs"]))}")
IO.puts("Observations: #{n_obs} days of 1X vibration amplitude")
ir
Free parameters: ["growth", "log_u0", "sigma"]
Observations: 28 days of 1X vibration amplitude
%Exmc.IR{
nodes: %{
"growth" => %Exmc.Node{
id: "growth",
op: {:rv, Exmc.Dist.Normal,
%{
sigma: #Nx.Tensor<
f32
0.014999999664723873
>,
mu: #Nx.Tensor<
f32
0.014999999664723873
>
}},
deps: [],
shape: nil,
dtype: nil
},
"ll" => %Exmc.Node{
id: "ll",
op: {:rv, Exmc.Dist.Custom,
%{
scale: #Nx.Tensor<
f32
2.190141640312504e-5
>,
t_days: #Nx.Tensor<
f32[28]
[1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0]
>,
log_a_obs: #Nx.Tensor<
f32[28]
[-6.28222131729126, -6.463010787963867, -6.291743278503418, -6.118485927581787, -6.40159273147583, -6.144947528839111, -6.0922136306762695, -6.131161689758301, -6.209610462188721, -6.142536163330078, -6.170752048492432, -6.1475019454956055, -6.19106388092041, -6.141066551208496, -5.991296291351318, -5.9405012130737305, -5.953710556030273, -5.8638410568237305, -6.02227258682251, -5.990690231323242, -6.053123474121094, -5.902624130249023, -5.9790496826171875, -5.882630348205566, -5.86007833480835, -5.917108535766602, -6.0881452560424805, -5.933643817901611]
>,
log_u0: "log_u0",
growth: "growth",
sigma: "sigma",
__dist__: %Exmc.Dist.Custom{
logpdf_fn: #Function<41.81571850/2 in :erl_eval.expr/6>,
support: :real,
transform: nil,
sample_fn: nil
}
}},
deps: ["log_u0", "growth", "sigma"],
shape: nil,
dtype: nil
},
"ll_obs" => %Exmc.Node{
id: "ll_obs",
op: {:obs, "ll",
#Nx.Tensor<
f32
0.0
>, %{}},
deps: ["ll"],
shape: nil,
dtype: nil
},
"log_u0" => %Exmc.Node{
id: "log_u0",
op: {:rv, Exmc.Dist.Normal,
%{
sigma: #Nx.Tensor<
f32
0.800000011920929
>,
mu: #Nx.Tensor<
f32
4.605170249938965
>
}},
deps: [],
shape: nil,
dtype: nil
},
"sigma" => %Exmc.Node{
id: "sigma",
op: {:rv, Exmc.Dist.HalfCauchy,
%{
scale: #Nx.Tensor<
f32
0.20000000298023224
>
}, :log},
deps: [],
shape: nil,
dtype: nil
}
},
outputs: [],
ncp_info: %{},
data: nil
}
MCMC Sampling
init = %{
"log_u0" => :math.log(100.0),
"growth" => 0.015,
"sigma" => 0.15
}
t0 = System.monotonic_time(:millisecond)
{trace, stats} =
Sampler.sample(ir, init,
num_warmup: 500,
num_samples: 500,
seed: 42,
ncp: false
)
elapsed = System.monotonic_time(:millisecond) - t0
u0_samples = trace["log_u0"] |> Nx.exp() |> Nx.to_flat_list() |> Enum.filter(&is_number/1)
growth_samples = trace["growth"] |> Nx.to_flat_list() |> Enum.filter(&is_number/1)
sigma_samples = trace["sigma"] |> Nx.to_flat_list() |> Enum.filter(&is_number/1)
n_div = Enum.count(stats.sample_stats, & &1.divergent)
IO.puts("Sampling complete in #{elapsed}ms")
IO.puts("Divergences: #{n_div}")
IO.puts("Step size: #{Float.round(stats.step_size, 4)}")
Sampling complete in 3392ms
Divergences: 0
Step size: 0.1685
:ok
Parameter Recovery
summary = Exmc.Diagnostics.summary(trace)
IO.puts("Parameter Recovery (4 weeks of data):\n")
for {name, s} <- Enum.sort(summary) do
true_val =
case name do
"log_u0" -> :math.log(true_u_initial)
"growth" -> true_growth_rate
"sigma" -> true_sigma
_ -> nil
end
label =
case name do
"log_u0" -> "U0 (g-mm)"
"growth" -> "Growth (/day)"
"sigma" -> "Sigma"
_ -> name
end
display_mean =
case name do
"log_u0" -> Float.round(:math.exp(s.mean), 1)
_ -> Float.round(s.mean, 4)
end
display_true =
case name do
"log_u0" -> true_u_initial
"growth" -> true_growth_rate
"sigma" -> true_sigma
_ -> nil
end
IO.puts(" #{String.pad_trailing(label, 15)} posterior=#{display_mean} true=#{display_true}")
end
:ok
warning: variable "true_val" is unused (if the variable is not meant to be used, prefix it with an underscore)
└─ /home/io/projects/learn_erl/_exmc-things/exmc/notebooks/07_turbine_imbalance.livemd#cell:57bhvdajufacx3ma:6
Parameter Recovery (4 weeks of data):
Growth (/day) posterior=0.0152 true=0.018
U0 (g-mm) posterior=83.7 true=80.0
Sigma posterior=0.0978 true=0.08
:ok
Trace Plots
trace_data = fn samples, name ->
Enum.with_index(samples, fn val, i -> %{"iteration" => i, "value" => val, "param" => name} end)
end
all_traces =
trace_data.(u0_samples, "U0 (g-mm)") ++
trace_data.(growth_samples, "Growth rate (/day)") ++
trace_data.(sigma_samples, "Sigma (noise)")
Vl.new(width: 700, height: 120, title: "MCMC Trace Plots")
|> Vl.data_from_values(all_traces)
|> Vl.mark(:line, opacity: 0.6, stroke_width: 0.5)
|> Vl.encode_field(:x, "iteration", type: :quantitative)
|> Vl.encode_field(:y, "value", type: :quantitative)
|> Vl.encode_field(:row, "param", type: :nominal, title: nil,
header: [label_font_size: 11])
|> Vl.resolve(:scale, y: :independent)
{"$schema":"https://vega.github.io/schema/vega-lite/v5.json","data":{"values":[{"iteration":0,"param":"U0 (g-mm)","value":94.21137608217651},{"iteration":1,"param":"U0 (g-mm)","value":93.84731580724451},{"iteration":2,"param":"U0 (g-mm)","value":92.96796053593827},{"iteration":3,"param":"U0 (g-mm)","value":73.88970547235296},{"iteration":4,"param":"U0 (g-mm)","value":77.28324875748456},{"iteration":5,"param":"U0 (g-mm)","value":86.61839880556317},{"iteration":6,"param":"U0 (g-mm)","value":85.92256056800437},{"iteration":7,"param":"U0 (g-mm)","value":80.30800184260461},{"iteration":8,"param":"U0 (g-mm)","value":82.86690874825737},{"iteration":9,"param":"U0 (g-mm)","value":76.81977242781844},{"iteration":10,"param":"U0 (g-mm)","value":78.11195788047175},{"iteration":11,"param":"U0 (g-mm)","value":76.53168964074861},{"iteration":12,"param":"U0 (g-mm)","value":76.30585322492446},{"iteration":13,"param":"U0 (g-mm)","value":81.75791343412624},{"iteration":14,"param":"U0 (g-mm)","value":86.5825438835874},{"iteration":15,"param":"U0 (g-mm)","value":86.55429989064237},{"iteration":16,"param":"U0 (g-mm)","value":88.56203969353207},{"iteration":17,"param":"U0 (g-mm)","value":86.31441070651088},{"iteration":18,"param":"U0 (g-mm)","value":81.28990553489125},{"iteration":19,"param":"U0 (g-mm)","value":88.86824361285683},{"iteration":20,"param":"U0 (g-mm)","value":87.90414605005347},{"iteration":21,"param":"U0 (g-mm)","value":80.23076507089544},{"iteration":22,"param":"U0 (g-mm)","value":85.2141653607801},{"iteration":23,"param":"U0 (g-mm)","value":86.86717027570482},{"iteration":24,"param":"U0 (g-mm)","value":86.55816346601337},{"iteration":25,"param":"U0 (g-mm)","value":86.59637693632058},{"iteration":26,"param":"U0 (g-mm)","value":86.84094048137736},{"iteration":27,"param":"U0 (g-mm)","value":88.2789609804103},{"iteration":28,"param":"U0 (g-mm)","value":81.7157210964698},{"iteration":29,"param":"U0 (g-mm)","value":84.35128846308271},{"iteration":30,"param":"U0 (g-mm)","value":84.68955977349897},{"iteration":31,"param":"U0 (g-mm)","value":87.49580080555329},{"iteration":32,"param":"U0 (g-mm)","value":82.10831014751956},{"iteration":33,"param":"U0 (g-mm)","value":81.63788934795964},{"iteration":34,"param":"U0 (g-mm)","value":84.75327753088132},{"iteration":35,"param":"U0 (g-mm)","value":84.99101825481004},{"iteration":36,"param":"U0 (g-mm)","value":82.96474092200353},{"iteration":37,"param":"U0 (g-mm)","value":79.81406042091128},{"iteration":38,"param":"U0 (g-mm)","value":91.54739327792416},{"iteration":39,"param":"U0 (g-mm)","value":88.78756041315924},{"iteration":40,"param":"U0 (g-mm)","value":84.21029768376654},{"iteration":41,"param":"U0 (g-mm)","value":82.25621579869222},{"iteration":42,"param":"U0 (g-mm)","value":80.83685270239783},{"iteration":43,"param":"U0 (g-mm)","value":76.30213091637825},{"iteration":44,"param":"U0 (g-mm)","value":87.40143402322329},{"iteration":45,"param":"U0 (g-mm)","value":80.69821616465951},{"iteration":46,"param":"U0 (g-mm)","value":81.98230619676757},{"iteration":47,"param":"U0 (g-mm)","value":85.72702310961357},{"iteration":48,"param":"U0 (g-mm)","value":86.43149005276463},{"iteration":49,"param":"U0 (g-mm)","value":77.27234770559924},{"iteration":50,"param":"U0 (g-mm)","value":79.85881115895312},{"iteration":51,"param":"U0 (g-mm)","value":81.13184570945997},{"iteration":52,"param":"U0 (g-mm)","value":82.50288712994485},{"iteration":53,"param":"U0 (g-mm)","value":87.6980070838735},{"iteration":54,"param":"U0 (g-mm)","value":83.95978212519307},{"iteration":55,"param":"U0 (g-mm)","value":86.59949067186949},{"iteration":56,"param":"U0 (g-mm)","value":80.58971538650044},{"iteration":57,"param":"U0 (g-mm)","value":84.65727435515433},{"iteration":58,"param":"U0 (g-mm)","value":83.66908729678309},{"iteration":59,"param":"U0 (g-mm)","value":80.53197304549617},{"iteration":60,"param":"U0 (g-mm)","value":86.81902357078879},{"iteration":61,"param":"U0 (g-mm)","value":88.70377231819303},{"iteration":62,"param":"U0 (g-mm)","value":89.30111327937759},{"iteration":63,"param":"U0 (g-mm)","value":83.26450149235791},{"iteration":64,"param":"U0 (g-mm)","value":81.97937909048653},{"iteration":65,"param":"U0 (g-mm)","value":76.97100883335453},{"iteration":66,"param":"U0 (g-mm)","value":76.807712050571},{"iteration":67,"param":"U0 (g-mm)","value":78.81621060037008},{"iteration":68,"param":"U0 (g-mm)","value":86.86048760893304},{"iteration":69,"param":"U0 (g-mm)","value":81.39916263775474},{"iteration":70,"param":"U0 (g-mm)","value":76.48810415126611},{"iteration":71,"param":"U0 (g-mm)","value":81.24517342899154},{"iteration":72,"param":"U0 (g-mm)","value":88.29938055246623},{"iteration":73,"param":"U0 (g-mm)","value":90.99153347375663},{"iteration":74,"param":"U0 (g-mm)","value":80.07082750145038},{"iteration":75,"param":"U0 (g-mm)","value":85.92472126744744},{"iteration":76,"param":"U0 (g-mm)","value":79.34828711729254},{"iteration":77,"param":"U0 (g-mm)","value":77.88117867792693},{"iteration":78,"param":"U0 (g-mm)","value":75.81450178520274},{"iteration":79,"param":"U0 (g-mm)","value":82.75800437291291},{"iteration":80,"param":"U0 (g-mm)","value":84.16071444119761},{"iteration":81,"param":"U0 (g-mm)","value":82.8757727592981},{"iteration":82,"param":"U0 (g-mm)","value":81.13231901765415},{"iteration":83,"param":"U0 (g-mm)","value":79.97199511068845},{"iteration":84,"param":"U0 (g-mm)","value":82.92103767136798},{"iteration":85,"param":"U0 (g-mm)","value":82.45153787679523},{"iteration":86,"param":"U0 (g-mm)","value":80.44634561258165},{"iteration":87,"param":"U0 (g-mm)","value":80.44634561258165},{"iteration":88,"param":"U0 (g-mm)","value":79.9674837502926},{"iteration":89,"param":"U0 (g-mm)","value":84.95186434208837},{"iteration":90,"param":"U0 (g-mm)","value":85.88389570165059},{"iteration":91,"param":"U0 (g-mm)","value":81.74715773883703},{"iteration":92,"param":"U0 (g-mm)","value":87.40834695165987},{"iteration":93,"param":"U0 (g-mm)","value":80.08301035598963},{"iteration":94,"param":"U0 (g-mm)","value":84.59735116343408},{"iteration":95,"param":"U0 (g-mm)","value":84.48019163591721},{"iteration":96,"param":"U0 (g-mm)","value":83.25857934442053},{"iteration":97,"param":"U0 (g-mm)","value":85.32485959323033},{"iteration":98,"param":"U0 (g-mm)","value":76.81513863853485},{"iteration":99,"param":"U0 (g-mm)","value":89.31708440874375},{"iteration":100,"param":"U0 (g-mm)","value":89.91737342420393},{"iteration":101,"param":"U0 (g-mm)","value":89.14969877537567},{"iteration":102,"param":"U0 (g-mm)","value":77.05462490928949},{"iteration":103,"param":"U0 (g-mm)","value":82.9561450679169},{"iteration":104,"param":"U0 (g-mm)","value":81.92142194091993},{"iteration":105,"param":"U0 (g-mm)","value":79.59125467729093},{"iteration":106,"param":"U0 (g-mm)","value":78.62138089081853},{"iteration":107,"param":"U0 (g-mm)","value":77.93222397016606},{"iteration":108,"param":"U0 (g-mm)","value":78.47245813166374},{"iteration":109,"param":"U0 (g-mm)","value":80.48622269506876},{"iteration":110,"param":"U0 (g-mm)","value":84.47439134451366},{"iteration":111,"param":"U0 (g-mm)","value":82.35782069993049},{"iteration":112,"param":"U0 (g-mm)","value":82.0409660238558},{"iteration":113,"param":"U0 (g-mm)","value":84.00367384247227},{"iteration":114,"param":"U0 (g-mm)","value":84.20890341766801},{"iteration":115,"param":"U0 (g-mm)","value":85.23987583533597},{"iteration":116,"param":"U0 (g-mm)","value":80.37046135367407},{"iteration":117,"param":"U0 (g-mm)","value":75.77608433798272},{"iteration":118,"param":"U0 (g-mm)","value":76.60005424022275},{"iteration":119,"param":"U0 (g-mm)","value":76.823652921136},{"iteration":120,"param":"U0 (g-mm)","value":76.41306353638286},{"iteration":121,"param":"U0 (g-mm)","value":75.50058614006598},{"iteration":122,"param":"U0 (g-mm)","value":81.88002599213394},{"iteration":123,"param":"U0 (g-mm)","value":80.63449724667038},{"iteration":124,"param":"U0 (g-mm)","value":81.14332619219509},{"iteration":125,"param":"U0 (g-mm)","value":84.43791517443817},{"iteration":126,"param":"U0 (g-mm)","value":87.35330658585283},{"iteration":127,"param":"U0 (g-mm)","value":80.62358291072933},{"iteration":128,"param":"U0 (g-mm)","value":87.3777416598826},{"iteration":129,"param":"U0 (g-mm)","value":87.45675193445642},{"iteration":130,"param":"U0 (g-mm)","value":81.40781896443892},{"iteration":131,"param":"U0 (g-mm)","value":84.42098682205712},{"iteration":132,"param":"U0 (g-mm)","value":86.58745277716086},{"iteration":133,"param":"U0 (g-mm)","value":81.18578024741814},{"iteration":134,"param":"U0 (g-mm)","value":85.89161984950243},{"iteration":135,"param":"U0 (g-mm)","value":86.52280711641828},{"iteration":136,"param":"U0 (g-mm)","value":86.0146601759462},{"iteration":137,"param":"U0 (g-mm)","value":80.79565091011696},{"iteration":138,"param":"U0 (g-mm)","value":84.67655382914126},{"iteration":139,"param":"U0 (g-mm)","value":82.4616651259409},{"iteration":140,"param":"U0 (g-mm)","value":83.06961194477225},{"iteration":141,"param":"U0 (g-mm)","value":81.43504716072185},{"iteration":142,"param":"U0 (g-mm)","value":81.51467668094233},{"iteration":143,"param":"U0 (g-mm)","value":82.81749831643302},{"iteration":144,"param":"U0 (g-mm)","value":88.78234593615979},{"iteration":145,"param":"U0 (g-mm)","value":76.64938385466164},{"iteration":146,"param":"U0 (g-mm)","value":76.32191369965258},{"iteration":147,"param":"U0 (g-mm)","value":91.4803781795798},{"iteration":148,"param":"U0 (g-mm)","value":90.79719664816572},{"iteration":149,"param":"U0 (g-mm)","value":90.89726921675597},{"iteration":150,"param":"U0 (g-mm)","value":76.33992076540008},{"iteration":151,"param":"U0 (g-mm)","value":76.47863816393199},{"iteration":152,"param":"U0 (g-mm)","value":82.07091595238636},{"iteration":153,"param":"U0 (g-mm)","value":83.44185386762048},{"iteration":154,"param":"U0 (g-mm)","value":83.50587372649885},{"iteration":155,"param":"U0 (g-mm)","value":81.54216405456536},{"iteration":156,"param":"U0 (g-mm)","value":79.14382614454934},{"iteration":157,"param":"U0 (g-mm)","value":87.50092717560472},{"iteration":158,"param":"U0 (g-mm)","value":78.87588381257692},{"iteration":159,"param":"U0 (g-mm)","value":78.82311680886306},{"iteration":160,"param":"U0 (g-mm)","value":78.8609129583642},{"iteration":161,"param":"U0 (g-mm)","value":79.10845612190654},{"iteration":162,"param":"U0 (g-mm)","value":79.09127019328726},{"iteration":163,"param":"U0 (g-mm)","value":81.88568956324818},{"iteration":164,"param":"U0 (g-mm)","value":85.0159072957323},{"iteration":165,"param":"U0 (g-mm)","value":84.58854886710004},{"iteration":166,"param":"U0 (g-mm)","value":81.89628855196275},{"iteration":167,"param":"U0 (g-mm)","value":82.07078477026866},{"iteration":168,"param":"U0 (g-mm)","value":79.87957836139712},{"iteration":169,"param":"U0 (g-mm)","value":81.87176776905044},{"iteration":170,"param":"U0 (g-mm)","value":79.72850474167961},{"iteration":171,"param":"U0 (g-mm)","value":88.39077837603462},{"iteration":172,"param":"U0 (g-mm)","value":80.97102496245707},{"iteration":173,"param":"U0 (g-mm)","value":78.49625787160811},{"iteration":174,"param":"U0 (g-mm)","value":77.9918560919688},{"iteration":175,"param":"U0 (g-mm)","value":87.20616446645464},{"iteration":176,"param":"U0 (g-mm)","value":85.76300475729708},{"iteration":177,"param":"U0 (g-mm)","value":85.99182653035467},{"iteration":178,"param":"U0 (g-mm)","value":86.70976954841649},{"iteration":179,"param":"U0 (g-mm)","value":88.5027539196322},{"iteration":180,"param":"U0 (g-mm)","value":82.90578343486459},{"iteration":181,"param":"U0 (g-mm)","value":83.25698166767316},{"iteration":182,"param":"U0 (g-mm)","value":85.48447630277728},{"iteration":183,"param":"U0 (g-mm)","value":84.85795492091084},{"iteration":184,"param":"U0 (g-mm)","value":79.47069821525224},{"iteration":185,"param":"U0 (g-mm)","value":87.52477328838916},{"iteration":186,"param":"U0 (g-mm)","value":81.85036291817293},{"iteration":187,"param":"U0 (g-mm)","value":84.73390829131576},{"iteration":188,"param":"U0 (g-mm)","value":85.34048924218409},{"iteration":189,"param":"U0 (g-mm)","value":84.09534968702195},{"iteration":190,"param":"U0 (g-mm)","value":81.16749043935798},{"iteration":191,"param":"U0 (g-mm)","value":81.12882889966114},{"iteration":192,"param":"U0 (g-mm)","value":86.68962509938065},{"iteration":193,"param":"U0 (g-mm)","value":87.25008294344306},{"iteration":194,"param":"U0 (g-mm)","value":78.34739899950256},{"iteration":195,"param":"U0 (g-mm)","value":85.91407185310018},{"iteration":196,"param":"U0 (g-mm)","value":86.7347547567959},{"iteration":197,"param":"U0 (g-mm)","value":86.34382366621914},{"iteration":198,"param":"U0 (g-mm)","value":84.55278754435322},{"iteration":199,"param":"U0 (g-mm)","value":84.65719040039454},{"iteration":200,"param":"U0 (g-mm)","value":83.80289669363948},{"iteration":201,"param":"U0 (g-mm)","value":88.52770238923895},{"iteration":202,"param":"U0 (g-mm)","value":87.69905861704609},{"iteration":203,"param":"U0 (g-mm)","value":79.44843436276987},{"iteration":204,"param":"U0 (g-mm)","value":81.36075163409728},{"iteration":205,"param":"U0 (g-mm)","value":88.33617936014852},{"iteration":206,"param":"U0 (g-mm)","value":89.21037524888072},{"iteration":207,"param":"U0 (g-mm)","value":87.05731836938047},{"iteration":208,"param":"U0 (g-mm)","value":80.64426786232534},{"iteration":209,"param":"U0 (g-mm)","value":81.02773981432173},{"iteration":210,"param":"U0 (g-mm)","value":84.97378452572694},{"iteration":211,"param":"U0 (g-mm)","value":90.6188613276587},{"iteration":212,"param":"U0 (g-mm)","value":77.19204772846491},{"iteration":213,"param":"U0 (g-mm)","value":91.13730008029202},{"iteration":214,"param":"U0 (g-mm)","value":84.7095801386769},{"iteration":215,"param":"U0 (g-mm)","value":85.87583092383942},{"iteration":216,"param":"U0 (g-mm)","value":78.91057221586009},{"iteration":217,"param":"U0 (g-mm)","value":79.05092751980014},{"iteration":218,"param":"U0 (g-mm)","value":79.89679251367394},{"iteration":219,"param":"U0 (g-mm)","value":84.30681375392803},{"iteration":220,"param":"U0 (g-mm)","value":85.49154159863583},{"iteration":221,"param":"U0 (g-mm)","value":84.73563687214656},{"iteration":222,"param":"U0 (g-mm)","value":81.07308537253269},{"iteration":223,"param":"U0 (g-mm)","value":80.58597654162529},{"iteration":224,"param":"U0 (g-mm)","value":82.39057369473403},{"iteration":225,"param":"U0 (g-mm)","value":85.44545578325537},{"iteration":226,"param":"U0 (g-mm)","value":84.50445504564308},{"iteration":227,"param":"U0 (g-mm)","value":84.70733242664002},{"iteration":228,"param":"U0 (g-mm)","value":87.17417527088858},{"iteration":229,"param":"U0 (g-mm)","value":81.81908002769445},{"iteration":230,"param":"U0 (g-mm)","value":85.93840279183047},{"iteration":231,"param":"U0 (g-mm)","value":85.15155606501555},{"iteration":232,"param":"U0 (g-mm)","value":87.33693139713004},{"iteration":233,"param":"U0 (g-mm)","value":87.55697214129589},{"iteration":234,"param":"U0 (g-mm)","value":89.68623775115717},{"iteration":235,"param":"U0 (g-mm)","value":91.62344270854844},{"iteration":236,"param":"U0 (g-mm)","value":91.9951349839566},{"iteration":237,"param":"U0 (g-mm)","value":90.68913562936628},{"iteration":238,"param":"U0 (g-mm)","value":88.71401318877588},{"iteration":239,"param":"U0 (g-mm)","value":90.87164578413166},{"iteration":240,"param":"U0 (g-mm)","value":89.7837576445271},{"iteration":241,"param":"U0 (g-mm)","value":89.85525655171314},{"iteration":242,"param":"U0 (g-mm)","value":88.56133885187195},{"iteration":243,"param":"U0 (g-mm)","value":86.60226473121176},{"iteration":244,"param":"U0 (g-mm)","value":84.59623880552519},{"iteration":245,"param":"U0 (g-mm)","value":81.36813974919838},{"iteration":246,"param":"U0 (g-mm)","value":79.1478832617897},{"iteration":247,"param":"U0 (g-mm)","value":79.07301231168026},{"iteration":248,"param":"U0 (g-mm)","value":79.87768343802149},{"iteration":249,"param":"U0 (g-mm)","value":80.76051334250532},{"iteration":250,"param":"U0 (g-mm)","value":80.762389032831},{"iteration":251,"param":"U0 (g-mm)","value":80.9090602489294},{"iteration":252,"param":"U0 (g-mm)","value":83.93629267721386},{"iteration":253,"param":"U0 (g-mm)","value":83.71590206974346},{"iteration":254,"param":"U0 (g-mm)","value":83.0812344718259},{"iteration":255,"param":"U0 (g-mm)","value":83.50026574991537},{"iteration":256,"param":"U0 (g-mm)","value":83.67395729569733},{"iteration":257,"param":"U0 (g-mm)","value":80.06137814563837},{"iteration":258,"param":"U0 (g-mm)","value":81.4879161733567},{"iteration":259,"param":"U0 (g-mm)","value":80.94061976571881},{"iteration":260,"param":"U0 (g-mm)","value":86.5910897796994},{"iteration":261,"param":"U0 (g-mm)","value":81.700162889428},{"iteration":262,"param":"U0 (g-mm)","value":84.63735272579261},{"iteration":263,"param":"U0 (g-mm)","value":86.62697302686483},{"iteration":264,"param":"U0 (g-mm)","value":86.33167829939248},{"iteration":265,"param":"U0 (g-mm)","value":81.8350748677883},{"iteration":266,"param":"U0 (g-mm)","value":85.47373466890615},{"iteration":267,"param":"U0 (g-mm)","value":83.2505404780835},{"iteration":268,"param":"U0 (g-mm)","value":85.43696945227933},{"iteration":269,"param":"U0 (g-mm)","value":85.28790071318959},{"iteration":270,"param":"U0 (g-mm)","value":88.57248149566014},{"iteration":271,"param":"U0 (g-mm)","value":77.5111536107684},{"iteration":272,"param":"U0 (g-mm)","value":81.43251310161737},{"iteration":273,"param":"U0 (g-mm)","value":94.06725669923505},{"iteration":274,"param":"U0 (g-mm)","value":95.57224897845752},{"iteration":275,"param":"U0 (g-mm)","value":96.84398818671674},{"iteration":276,"param":"U0 (g-mm)","value":96.51092011064249},{"iteration":277,"param":"U0 (g-mm)","value":97.38009070900019},{"iteration":278,"param":"U0 (g-mm)","value":95.23106451058926},{"iteration":279,"param":"U0 (g-mm)","value":74.45877073787939},{"iteration":280,"param":"U0 (g-mm)","value":76.29157076829878},{"iteration":281,"param":"U0 (g-mm)","value":95.09062229691511},{"iteration":282,"param":"U0 (g-mm)","value":81.47148403985493},{"iteration":283,"param":"U0 (g-mm)","value":83.12682900199636},{"iteration":284,"param":"U0 (g-mm)","value":84.67081846971303},{"iteration":285,"param":"U0 (g-mm)","value":81.04676246474793},{"iteration":286,"param":"U0 (g-mm)","value":80.90300369906956},{"iteration":287,"param":"U0 (g-mm)","value":87.87200750078942},{"iteration":288,"param":"U0 (g-mm)","value":91.0030576235223},{"iteration":289,"param":"U0 (g-mm)","value":92.57862954866422},{"iteration":290,"param":"U0 (g-mm)","value":82.86638378641257},{"iteration":291,"param":"U0 (g-mm)","value":83.26232067096349},{"iteration":292,"param":"U0 (g-mm)","value":83.95831366083539},{"iteration":293,"param":"U0 (g-mm)","value":87.23148734208628},{"iteration":294,"param":"U0 (g-mm)","value":80.82031349630702},{"iteration":295,"param":"U0 (g-mm)","value":81.25176438509514},{"iteration":296,"param":"U0 (g-mm)","value":79.77559321073576},{"iteration":297,"param":"U0 (g-mm)","value":87.127903687408},{"iteration":298,"param":"U0 (g-mm)","value":81.52816506648415},{"iteration":299,"param":"U0 (g-mm)","value":80.72519087891332},{"iteration":300,"param":"U0 (g-mm)","value":79.18836134894433},{"iteration":301,"param":"U0 (g-mm)","value":80.04633128433125},{"iteration":302,"param":"U0 (g-mm)","value":87.82741795654178},{"iteration":303,"param":"U0 (g-mm)","value":88.7803613326327},{"iteration":304,"param":"U0 (g-mm)","value":88.19861255980719},{"iteration":305,"param":"U0 (g-mm)","value":85.80732680734312},{"iteration":306,"param":"U0 (g-mm)","value":87.78110581234537},{"iteration":307,"param":"U0 (g-mm)","value":88.59547626317969},{"iteration":308,"param":"U0 (g-mm)","value":84.03157082245542},{"iteration":309,"param":"U0 (g-mm)","value":86.5325910197576},{"iteration":310,"param":"U0 (g-mm)","value":87.92570042905477},{"iteration":311,"param":"U0 (g-mm)","value":93.90194102894809},{"iteration":312,"param":"U0 (g-mm)","value":87.66318869616475},{"iteration":313,"param":"U0 (g-mm)","value":80.34042224841498},{"iteration":314,"param":"U0 (g-mm)","value":80.9828805947467},{"iteration":315,"param":"U0 (g-mm)","value":82.13177534338342},{"iteration":316,"param":"U0 (g-mm)","value":82.36127517967017},{"iteration":317,"param":"U0 (g-mm)","value":82.90005079787339},{"iteration":318,"param":"U0 (g-mm)","value":83.3326894417927},{"iteration":319,"param":"U0 (g-mm)","value":83.90502882091137},{"iteration":320,"param":"U0 (g-mm)","value":82.77233413225458},{"iteration":321,"param":"U0 (g-mm)","value":81.44483771294738},{"iteration":322,"param":"U0 (g-mm)","value":80.79904152910412},{"iteration":323,"param":"U0 (g-mm)","value":85.89192542411269},{"iteration":324,"param":"U0 (g-mm)","value":85.37433724422058},{"iteration":325,"param":"U0 (g-mm)","value":86.47419903861235},{"iteration":326,"param":"U0 (g-mm)","value":89.00735380526801},{"iteration":327,"param":"U0 (g-mm)","value":89.93269551488964},{"iteration":328,"param":"U0 (g-mm)","value":80.50666898853385},{"iteration":329,"param":"U0 (g-mm)","value":79.52362132695673},{"iteration":330,"param":"U0 (g-mm)","value":86.78110825647728},{"iteration":331,"param":"U0 (g-mm)","value":87.19340029253262},{"iteration":332,"param":"U0 (g-mm)","value":86.10313987011627},{"iteration":333,"param":"U0 (g-mm)","value":84.75779720401074},{"iteration":334,"param":"U0 (g-mm)","value":85.56554796820126},{"iteration":335,"param":"U0 (g-mm)","value":83.38336053443021},{"iteration":336,"param":"U0 (g-mm)","value":82.27940276846823},{"iteration":337,"param":"U0 (g-mm)","value":78.60733189446016},{"iteration":338,"param":"U0 (g-mm)","value":78.18536619814385},{"iteration":339,"param":"U0 (g-mm)","value":78.46068544700844},{"iteration":340,"param":"U0 (g-mm)","value":79.40232432838427},{"iteration":341,"param":"U0 (g-mm)","value":81.4373868968701},{"iteration":342,"param":"U0 (g-mm)","value":82.90910615751851},{"iteration":343,"param":"U0 (g-mm)","value":79.09102937423043},{"iteration":344,"param":"U0 (g-mm)","value":86.42357135820887},{"iteration":345,"param":"U0 (g-mm)","value":86.35602277846242},{"iteration":346,"param":"U0 (g-mm)","value":81.76203813475928},{"iteration":347,"param":"U0 (g-mm)","value":87.23500986958864},{"iteration":348,"param":"U0 (g-mm)","value":86.9237680021114},{"iteration":349,"param":"U0 (g-mm)","value":85.85438840743748},{"iteration":350,"param":"U0 (g-mm)","value":79.43541182064546},{"iteration":351,"param":"U0 (g-mm)","value":81.20042827049784},{"iteration":352,"param":"U0 (g-mm)","value":84.30458511759906},{"iteration":353,"param":"U0 (g-mm)","value":83.98132983410075},{"iteration":354,"param":"U0 (g-mm)","value":83.06327234878083},{"iteration":355,"param":"U0 (g-mm)","value":81.73766400782559},{"iteration":356,"param":"U0 (g-mm)","value":84.64739972421039},{"iteration":357,"param":"U0 (g-mm)","value":85.28794996591488},{"iteration":358,"param":"U0 (g-mm)","value":87.77884567368854},{"iteration":359,"param":"U0 (g-mm)","value":78.25414507604337},{"iteration":360,"param":"U0 (g-mm)","value":89.23195732099224},{"iteration":361,"param":"U0 (g-mm)","value":90.33570708430769},{"iteration":362,"param":"U0 (g-mm)","value":90.83952229462024},{"iteration":363,"param":"U0 (g-mm)","value":80.1805456569902},{"iteration":364,"param":"U0 (g-mm)","value":86.90516359425737},{"iteration":365,"param":"U0 (g-mm)","value":84.66522419265208},{"iteration":366,"param":"U0 (g-mm)","value":87.58941150039804},{"iteration":367,"param":"U0 (g-mm)","value":85.3036979548785},{"iteration":368,"param":"U0 (g-mm)","value":83.45435260358863},{"iteration":369,"param":"U0 (g-mm)","value":85.10619821482148},{"iteration":370,"param":"U0 (g-mm)","value":86.33035257567155},{"iteration":371,"param":"U0 (g-mm)","value":87.29008040779894},{"iteration":372,"param":"U0 (g-mm)","value":87.74558927149033},{"iteration":373,"param":"U0 (g-mm)","value":87.64598335078878},{"iteration":374,"param":"U0 (g-mm)","value":78.14611579295253},{"iteration":375,"param":"U0 (g-mm)","value":82.13681321150314},{"iteration":376,"param":"U0 (g-mm)","value":81.22451125919443},{"iteration":377,"param":"U0 (g-mm)","value":83.4625574726743},{"iteration":378,"param":"U0 (g-mm)","value":82.2984494523602},{"iteration":379,"param":"U0 (g-mm)","value":86.00951021367955},{"iteration":380,"param":"U0 (g-mm)","value":84.82144022792275},{"iteration":381,"param":"U0 (g-mm)","value":84.52508680569107},{"iteration":382,"param":"U0 (g-mm)","value":82.9501759135358},{"iteration":383,"param":"U0 (g-mm)","value":82.47470365474912},{"iteration":384,"param":"U0 (g-mm)","value":78.57174167351526},{"iteration":385,"param":"U0 (g-mm)","value":78.97344242458254},{"iteration":386,"param":"U0 (g-mm)","value":80.52581810043978},{"iteration":387,"param":"U0 (g-mm)","value":79.72738757237644},{"iteration":388,"param":"U0 (g-mm)","value":87.76488109149362},{"iteration":389,"param":"U0 (g-mm)","value":87.76488109149362},{"iteration":390,"param":"U0 (g-mm)","value":84.87620755890777},{"iteration":391,"param":"U0 (g-mm)","value":86.26740184365576},{"iteration":392,"param":"U0 (g-mm)","value":84.32699872639037},{"iteration":393,"param":"U0 (g-mm)","value":89.25992389957119},{"iteration":394,"param":"U0 (g-mm)","value":87.8770741893248},{"iteration":395,"param":"U0 (g-mm)","value":88.95260254223139},{"iteration":396,"param":"U0 (g-mm)","value":76.62173206421699},{"iteration":397,"param":"U0 (g-mm)","value":86.64194358517506},{"iteration":398,"param":"U0 (g-mm)","value":80.27770023772176},{"iteration":399,"param":"U0 (g-mm)","value":80.27770023772176},{"iteration":400,"param":"U0 (g-mm)","value":80.41579189128446},{"iteration":401,"param":"U0 (g-mm)","value":83.10619875235663},{"iteration":402,"param":"U0 (g-mm)","value":82.58872980722961},{"iteration":403,"param":"U0 (g-mm)","value":84.99418046523228},{"iteration":404,"param":"U0 (g-mm)","value":81.37794104660023},{"iteration":405,"param":"U0 (g-mm)","value":81.19512831289472},{"iteration":406,"param":"U0 (g-mm)","value":78.39805561760949},{"iteration":407,"param":"U0 (g-mm)","value":77.26351298976623},{"iteration":408,"param":"U0 (g-mm)","value":78.703029515048},{"iteration":409,"param":"U0 (g-mm)","value":84.66056413762902},{"iteration":410,"param":"U0 (g-mm)","value":84.56242602256303},{"iteration":411,"param":"U0 (g-mm)","value":85.29106060601369},{"iteration":412,"param":"U0 (g-mm)","value":81.86006083622236},{"iteration":413,"param":"U0 (g-mm)","value":81.60935177280994},{"iteration":414,"param":"U0 (g-mm)","value":79.12967287298127},{"iteration":415,"param":"U0 (g-mm)","value":87.53791887921952},{"iteration":416,"param":"U0 (g-mm)","value":88.43501059420298},{"iteration":417,"param":"U0 (g-mm)","value":87.58477598192255},{"iteration":418,"param":"U0 (g-mm)","value":87.68508010388166},{"iteration":419,"param":"U0 (g-mm)","value":86.06468432247858},{"iteration":420,"param":"U0 (g-mm)","value":79.41014281809039},{"iteration":421,"param":"U0 (g-mm)","value":80.79158447171788},{"iteration":422,"param":"U0 (g-mm)","value":81.27670657159383},{"iteration":423,"param":"U0 (g-mm)","value":82.77990992600341},{"iteration":424,"param":"U0 (g-mm)","value":79.5204454326111},{"iteration":425,"param":"U0 (g-mm)","value":79.45685114140439},{"iteration":426,"param":"U0 (g-mm)","value":78.41612883488611},{"iteration":427,"param":"U0 (g-mm)","value":76.90499457012156},{"iteration":428,"param":"U0 (g-mm)","value":91.79506772408668},{"iteration":429,"param":"U0 (g-mm)","value":90.24662988561157},{"iteration":430,"param":"U0 (g-mm)","value":80.73116052831787},{"iteration":431,"param":"U0 (g-mm)","value":79.86383661849996},{"iteration":432,"param":"U0 (g-mm)","value":85.10239982690517},{"iteration":433,"param":"U0 (g-mm)","value":86.31093721302456},{"iteration":434,"param":"U0 (g-mm)","value":85.41237192266975},{"iteration":435,"param":"U0 (g-mm)","value":85.09280428904378},{"iteration":436,"param":"U0 (g-mm)","value":86.2986670889267},{"iteration":437,"param":"U0 (g-mm)","value":86.2986670889267},{"iteration":438,"param":"U0 (g-mm)","value":86.90209642237419},{"iteration":439,"param":"U0 (g-mm)","value":87.21171373191532},{"iteration":440,"param":"U0 (g-mm)","value":89.2140454286032},{"iteration":441,"param":"U0 (g-mm)","value":88.03876231363098},{"iteration":442,"param":"U0 (g-mm)","value":87.4238217690163},{"iteration":443,"param":"U0 (g-mm)","value":88.9023856751069},{"iteration":444,"param":"U0 (g-mm)","value":89.85344478371007},{"iteration":445,"param":"U0 (g-mm)","value":89.40399791736633},{"iteration":446,"param":"U0 (g-mm)","value":87.41244559197436},{"iteration":447,"param":"U0 (g-mm)","value":88.57929245549187},{"iteration":448,"param":"U0 (g-mm)","value":84.95465993778807},{"iteration":449,"param":"U0 (g-mm)","value":82.82025313034497},{"iteration":450,"param":"U0 (g-mm)","value":79.31794085010675},{"iteration":451,"param":"U0 (g-mm)","value":83.35616178758168},{"iteration":452,"param":"U0 (g-mm)","value":81.33975964800577},{"iteration":453,"param":"U0 (g-mm)","value":81.72923755970523},{"iteration":454,"param":"U0 (g-mm)","value":80.11167751051434},{"iteration":455,"param":"U0 (g-mm)","value":79.2574432563235},{"iteration":456,"param":"U0 (g-mm)","value":77.08206864646323},{"iteration":457,"param":"U0 (g-mm)","value":77.08206864646323},{"iteration":458,"param":"U0 (g-mm)","value":79.25878422624709},{"iteration":459,"param":"U0 (g-mm)","value":79.0342241251742},{"iteration":460,"param":"U0 (g-mm)","value":79.45164840161092},{"iteration":461,"param":"U0 (g-mm)","value":83.82741517215693},{"iteration":462,"param":"U0 (g-mm)","value":84.15917162934718},{"iteration":463,"param":"U0 (g-mm)","value":80.63419803266592},{"iteration":464,"param":"U0 (g-mm)","value":79.87205809146516},{"iteration":465,"param":"U0 (g-mm)","value":87.51598975488196},{"iteration":466,"param":"U0 (g-mm)","value":89.38841377945464},{"iteration":467,"param":"U0 (g-mm)","value":89.00308389985861},{"iteration":468,"param":"U0 (g-mm)","value":90.336743227497},{"iteration":469,"param":"U0 (g-mm)","value":88.74707236297395},{"iteration":470,"param":"U0 (g-mm)","value":88.95453292737433},{"iteration":471,"param":"U0 (g-mm)","value":78.35682579262058},{"iteration":472,"param":"U0 (g-mm)","value":82.1988230444667},{"iteration":473,"param":"U0 (g-mm)","value":83.61737304370072},{"iteration":474,"param":"U0 (g-mm)","value":80.95341704157228},{"iteration":475,"param":"U0 (g-mm)","value":79.0629363859969},{"iteration":476,"param":"U0 (g-mm)","value":88.47445983805869},{"iteration":477,"param":"U0 (g-mm)","value":87.35865805582438},{"iteration":478,"param":"U0 (g-mm)","value":84.32116310067451},{"iteration":479,"param":"U0 (g-mm)","value":83.41006851373126},{"iteration":480,"param":"U0 (g-mm)","value":83.31133660300385},{"iteration":481,"param":"U0 (g-mm)","value":83.76257475235491},{"iteration":482,"param":"U0 (g-mm)","value":84.23876464457412},{"iteration":483,"param":"U0 (g-mm)","value":81.74406099164891},{"iteration":484,"param":"U0 (g-mm)","value":83.5612221948943},{"iteration":485,"param":"U0 (g-mm)","value":86.66627154100026},{"iteration":486,"param":"U0 (g-mm)","value":90.54528282798654},{"iteration":487,"param":"U0 (g-mm)","value":77.10174157892504},{"iteration":488,"param":"U0 (g-mm)","value":78.24612848123569},{"iteration":489,"param":"U0 (g-mm)","value":75.37244990842743},{"iteration":490,"param":"U0 (g-mm)","value":77.05099180330365},{"iteration":491,"param":"U0 (g-mm)","value":87.94988599396991},{"iteration":492,"param":"U0 (g-mm)","value":87.60256791768005},{"iteration":493,"param":"U0 (g-mm)","value":91.72685979094615},{"iteration":494,"param":"U0 (g-mm)","value":80.65483227727212},{"iteration":495,"param":"U0 (g-mm)","value":86.4631459031287},{"iteration":496,"param":"U0 (g-mm)","value":85.21199900761859},{"iteration":497,"param":"U0 (g-mm)","value":81.32399682229743},{"iteration":498,"param":"U0 (g-mm)","value":85.05932169897723},{"iteration":499,"param":"U0 (g-mm)","value":83.9135949623838},{"iteration":0,"param":"Growth rate (/day)","value":0.00967609447118765},{"iteration":1,"param":"Growth rate (/day)","value":0.009538643674321398},{"iteration":2,"param":"Growth rate (/day)","value":0.008752033650882065},{"iteration":3,"param":"Growth rate (/day)","value":0.020903313820391862},{"iteration":4,"param":"Growth rate (/day)","value":0.020042142991272275},{"iteration":5,"param":"Growth rate (/day)","value":0.013354414199942757},{"iteration":6,"param":"Growth rate (/day)","value":0.014183921876119011},{"iteration":7,"param":"Growth rate (/day)","value":0.018358762510904854},{"iteration":8,"param":"Growth rate (/day)","value":0.015891731498099824},{"iteration":9,"param":"Growth rate (/day)","value":0.020649511164362026},{"iteration":10,"param":"Growth rate (/day)","value":0.01962171022804555},{"iteration":11,"param":"Growth rate (/day)","value":0.02063897466225034},{"iteration":12,"param":"Growth rate (/day)","value":0.02018608138963131},{"iteration":13,"param":"Growth rate (/day)","value":0.014707338602780676},{"iteration":14,"param":"Growth rate (/day)","value":0.010350888162094398},{"iteration":15,"param":"Growth rate (/day)","value":0.010104506372114417},{"iteration":16,"param":"Growth rate (/day)","value":0.013407992818281313},{"iteration":17,"param":"Growth rate (/day)","value":0.014420392065146326},{"iteration":18,"param":"Growth rate (/day)","value":0.017852318894210368},{"iteration":19,"param":"Growth rate (/day)","value":0.013068561898296468},{"iteration":20,"param":"Growth rate (/day)","value":0.012547806843653428},{"iteration":21,"param":"Growth rate (/day)","value":0.01784261939692158},{"iteration":22,"param":"Growth rate (/day)","value":0.014223556060626726},{"iteration":23,"param":"Growth rate (/day)","value":0.01279330525492557},{"iteration":24,"param":"Growth rate (/day)","value":0.014072283165450696},{"iteration":25,"param":"Growth rate (/day)","value":0.01414442895211681},{"iteration":26,"param":"Growth rate (/day)","value":0.014318731324375465},{"iteration":27,"param":"Growth rate (/day)","value":0.013452979006503397},{"iteration":28,"param":"Growth rate (/day)","value":0.015378580083363694},{"iteration":29,"param":"Growth rate (/day)","value":0.014735827373644704},{"iteration":30,"param":"Growth rate (/day)","value":0.013361921146670189},{"iteration":31,"param":"Growth rate (/day)","value":0.011572308389410842},{"iteration":32,"param":"Growth rate (/day)","value":0.017336080612922376},{"iteration":33,"param":"Growth rate (/day)","value":0.016033152154396355},{"iteration":34,"param":"Growth rate (/day)","value":0.01324021583454969},{"iteration":35,"param":"Growth rate (/day)","value":0.014556743422666437},{"iteration":36,"param":"Growth rate (/day)","value":0.016193677889784153},{"iteration":37,"param":"Growth rate (/day)","value":0.018442341682606455},{"iteration":38,"param":"Growth rate (/day)","value":0.010606810730590248},{"iteration":39,"param":"Growth rate (/day)","value":0.012362807236337132},{"iteration":40,"param":"Growth rate (/day)","value":0.014318400905901044},{"iteration":41,"param":"Growth rate (/day)","value":0.016630824461690757},{"iteration":42,"param":"Growth rate (/day)","value":0.01671186840077794},{"iteration":43,"param":"Growth rate (/day)","value":0.020327039344987047},{"iteration":44,"param":"Growth rate (/day)","value":0.011399356680096902},{"iteration":45,"param":"Growth rate (/day)","value":0.017034184871999914},{"iteration":46,"param":"Growth rate (/day)","value":0.015804663026047164},{"iteration":47,"param":"Growth rate (/day)","value":0.0143687855277233},{"iteration":48,"param":"Growth rate (/day)","value":0.012649919067466424},{"iteration":49,"param":"Growth rate (/day)","value":0.020592079637580914},{"iteration":50,"param":"Growth rate (/day)","value":0.017038414054280547},{"iteration":51,"param":"Growth rate (/day)","value":0.01526247832550446},{"iteration":52,"param":"Growth rate (/day)","value":0.015221075800001127},{"iteration":53,"param":"Growth rate (/day)","value":0.013350653300595464},{"iteration":54,"param":"Growth rate (/day)","value":0.017502261872227913},{"iteration":55,"param":"Growth rate (/day)","value":0.01379812851115566},{"iteration":56,"param":"Growth rate (/day)","value":0.017379356299398414},{"iteration":57,"param":"Growth rate (/day)","value":0.014566844703199435},{"iteration":58,"param":"Growth rate (/day)","value":0.014423391796589996},{"iteration":59,"param":"Growth rate (/day)","value":0.018056738611211362},{"iteration":60,"param":"Growth rate (/day)","value":0.012993957781672812},{"iteration":61,"param":"Growth rate (/day)","value":0.0135818553555154},{"iteration":62,"param":"Growth rate (/day)","value":0.011053058100014905},{"iteration":63,"param":"Growth rate (/day)","value":0.01570739197185477},{"iteration":64,"param":"Growth rate (/day)","value":0.01668658970933113},{"iteration":65,"param":"Growth rate (/day)","value":0.02133337592405749},{"iteration":66,"param":"Growth rate (/day)","value":0.01946248871816225},{"iteration":67,"param":"Growth rate (/day)","value":0.017934718439354617},{"iteration":68,"param":"Growth rate (/day)","value":0.013278564907627875},{"iteration":69,"param":"Growth rate (/day)","value":0.016467197833629158},{"iteration":70,"param":"Growth rate (/day)","value":0.021308832330848883},{"iteration":71,"param":"Growth rate (/day)","value":0.01553849241902846},{"iteration":72,"param":"Growth rate (/day)","value":0.013378945820099592},{"iteration":73,"param":"Growth rate (/day)","value":0.010659449918884437},{"iteration":74,"param":"Growth rate (/day)","value":0.01586589709252855},{"iteration":75,"param":"Growth rate (/day)","value":0.012477104322264109},{"iteration":76,"param":"Growth rate (/day)","value":0.01856081233742684},{"iteration":77,"param":"Growth rate (/day)","value":0.02003468045214333},{"iteration":78,"param":"Growth rate (/day)","value":0.020613504077818774},{"iteration":79,"param":"Growth rate (/day)","value":0.015006006572212915},{"iteration":80,"param":"Growth rate (/day)","value":0.015432060311778779},{"iteration":81,"param":"Growth rate (/day)","value":0.01652541625292053},{"iteration":82,"param":"Growth rate (/day)","value":0.015726678476864254},{"iteration":83,"param":"Growth rate (/day)","value":0.017095551157587263},{"iteration":84,"param":"Growth rate (/day)","value":0.016220770030896708},{"iteration":85,"param":"Growth rate (/day)","value":0.01522208125973274},{"iteration":86,"param":"Growth rate (/day)","value":0.01626706145862969},{"iteration":87,"param":"Growth rate (/day)","value":0.01626706145862969},{"iteration":88,"param":"Growth rate (/day)","value":0.017269723741187827},{"iteration":89,"param":"Growth rate (/day)","value":0.013877685052311548},{"iteration":90,"param":"Growth rate (/day)","value":0.0131068299164963},{"iteration":91,"param":"Growth rate (/day)","value":0.016196071991158877},{"iteration":92,"param":"Growth rate (/day)","value":0.01256039772568787},{"iteration":93,"param":"Growth rate (/day)","value":0.017859656131052497},{"iteration":94,"param":"Growth rate (/day)","value":0.014413157287817417},{"iteration":95,"param":"Growth rate (/day)","value":0.01446400897419643},{"iteration":96,"param":"Growth rate (/day)","value":0.015611493063550934},{"iteration":97,"param":"Growth rate (/day)","value":0.016646526028861287},{"iteration":98,"param":"Growth rate (/day)","value":0.022500597033302743},{"iteration":99,"param":"Growth rate (/day)","value":0.013971475571513535},{"iteration":100,"param":"Growth rate (/day)","value":0.008860780202270681},{"iteration":101,"param":"Growth rate (/day)","value":0.008449427385646403},{"iteration":102,"param":"Growth rate (/day)","value":0.022242129446028266},{"iteration":103,"param":"Growth rate (/day)","value":0.018362094678031172},{"iteration":104,"param":"Growth rate (/day)","value":0.014937254446667169},{"iteration":105,"param":"Growth rate (/day)","value":0.019822997688516062},{"iteration":106,"param":"Growth rate (/day)","value":0.01607647119682481},{"iteration":107,"param":"Growth rate (/day)","value":0.017895197514162568},{"iteration":108,"param":"Growth rate (/day)","value":0.018269257113629426},{"iteration":109,"param":"Growth rate (/day)","value":0.016801603245133634},{"iteration":110,"param":"Growth rate (/day)","value":0.015083631124551602},{"iteration":111,"param":"Growth rate (/day)","value":0.016676771899548807},{"iteration":112,"param":"Growth rate (/day)","value":0.014146042598240182},{"iteration":113,"param":"Growth rate (/day)","value":0.013418640581343799},{"iteration":114,"param":"Growth rate (/day)","value":0.01641339851341454},{"iteration":115,"param":"Growth rate (/day)","value":0.01564433039772071},{"iteration":116,"param":"Growth rate (/day)","value":0.018807100453366244},{"iteration":117,"param":"Growth rate (/day)","value":0.020990632038006867},{"iteration":118,"param":"Growth rate (/day)","value":0.021250961327398187},{"iteration":119,"param":"Growth rate (/day)","value":0.019975325299984126},{"iteration":120,"param":"Growth rate (/day)","value":0.0198523425003404},{"iteration":121,"param":"Growth rate (/day)","value":0.02169837474486295},{"iteration":122,"param":"Growth rate (/day)","value":0.016463934767248535},{"iteration":123,"param":"Growth rate (/day)","value":0.018116533930144445},{"iteration":124,"param":"Growth rate (/day)","value":0.016988125845879845},{"iteration":125,"param":"Growth rate (/day)","value":0.014812257030583732},{"iteration":126,"param":"Growth rate (/day)","value":0.011504595743166418},{"iteration":127,"param":"Growth rate (/day)","value":0.019082689140876668},{"iteration":128,"param":"Growth rate (/day)","value":0.010818677386430567},{"iteration":129,"param":"Growth rate (/day)","value":0.011498098971730679},{"iteration":130,"param":"Growth rate (/day)","value":0.017886658361564705},{"iteration":131,"param":"Growth rate (/day)","value":0.013463914603663278},{"iteration":132,"param":"Growth rate (/day)","value":0.014093818807351926},{"iteration":133,"param":"Growth rate (/day)","value":0.01721332773752288},{"iteration":134,"param":"Growth rate (/day)","value":0.013641076197947348},{"iteration":135,"param":"Growth rate (/day)","value":0.013366550880065201},{"iteration":136,"param":"Growth rate (/day)","value":0.014181285447765042},{"iteration":137,"param":"Growth rate (/day)","value":0.015571688589277878},{"iteration":138,"param":"Growth rate (/day)","value":0.014262214229278551},{"iteration":139,"param":"Growth rate (/day)","value":0.015897955338764442},{"iteration":140,"param":"Growth rate (/day)","value":0.01574941312003368},{"iteration":141,"param":"Growth rate (/day)","value":0.016376117511676672},{"iteration":142,"param":"Growth rate (/day)","value":0.016076029494188602},{"iteration":143,"param":"Growth rate (/day)","value":0.016135999521178685},{"iteration":144,"param":"Growth rate (/day)","value":0.012014661535522622},{"iteration":145,"param":"Growth rate (/day)","value":0.020012797983332085},{"iteration":146,"param":"Growth rate (/day)","value":0.020473413385371078},{"iteration":147,"param":"Growth rate (/day)","value":0.010312692620407946},{"iteration":148,"param":"Growth rate (/day)","value":0.011398821000540798},{"iteration":149,"param":"Growth rate (/day)","value":0.010651978760824818},{"iteration":150,"param":"Growth rate (/day)","value":0.020833512645679383},{"iteration":151,"param":"Growth rate (/day)","value":0.021388833416983326},{"iteration":152,"param":"Growth rate (/day)","value":0.016645502318860996},{"iteration":153,"param":"Growth rate (/day)","value":0.01469971025627709},{"iteration":154,"param":"Growth rate (/day)","value":0.01603357662785839},{"iteration":155,"param":"Growth rate (/day)","value":0.016864144286679476},{"iteration":156,"param":"Growth rate (/day)","value":0.018923650648881036},{"iteration":157,"param":"Growth rate (/day)","value":0.012591954333432439},{"iteration":158,"param":"Growth rate (/day)","value":0.019512223502902454},{"iteration":159,"param":"Growth rate (/day)","value":0.02034940612756276},{"iteration":160,"param":"Growth rate (/day)","value":0.018274168168985205},{"iteration":161,"param":"Growth rate (/day)","value":0.01984371828329387},{"iteration":162,"param":"Growth rate (/day)","value":0.018444042391406613},{"iteration":163,"param":"Growth rate (/day)","value":0.0167895372740898},{"iteration":164,"param":"Growth rate (/day)","value":0.014736116753093324},{"iteration":165,"param":"Growth rate (/day)","value":0.014726592855578959},{"iteration":166,"param":"Growth rate (/day)","value":0.01583866762837858},{"iteration":167,"param":"Growth rate (/day)","value":0.017066635001315687},{"iteration":168,"param":"Growth rate (/day)","value":0.01778100395446029},{"iteration":169,"param":"Growth rate (/day)","value":0.015075945872664243},{"iteration":170,"param":"Growth rate (/day)","value":0.01907206273659459},{"iteration":171,"param":"Growth rate (/day)","value":0.01194287403231427},{"iteration":172,"param":"Growth rate (/day)","value":0.016787840096128263},{"iteration":173,"param":"Growth rate (/day)","value":0.017839317450317936},{"iteration":174,"param":"Growth rate (/day)","value":0.017097885186139448},{"iteration":175,"param":"Growth rate (/day)","value":0.012827217093701633},{"iteration":176,"param":"Growth rate (/day)","value":0.013959412624459527},{"iteration":177,"param":"Growth rate (/day)","value":0.014823269303990088},{"iteration":178,"param":"Growth rate (/day)","value":0.012562663867813849},{"iteration":179,"param":"Growth rate (/day)","value":0.012587410733080812},{"iteration":180,"param":"Growth rate (/day)","value":0.016456639589087232},{"iteration":181,"param":"Growth rate (/day)","value":0.01581847457481674},{"iteration":182,"param":"Growth rate (/day)","value":0.014755603418399545},{"iteration":183,"param":"Growth rate (/day)","value":0.013746601311373861},{"iteration":184,"param":"Growth rate (/day)","value":0.01759877716937677},{"iteration":185,"param":"Growth rate (/day)","value":0.012809438884751298},{"iteration":186,"param":"Growth rate (/day)","value":0.01572026157699066},{"iteration":187,"param":"Growth rate (/day)","value":0.0154296028963134},{"iteration":188,"param":"Growth rate (/day)","value":0.014349333210206375},{"iteration":189,"param":"Growth rate (/day)","value":0.014703415076686073},{"iteration":190,"param":"Growth rate (/day)","value":0.01617520771236974},{"iteration":191,"param":"Growth rate (/day)","value":0.015593075897775532},{"iteration":192,"param":"Growth rate (/day)","value":0.013517511955494693},{"iteration":193,"param":"Growth rate (/day)","value":0.012871282779621688},{"iteration":194,"param":"Growth rate (/day)","value":0.019055460555545654},{"iteration":195,"param":"Growth rate (/day)","value":0.012586706501991925},{"iteration":196,"param":"Growth rate (/day)","value":0.014625404538431854},{"iteration":197,"param":"Growth rate (/day)","value":0.011864654009726076},{"iteration":198,"param":"Growth rate (/day)","value":0.016138076240856183},{"iteration":199,"param":"Growth rate (/day)","value":0.01541794422662139},{"iteration":200,"param":"Growth rate (/day)","value":0.01343178037274429},{"iteration":201,"param":"Growth rate (/day)","value":0.013242093567035016},{"iteration":202,"param":"Growth rate (/day)","value":0.010517842711228558},{"iteration":203,"param":"Growth rate (/day)","value":0.02048005262137777},{"iteration":204,"param":"Growth rate (/day)","value":0.019079089239483586},{"iteration":205,"param":"Growth rate (/day)","value":0.010577547261125851},{"iteration":206,"param":"Growth rate (/day)","value":0.010757267562785612},{"iteration":207,"param":"Growth rate (/day)","value":0.012169379447188376},{"iteration":208,"param":"Growth rate (/day)","value":0.01635036891368539},{"iteration":209,"param":"Growth rate (/day)","value":0.015466798327929064},{"iteration":210,"param":"Growth rate (/day)","value":0.015206985810922785},{"iteration":211,"param":"Growth rate (/day)","value":0.009907237611164063},{"iteration":212,"param":"Growth rate (/day)","value":0.02107788279685048},{"iteration":213,"param":"Growth rate (/day)","value":0.008378906243977349},{"iteration":214,"param":"Growth rate (/day)","value":0.012597512242919537},{"iteration":215,"param":"Growth rate (/day)","value":0.013788908449851606},{"iteration":216,"param":"Growth rate (/day)","value":0.0167823733712895},{"iteration":217,"param":"Growth rate (/day)","value":0.01812397853608786},{"iteration":218,"param":"Growth rate (/day)","value":0.017796995409973138},{"iteration":219,"param":"Growth rate (/day)","value":0.01620036558067852},{"iteration":220,"param":"Growth rate (/day)","value":0.013914701154548086},{"iteration":221,"param":"Growth rate (/day)","value":0.014750678070278335},{"iteration":222,"param":"Growth rate (/day)","value":0.017351104484200675},{"iteration":223,"param":"Growth rate (/day)","value":0.0175422544703562},{"iteration":224,"param":"Growth rate (/day)","value":0.015398703042345873},{"iteration":225,"param":"Growth rate (/day)","value":0.014485950279433302},{"iteration":226,"param":"Growth rate (/day)","value":0.015027654826585753},{"iteration":227,"param":"Growth rate (/day)","value":0.013183604430771921},{"iteration":228,"param":"Growth rate (/day)","value":0.013721232211204772},{"iteration":229,"param":"Growth rate (/day)","value":0.015629210808714208},{"iteration":230,"param":"Growth rate (/day)","value":0.01545741269829733},{"iteration":231,"param":"Growth rate (/day)","value":0.015068565221171953},{"iteration":232,"param":"Growth rate (/day)","value":0.01276821931438621},{"iteration":233,"param":"Growth rate (/day)","value":0.011935702218083261},{"iteration":234,"param":"Growth rate (/day)","value":0.011564904709558269},{"iteration":235,"param":"Growth rate (/day)","value":0.009814961062636188},{"iteration":236,"param":"Growth rate (/day)","value":0.009920026942704867},{"iteration":237,"param":"Growth rate (/day)","value":0.009757246393367135},{"iteration":238,"param":"Growth rate (/day)","value":0.012601804534805429},{"iteration":239,"param":"Growth rate (/day)","value":0.010804788506913972},{"iteration":240,"param":"Growth rate (/day)","value":0.011247674794458122},{"iteration":241,"param":"Growth rate (/day)","value":0.012444029119201828},{"iteration":242,"param":"Growth rate (/day)","value":0.010875675206829666},{"iteration":243,"param":"Growth rate (/day)","value":0.012408667231925526},{"iteration":244,"param":"Growth rate (/day)","value":0.016454353826532743},{"iteration":245,"param":"Growth rate (/day)","value":0.014575177696790068},{"iteration":246,"param":"Growth rate (/day)","value":0.019552732873337763},{"iteration":247,"param":"Growth rate (/day)","value":0.01869801744714768},{"iteration":248,"param":"Growth rate (/day)","value":0.017961073012471452},{"iteration":249,"param":"Growth rate (/day)","value":0.016926757009577215},{"iteration":250,"param":"Growth rate (/day)","value":0.016946610468692305},{"iteration":251,"param":"Growth rate (/day)","value":0.01759372626937419},{"iteration":252,"param":"Growth rate (/day)","value":0.015812124919712303},{"iteration":253,"param":"Growth rate (/day)","value":0.015659851925018384},{"iteration":254,"param":"Growth rate (/day)","value":0.014971243773323043},{"iteration":255,"param":"Growth rate (/day)","value":0.015987205335200736},{"iteration":256,"param":"Growth rate (/day)","value":0.016702984321732676},{"iteration":257,"param":"Growth rate (/day)","value":0.017658690960079867},{"iteration":258,"param":"Growth rate (/day)","value":0.017006187523661197},{"iteration":259,"param":"Growth rate (/day)","value":0.01592963699887184},{"iteration":260,"param":"Growth rate (/day)","value":0.012406023953124913},{"iteration":261,"param":"Growth rate (/day)","value":0.01544527472292984},{"iteration":262,"param":"Growth rate (/day)","value":0.01278117693160043},{"iteration":263,"param":"Growth rate (/day)","value":0.014517195561551205},{"iteration":264,"param":"Growth rate (/day)","value":0.012993656294607603},{"iteration":265,"param":"Growth rate (/day)","value":0.015910124035663664},{"iteration":266,"param":"Growth rate (/day)","value":0.013914895196907341},{"iteration":267,"param":"Growth rate (/day)","value":0.016917791890675656},{"iteration":268,"param":"Growth rate (/day)","value":0.015730291366844753},{"iteration":269,"param":"Growth rate (/day)","value":0.01321455887693278},{"iteration":270,"param":"Growth rate (/day)","value":0.01106069955063378},{"iteration":271,"param":"Growth rate (/day)","value":0.018169314034355927},{"iteration":272,"param":"Growth rate (/day)","value":0.0155285546381725},{"iteration":273,"param":"Growth rate (/day)","value":0.007609849937163802},{"iteration":274,"param":"Growth rate (/day)","value":0.007569862523871112},{"iteration":275,"param":"Growth rate (/day)","value":0.008225198714866374},{"iteration":276,"param":"Growth rate (/day)","value":0.0063063703565318695},{"iteration":277,"param":"Growth rate (/day)","value":0.006759239148469404},{"iteration":278,"param":"Growth rate (/day)","value":0.00740112476079964},{"iteration":279,"param":"Growth rate (/day)","value":0.021400415690648125},{"iteration":280,"param":"Growth rate (/day)","value":0.021463377679071218},{"iteration":281,"param":"Growth rate (/day)","value":0.00792085190859168},{"iteration":282,"param":"Growth rate (/day)","value":0.017142664395935592},{"iteration":283,"param":"Growth rate (/day)","value":0.015106075093528865},{"iteration":284,"param":"Growth rate (/day)","value":0.014210114674418151},{"iteration":285,"param":"Growth rate (/day)","value":0.01658435378373305},{"iteration":286,"param":"Growth rate (/day)","value":0.01754308481789504},{"iteration":287,"param":"Growth rate (/day)","value":0.011344227478994825},{"iteration":288,"param":"Growth rate (/day)","value":0.011556924249001944},{"iteration":289,"param":"Growth rate (/day)","value":0.009486833717109807},{"iteration":290,"param":"Growth rate (/day)","value":0.01593695176743412},{"iteration":291,"param":"Growth rate (/day)","value":0.01535254211131398},{"iteration":292,"param":"Growth rate (/day)","value":0.013738279674359474},{"iteration":293,"param":"Growth rate (/day)","value":0.013610550973088479},{"iteration":294,"param":"Growth rate (/day)","value":0.01857688303145898},{"iteration":295,"param":"Growth rate (/day)","value":0.017812614901683666},{"iteration":296,"param":"Growth rate (/day)","value":0.018641214480004494},{"iteration":297,"param":"Growth rate (/day)","value":0.013504945015347413},{"iteration":298,"param":"Growth rate (/day)","value":0.017441235054188924},{"iteration":299,"param":"Growth rate (/day)","value":0.019541351692836675},{"iteration":300,"param":"Growth rate (/day)","value":0.0152522263023727},{"iteration":301,"param":"Growth rate (/day)","value":0.016926525253121886},{"iteration":302,"param":"Growth rate (/day)","value":0.013697246331500183},{"iteration":303,"param":"Growth rate (/day)","value":0.012855708715364041},{"iteration":304,"param":"Growth rate (/day)","value":0.014181506030028887},{"iteration":305,"param":"Growth rate (/day)","value":0.015195888747202605},{"iteration":306,"param":"Growth rate (/day)","value":0.010913072925414354},{"iteration":307,"param":"Growth rate (/day)","value":0.011810223670360208},{"iteration":308,"param":"Growth rate (/day)","value":0.015367778320371367},{"iteration":309,"param":"Growth rate (/day)","value":0.01553789660283105},{"iteration":310,"param":"Growth rate (/day)","value":0.01579024685159193},{"iteration":311,"param":"Growth rate (/day)","value":0.011100884403892883},{"iteration":312,"param":"Growth rate (/day)","value":0.013211978673519333},{"iteration":313,"param":"Growth rate (/day)","value":0.017377611307695263},{"iteration":314,"param":"Growth rate (/day)","value":0.01739338712137024},{"iteration":315,"param":"Growth rate (/day)","value":0.016994845623413076},{"iteration":316,"param":"Growth rate (/day)","value":0.015756301472143193},{"iteration":317,"param":"Growth rate (/day)","value":0.015946514545973733},{"iteration":318,"param":"Growth rate (/day)","value":0.015269742114704136},{"iteration":319,"param":"Growth rate (/day)","value":0.016115407915375003},{"iteration":320,"param":"Growth rate (/day)","value":0.014166338143478919},{"iteration":321,"param":"Growth rate (/day)","value":0.014842106381472833},{"iteration":322,"param":"Growth rate (/day)","value":0.014322724889900168},{"iteration":323,"param":"Growth rate (/day)","value":0.013709217127070895},{"iteration":324,"param":"Growth rate (/day)","value":0.01414472262676856},{"iteration":325,"param":"Growth rate (/day)","value":0.013440049842147138},{"iteration":326,"param":"Growth rate (/day)","value":0.011355599952138615},{"iteration":327,"param":"Growth rate (/day)","value":0.011176330872158224},{"iteration":328,"param":"Growth rate (/day)","value":0.017743576588787446},{"iteration":329,"param":"Growth rate (/day)","value":0.0190364128282806},{"iteration":330,"param":"Growth rate (/day)","value":0.01206599897700592},{"iteration":331,"param":"Growth rate (/day)","value":0.014083880743474182},{"iteration":332,"param":"Growth rate (/day)","value":0.012879856677347513},{"iteration":333,"param":"Growth rate (/day)","value":0.0128344502641294},{"iteration":334,"param":"Growth rate (/day)","value":0.013835038184062955},{"iteration":335,"param":"Growth rate (/day)","value":0.015893346354973605},{"iteration":336,"param":"Growth rate (/day)","value":0.015517629921253214},{"iteration":337,"param":"Growth rate (/day)","value":0.019771611264571644},{"iteration":338,"param":"Growth rate (/day)","value":0.017968282851190717},{"iteration":339,"param":"Growth rate (/day)","value":0.018229359243692615},{"iteration":340,"param":"Growth rate (/day)","value":0.018682477823894518},{"iteration":341,"param":"Growth rate (/day)","value":0.018045339196301993},{"iteration":342,"param":"Growth rate (/day)","value":0.015882048021599867},{"iteration":343,"param":"Growth rate (/day)","value":0.015622717070909214},{"iteration":344,"param":"Growth rate (/day)","value":0.014976827658074414},{"iteration":345,"param":"Growth rate (/day)","value":0.015206846685486615},{"iteration":346,"param":"Growth rate (/day)","value":0.016196386847543313},{"iteration":347,"param":"Growth rate (/day)","value":0.011853580109621467},{"iteration":348,"param":"Growth rate (/day)","value":0.013519429466300867},{"iteration":349,"param":"Growth rate (/day)","value":0.012178310259024733},{"iteration":350,"param":"Growth rate (/day)","value":0.01630268361546187},{"iteration":351,"param":"Growth rate (/day)","value":0.016192356407074865},{"iteration":352,"param":"Growth rate (/day)","value":0.014973348103137014},{"iteration":353,"param":"Growth rate (/day)","value":0.014511041603195458},{"iteration":354,"param":"Growth rate (/day)","value":0.016110724800768805},{"iteration":355,"param":"Growth rate (/day)","value":0.016072555112702062},{"iteration":356,"param":"Growth rate (/day)","value":0.01409257873290542},{"iteration":357,"param":"Growth rate (/day)","value":0.013429789719544815},{"iteration":358,"param":"Growth rate (/day)","value":0.011461672391287116},{"iteration":359,"param":"Growth rate (/day)","value":0.01815635964140415},{"iteration":360,"param":"Growth rate (/day)","value":0.010291972665456374},{"iteration":361,"param":"Growth rate (/day)","value":0.012153107454339543},{"iteration":362,"param":"Growth rate (/day)","value":0.012451641069184801},{"iteration":363,"param":"Growth rate (/day)","value":0.016593415166217464},{"iteration":364,"param":"Growth rate (/day)","value":0.011989248993723004},{"iteration":365,"param":"Growth rate (/day)","value":0.01410780360570617},{"iteration":366,"param":"Growth rate (/day)","value":0.01302531419941084},{"iteration":367,"param":"Growth rate (/day)","value":0.014244023370701409},{"iteration":368,"param":"Growth rate (/day)","value":0.01546689600665136},{"iteration":369,"param":"Growth rate (/day)","value":0.014780488726797126},{"iteration":370,"param":"Growth rate (/day)","value":0.01319429985250787},{"iteration":371,"param":"Growth rate (/day)","value":0.013696206630310834},{"iteration":372,"param":"Growth rate (/day)","value":0.013681591850240895},{"iteration":373,"param":"Growth rate (/day)","value":0.011847236625797076},{"iteration":374,"param":"Growth rate (/day)","value":0.019213064515105467},{"iteration":375,"param":"Growth rate (/day)","value":0.016011573900795918},{"iteration":376,"param":"Growth rate (/day)","value":0.01619141225549255},{"iteration":377,"param":"Growth rate (/day)","value":0.014028116733400653},{"iteration":378,"param":"Growth rate (/day)","value":0.015109999064448307},{"iteration":379,"param":"Growth rate (/day)","value":0.01442663731623718},{"iteration":380,"param":"Growth rate (/day)","value":0.013072396073937457},{"iteration":381,"param":"Growth rate (/day)","value":0.014817491221803075},{"iteration":382,"param":"Growth rate (/day)","value":0.015340487140128664},{"iteration":383,"param":"Growth rate (/day)","value":0.016203135487920194},{"iteration":384,"param":"Growth rate (/day)","value":0.018189991867840337},{"iteration":385,"param":"Growth rate (/day)","value":0.019430832310513183},{"iteration":386,"param":"Growth rate (/day)","value":0.01829778164218048},{"iteration":387,"param":"Growth rate (/day)","value":0.017817757160274783},{"iteration":388,"param":"Growth rate (/day)","value":0.012756039545168057},{"iteration":389,"param":"Growth rate (/day)","value":0.012756039545168057},{"iteration":390,"param":"Growth rate (/day)","value":0.014917275066249144},{"iteration":391,"param":"Growth rate (/day)","value":0.016356670997583457},{"iteration":392,"param":"Growth rate (/day)","value":0.013144181097523204},{"iteration":393,"param":"Growth rate (/day)","value":0.014108785526357507},{"iteration":394,"param":"Growth rate (/day)","value":0.011463030262977849},{"iteration":395,"param":"Growth rate (/day)","value":0.009458589538933205},{"iteration":396,"param":"Growth rate (/day)","value":0.021733443266242842},{"iteration":397,"param":"Growth rate (/day)","value":0.0145678787307308},{"iteration":398,"param":"Growth rate (/day)","value":0.016079915199160327},{"iteration":399,"param":"Growth rate (/day)","value":0.016079915199160327},{"iteration":400,"param":"Growth rate (/day)","value":0.018366433040508383},{"iteration":401,"param":"Growth rate (/day)","value":0.01486452335871093},{"iteration":402,"param":"Growth rate (/day)","value":0.014663259978204932},{"iteration":403,"param":"Growth rate (/day)","value":0.016119886081178328},{"iteration":404,"param":"Growth rate (/day)","value":0.018726707133684975},{"iteration":405,"param":"Growth rate (/day)","value":0.01644672858422408},{"iteration":406,"param":"Growth rate (/day)","value":0.019038367371172104},{"iteration":407,"param":"Growth rate (/day)","value":0.018912829912271212},{"iteration":408,"param":"Growth rate (/day)","value":0.018869767798378276},{"iteration":409,"param":"Growth rate (/day)","value":0.01664311676627341},{"iteration":410,"param":"Growth rate (/day)","value":0.013553958824963611},{"iteration":411,"param":"Growth rate (/day)","value":0.01399408906514585},{"iteration":412,"param":"Growth rate (/day)","value":0.017151978566145518},{"iteration":413,"param":"Growth rate (/day)","value":0.016763277543862},{"iteration":414,"param":"Growth rate (/day)","value":0.017784667040506245},{"iteration":415,"param":"Growth rate (/day)","value":0.011134100464236013},{"iteration":416,"param":"Growth rate (/day)","value":0.013716660666979975},{"iteration":417,"param":"Growth rate (/day)","value":0.011081798547140476},{"iteration":418,"param":"Growth rate (/day)","value":0.011536875294008755},{"iteration":419,"param":"Growth rate (/day)","value":0.014732644069407242},{"iteration":420,"param":"Growth rate (/day)","value":0.017005689562972517},{"iteration":421,"param":"Growth rate (/day)","value":0.015741092074300002},{"iteration":422,"param":"Growth rate (/day)","value":0.01682381708340307},{"iteration":423,"param":"Growth rate (/day)","value":0.015885327045536773},{"iteration":424,"param":"Growth rate (/day)","value":0.01789061569191944},{"iteration":425,"param":"Growth rate (/day)","value":0.01929227265991933},{"iteration":426,"param":"Growth rate (/day)","value":0.019394009182619562},{"iteration":427,"param":"Growth rate (/day)","value":0.020388792653312327},{"iteration":428,"param":"Growth rate (/day)","value":0.01141446239286227},{"iteration":429,"param":"Growth rate (/day)","value":0.012625897583745924},{"iteration":430,"param":"Growth rate (/day)","value":0.018009233633591235},{"iteration":431,"param":"Growth rate (/day)","value":0.01655035981572759},{"iteration":432,"param":"Growth rate (/day)","value":0.012465390785304408},{"iteration":433,"param":"Growth rate (/day)","value":0.015053313859910489},{"iteration":434,"param":"Growth rate (/day)","value":0.012523515461649504},{"iteration":435,"param":"Growth rate (/day)","value":0.013063711395699684},{"iteration":436,"param":"Growth rate (/day)","value":0.012132654606447938},{"iteration":437,"param":"Growth rate (/day)","value":0.012132654606447938},{"iteration":438,"param":"Growth rate (/day)","value":0.013942885839844748},{"iteration":439,"param":"Growth rate (/day)","value":0.011713787522434408},{"iteration":440,"param":"Growth rate (/day)","value":0.013226274126735387},{"iteration":441,"param":"Growth rate (/day)","value":0.011082854388756893},{"iteration":442,"param":"Growth rate (/day)","value":0.013488740041982044},{"iteration":443,"param":"Growth rate (/day)","value":0.011074554869881707},{"iteration":444,"param":"Growth rate (/day)","value":0.012916843786081562},{"iteration":445,"param":"Growth rate (/day)","value":0.011613364968915645},{"iteration":446,"param":"Growth rate (/day)","value":0.012784894138842592},{"iteration":447,"param":"Growth rate (/day)","value":0.012043843565359346},{"iteration":448,"param":"Growth rate (/day)","value":0.014416434404750614},{"iteration":449,"param":"Growth rate (/day)","value":0.01638200946880791},{"iteration":450,"param":"Growth rate (/day)","value":0.016950814370539084},{"iteration":451,"param":"Growth rate (/day)","value":0.013114902390494003},{"iteration":452,"param":"Growth rate (/day)","value":0.016261492210752168},{"iteration":453,"param":"Growth rate (/day)","value":0.01777646289226114},{"iteration":454,"param":"Growth rate (/day)","value":0.01808816446129347},{"iteration":455,"param":"Growth rate (/day)","value":0.019088412731214054},{"iteration":456,"param":"Growth rate (/day)","value":0.01912830939762738},{"iteration":457,"param":"Growth rate (/day)","value":0.01912830939762738},{"iteration":458,"param":"Growth rate (/day)","value":0.019319967028299793},{"iteration":459,"param":"Growth rate (/day)","value":0.017300353605787577},{"iteration":460,"param":"Growth rate (/day)","value":0.019562056934938517},{"iteration":461,"param":"Growth rate (/day)","value":0.0168630351321094},{"iteration":462,"param":"Growth rate (/day)","value":0.015536669266039221},{"iteration":463,"param":"Growth rate (/day)","value":0.01777758960433963},{"iteration":464,"param":"Growth rate (/day)","value":0.018715702969069648},{"iteration":465,"param":"Growth rate (/day)","value":0.011722501827413646},{"iteration":466,"param":"Growth rate (/day)","value":0.012296284328693223},{"iteration":467,"param":"Growth rate (/day)","value":0.012929482370685969},{"iteration":468,"param":"Growth rate (/day)","value":0.009741808658157611},{"iteration":469,"param":"Growth rate (/day)","value":0.013401582280028806},{"iteration":470,"param":"Growth rate (/day)","value":0.01389788296540959},{"iteration":471,"param":"Growth rate (/day)","value":0.0187484259049504},{"iteration":472,"param":"Growth rate (/day)","value":0.015885598847801958},{"iteration":473,"param":"Growth rate (/day)","value":0.015648140693804945},{"iteration":474,"param":"Growth rate (/day)","value":0.01868910074744424},{"iteration":475,"param":"Growth rate (/day)","value":0.016467042872082695},{"iteration":476,"param":"Growth rate (/day)","value":0.013652653403474194},{"iteration":477,"param":"Growth rate (/day)","value":0.010711060796276798},{"iteration":478,"param":"Growth rate (/day)","value":0.014885376983672226},{"iteration":479,"param":"Growth rate (/day)","value":0.015238935626424725},{"iteration":480,"param":"Growth rate (/day)","value":0.0153583952278737},{"iteration":481,"param":"Growth rate (/day)","value":0.016052416785134922},{"iteration":482,"param":"Growth rate (/day)","value":0.015842096130986732},{"iteration":483,"param":"Growth rate (/day)","value":0.015202491778736105},{"iteration":484,"param":"Growth rate (/day)","value":0.014499940698256022},{"iteration":485,"param":"Growth rate (/day)","value":0.013685827418654175},{"iteration":486,"param":"Growth rate (/day)","value":0.011974966598068891},{"iteration":487,"param":"Growth rate (/day)","value":0.02033248187786911},{"iteration":488,"param":"Growth rate (/day)","value":0.01905843443080488},{"iteration":489,"param":"Growth rate (/day)","value":0.021871966079976823},{"iteration":490,"param":"Growth rate (/day)","value":0.019498968654339834},{"iteration":491,"param":"Growth rate (/day)","value":0.012930395925194292},{"iteration":492,"param":"Growth rate (/day)","value":0.012061103755453715},{"iteration":493,"param":"Growth rate (/day)","value":0.011630161996837682},{"iteration":494,"param":"Growth rate (/day)","value":0.015448041449902113},{"iteration":495,"param":"Growth rate (/day)","value":0.015480064253096866},{"iteration":496,"param":"Growth rate (/day)","value":0.013057715332987453},{"iteration":497,"param":"Growth rate (/day)","value":0.015321259106072736},{"iteration":498,"param":"Growth rate (/day)","value":0.014243088374538486},{"iteration":499,"param":"Growth rate (/day)","value":0.014434162887781245},{"iteration":0,"param":"Sigma (noise)","value":0.09982041261248271},{"iteration":1,"param":"Sigma (noise)","value":0.10305148772474365},{"iteration":2,"param":"Sigma (noise)","value":0.09221550455353923},{"iteration":3,"param":"Sigma (noise)","value":0.09840144805109263},{"iteration":4,"param":"Sigma (noise)","value":0.1031964875445929},{"iteration":5,"param":"Sigma (noise)","value":0.12173362009816933},{"iteration":6,"param":"Sigma (noise)","value":0.07737555482351031},{"iteration":7,"param":"Sigma (noise)","value":0.09922992391025556},{"iteration":8,"param":"Sigma (noise)","value":0.11097350106753326},{"iteration":9,"param":"Sigma (noise)","value":0.09377534747210349},{"iteration":10,"param":"Sigma (noise)","value":0.09156451712451613},{"iteration":11,"param":"Sigma (noise)","value":0.08921532331773217},{"iteration":12,"param":"Sigma (noise)","value":0.09493157644173249},{"iteration":13,"param":"Sigma (noise)","value":0.11610685965784281},{"iteration":14,"param":"Sigma (noise)","value":0.1401581116241409},{"iteration":15,"param":"Sigma (noise)","value":0.13712920220929842},{"iteration":16,"param":"Sigma (noise)","value":0.11384428684613011},{"iteration":17,"param":"Sigma (noise)","value":0.08235697952660101},{"iteration":18,"param":"Sigma (noise)","value":0.1108387115738409},{"iteration":19,"param":"Sigma (noise)","value":0.08313926530825473},{"iteration":20,"param":"Sigma (noise)","value":0.08367052415850118},{"iteration":21,"param":"Sigma (noise)","value":0.11013543910002246},{"iteration":22,"param":"Sigma (noise)","value":0.08320376249259265},{"iteration":23,"param":"Sigma (noise)","value":0.07721026020887466},{"iteration":24,"param":"Sigma (noise)","value":0.08281374337100154},{"iteration":25,"param":"Sigma (noise)","value":0.12224519439216648},{"iteration":26,"param":"Sigma (noise)","value":0.12357014038511469},{"iteration":27,"param":"Sigma (noise)","value":0.11663559564916944},{"iteration":28,"param":"Sigma (noise)","value":0.10429013792333447},{"iteration":29,"param":"Sigma (noise)","value":0.08532050018028449},{"iteration":30,"param":"Sigma (noise)","value":0.08071611565682285},{"iteration":31,"param":"Sigma (noise)","value":0.07703985835471548},{"iteration":32,"param":"Sigma (noise)","value":0.11374961075606298},{"iteration":33,"param":"Sigma (noise)","value":0.11403124706327512},{"iteration":34,"param":"Sigma (noise)","value":0.09234533670701796},{"iteration":35,"param":"Sigma (noise)","value":0.09203104816050361},{"iteration":36,"param":"Sigma (noise)","value":0.08736245660274809},{"iteration":37,"param":"Sigma (noise)","value":0.14816841861051305},{"iteration":38,"param":"Sigma (noise)","value":0.0729632587006784},{"iteration":39,"param":"Sigma (noise)","value":0.07855610234534871},{"iteration":40,"param":"Sigma (noise)","value":0.08559495817422229},{"iteration":41,"param":"Sigma (noise)","value":0.10048729913387716},{"iteration":42,"param":"Sigma (noise)","value":0.10104881584976587},{"iteration":43,"param":"Sigma (noise)","value":0.10499023782999325},{"iteration":44,"param":"Sigma (noise)","value":0.08612519075281713},{"iteration":45,"param":"Sigma (noise)","value":0.0934863007940836},{"iteration":46,"param":"Sigma (noise)","value":0.09019483793710416},{"iteration":47,"param":"Sigma (noise)","value":0.10100789514574152},{"iteration":48,"param":"Sigma (noise)","value":0.0958421875490781},{"iteration":49,"param":"Sigma (noise)","value":0.10644739371737308},{"iteration":50,"param":"Sigma (noise)","value":0.1012858685816043},{"iteration":51,"param":"Sigma (noise)","value":0.08934432755334758},{"iteration":52,"param":"Sigma (noise)","value":0.08245469715957873},{"iteration":53,"param":"Sigma (noise)","value":0.0840391609093983},{"iteration":54,"param":"Sigma (noise)","value":0.0853250626000768},{"iteration":55,"param":"Sigma (noise)","value":0.09310808286177003},{"iteration":56,"param":"Sigma (noise)","value":0.08940550565828374},{"iteration":57,"param":"Sigma (noise)","value":0.09846093882841761},{"iteration":58,"param":"Sigma (noise)","value":0.08865759112877601},{"iteration":59,"param":"Sigma (noise)","value":0.10353812324140642},{"iteration":60,"param":"Sigma (noise)","value":0.08524131128837585},{"iteration":61,"param":"Sigma (noise)","value":0.08334998566794778},{"iteration":62,"param":"Sigma (noise)","value":0.08928245466511751},{"iteration":63,"param":"Sigma (noise)","value":0.12913837354905336},{"iteration":64,"param":"Sigma (noise)","value":0.11735036152763095},{"iteration":65,"param":"Sigma (noise)","value":0.0955437067339296},{"iteration":66,"param":"Sigma (noise)","value":0.09811021000685717},{"iteration":67,"param":"Sigma (noise)","value":0.10434516990140798},{"iteration":68,"param":"Sigma (noise)","value":0.09759853037929214},{"iteration":69,"param":"Sigma (noise)","value":0.08314524269933193},{"iteration":70,"param":"Sigma (noise)","value":0.11533177972831486},{"iteration":71,"param":"Sigma (noise)","value":0.08540461449570982},{"iteration":72,"param":"Sigma (noise)","value":0.08273173066183621},{"iteration":73,"param":"Sigma (noise)","value":0.08835479234557443},{"iteration":74,"param":"Sigma (noise)","value":0.12693817068062538},{"iteration":75,"param":"Sigma (noise)","value":0.08461052327349172},{"iteration":76,"param":"Sigma (noise)","value":0.10918385005774804},{"iteration":77,"param":"Sigma (noise)","value":0.11296587900340237},{"iteration":78,"param":"Sigma (noise)","value":0.1029593417905802},{"iteration":79,"param":"Sigma (noise)","value":0.10047708521428386},{"iteration":80,"param":"Sigma (noise)","value":0.07878181677343671},{"iteration":81,"param":"Sigma (noise)","value":0.10316924490394941},{"iteration":82,"param":"Sigma (noise)","value":0.10775628903889632},{"iteration":83,"param":"Sigma (noise)","value":0.0908636990455123},{"iteration":84,"param":"Sigma (noise)","value":0.08472109646499261},{"iteration":85,"param":"Sigma (noise)","value":0.08039864289825818},{"iteration":86,"param":"Sigma (noise)","value":0.07098390649904773},{"iteration":87,"param":"Sigma (noise)","value":0.07098390649904773},{"iteration":88,"param":"Sigma (noise)","value":0.06935844897579875},{"iteration":89,"param":"Sigma (noise)","value":0.0777109086328829},{"iteration":90,"param":"Sigma (noise)","value":0.1152017598191375},{"iteration":91,"param":"Sigma (noise)","value":0.0741648667466443},{"iteration":92,"param":"Sigma (noise)","value":0.09711741947487534},{"iteration":93,"param":"Sigma (noise)","value":0.11582165887990843},{"iteration":94,"param":"Sigma (noise)","value":0.09527261592925539},{"iteration":95,"param":"Sigma (noise)","value":0.08919582306084414},{"iteration":96,"param":"Sigma (noise)","value":0.10249580222009186},{"iteration":97,"param":"Sigma (noise)","value":0.09625857711910493},{"iteration":98,"param":"Sigma (noise)","value":0.10120173048365996},{"iteration":99,"param":"Sigma (noise)","value":0.1035750362214362},{"iteration":100,"param":"Sigma (noise)","value":0.1104336674167115},{"iteration":101,"param":"Sigma (noise)","value":0.10918757526606562},{"iteration":102,"param":"Sigma (noise)","value":0.10782960609209274},{"iteration":103,"param":"Sigma (noise)","value":0.1316726893811597},{"iteration":104,"param":"Sigma (noise)","value":0.07795199263505717},{"iteration":105,"param":"Sigma (noise)","value":0.13497678766630705},{"iteration":106,"param":"Sigma (noise)","value":0.1385488799828422},{"iteration":107,"param":"Sigma (noise)","value":0.13759689504225903},{"iteration":108,"param":"Sigma (noise)","value":0.1379813469758015},{"iteration":109,"param":"Sigma (noise)","value":0.12410048572562188},{"iteration":110,"param":"Sigma (noise)","value":0.07782473827787038},{"iteration":111,"param":"Sigma (noise)","value":0.11305781589033789},{"iteration":112,"param":"Sigma (noise)","value":0.12696172681838716},{"iteration":113,"param":"Sigma (noise)","value":0.07333586579330527},{"iteration":114,"param":"Sigma (noise)","value":0.07301695814672739},{"iteration":115,"param":"Sigma (noise)","value":0.08035407509842477},{"iteration":116,"param":"Sigma (noise)","value":0.09940128202851557},{"iteration":117,"param":"Sigma (noise)","value":0.09379481580016817},{"iteration":118,"param":"Sigma (noise)","value":0.08747589596532367},{"iteration":119,"param":"Sigma (noise)","value":0.09162493126217412},{"iteration":120,"param":"Sigma (noise)","value":0.09365228514108966},{"iteration":121,"param":"Sigma (noise)","value":0.10035288214284994},{"iteration":122,"param":"Sigma (noise)","value":0.09408538273710056},{"iteration":123,"param":"Sigma (noise)","value":0.09796267315185947},{"iteration":124,"param":"Sigma (noise)","value":0.09055337348504619},{"iteration":125,"param":"Sigma (noise)","value":0.09731524885685176},{"iteration":126,"param":"Sigma (noise)","value":0.09282743729453852},{"iteration":127,"param":"Sigma (noise)","value":0.10483589780409149},{"iteration":128,"param":"Sigma (noise)","value":0.08502047858323261},{"iteration":129,"param":"Sigma (noise)","value":0.08405587691432254},{"iteration":130,"param":"Sigma (noise)","value":0.11724977500260275},{"iteration":131,"param":"Sigma (noise)","value":0.12202420443732231},{"iteration":132,"param":"Sigma (noise)","value":0.11364789516152883},{"iteration":133,"param":"Sigma (noise)","value":0.10467709841071941},{"iteration":134,"param":"Sigma (noise)","value":0.08467118892665719},{"iteration":135,"param":"Sigma (noise)","value":0.07512517591292756},{"iteration":136,"param":"Sigma (noise)","value":0.07426525773715685},{"iteration":137,"param":"Sigma (noise)","value":0.08877965335044412},{"iteration":138,"param":"Sigma (noise)","value":0.08121066529924056},{"iteration":139,"param":"Sigma (noise)","value":0.07312573045135135},{"iteration":140,"param":"Sigma (noise)","value":0.07261905999289386},{"iteration":141,"param":"Sigma (noise)","value":0.08072664383415207},{"iteration":142,"param":"Sigma (noise)","value":0.07886988968851003},{"iteration":143,"param":"Sigma (noise)","value":0.08081425751364607},{"iteration":144,"param":"Sigma (noise)","value":0.11982318170841001},{"iteration":145,"param":"Sigma (noise)","value":0.09729410204521255},{"iteration":146,"param":"Sigma (noise)","value":0.09461096171507126},{"iteration":147,"param":"Sigma (noise)","value":0.09798143173825058},{"iteration":148,"param":"Sigma (noise)","value":0.09482041195730409},{"iteration":149,"param":"Sigma (noise)","value":0.0933138840085341},{"iteration":150,"param":"Sigma (noise)","value":0.09332481907788376},{"iteration":151,"param":"Sigma (noise)","value":0.09302048734655446},{"iteration":152,"param":"Sigma (noise)","value":0.09078685343624406},{"iteration":153,"param":"Sigma (noise)","value":0.07937649355486322},{"iteration":154,"param":"Sigma (noise)","value":0.081458339556895},{"iteration":155,"param":"Sigma (noise)","value":0.09503936082327426},{"iteration":156,"param":"Sigma (noise)","value":0.09093200836218396},{"iteration":157,"param":"Sigma (noise)","value":0.09712678766726617},{"iteration":158,"param":"Sigma (noise)","value":0.11790447746102746},{"iteration":159,"param":"Sigma (noise)","value":0.11873175595035684},{"iteration":160,"param":"Sigma (noise)","value":0.11253624902117458},{"iteration":161,"param":"Sigma (noise)","value":0.10843155652395464},{"iteration":162,"param":"Sigma (noise)","value":0.11153400080534681},{"iteration":163,"param":"Sigma (noise)","value":0.09443862466882137},{"iteration":164,"param":"Sigma (noise)","value":0.08566001699802428},{"iteration":165,"param":"Sigma (noise)","value":0.11123985780954569},{"iteration":166,"param":"Sigma (noise)","value":0.07862566094037468},{"iteration":167,"param":"Sigma (noise)","value":0.10550336428729977},{"iteration":168,"param":"Sigma (noise)","value":0.0795865326283712},{"iteration":169,"param":"Sigma (noise)","value":0.12120824771018403},{"iteration":170,"param":"Sigma (noise)","value":0.10929248866109623},{"iteration":171,"param":"Sigma (noise)","value":0.10094015181659668},{"iteration":172,"param":"Sigma (noise)","value":0.09891989136825749},{"iteration":173,"param":"Sigma (noise)","value":0.12426818648821121},{"iteration":174,"param":"Sigma (noise)","value":0.12690031860662884},{"iteration":175,"param":"Sigma (noise)","value":0.12138000197819718},{"iteration":176,"param":"Sigma (noise)","value":0.08300795065758636},{"iteration":177,"param":"Sigma (noise)","value":0.09684502352042607},{"iteration":178,"param":"Sigma (noise)","value":0.09220305843028535},{"iteration":179,"param":"Sigma (noise)","value":0.1016534535701934},{"iteration":180,"param":"Sigma (noise)","value":0.09362737982346114},{"iteration":181,"param":"Sigma (noise)","value":0.09686027399194531},{"iteration":182,"param":"Sigma (noise)","value":0.08484755240030446},{"iteration":183,"param":"Sigma (noise)","value":0.10182606777710337},{"iteration":184,"param":"Sigma (noise)","value":0.08364280542856763},{"iteration":185,"param":"Sigma (noise)","value":0.0826470188943867},{"iteration":186,"param":"Sigma (noise)","value":0.08755867216059166},{"iteration":187,"param":"Sigma (noise)","value":0.0791207769071009},{"iteration":188,"param":"Sigma (noise)","value":0.0720076164496286},{"iteration":189,"param":"Sigma (noise)","value":0.0729903395583471},{"iteration":190,"param":"Sigma (noise)","value":0.12495720186411226},{"iteration":191,"param":"Sigma (noise)","value":0.12342576581018713},{"iteration":192,"param":"Sigma (noise)","value":0.10481473191010367},{"iteration":193,"param":"Sigma (noise)","value":0.1038042063632585},{"iteration":194,"param":"Sigma (noise)","value":0.09237216183421838},{"iteration":195,"param":"Sigma (noise)","value":0.10824645953119806},{"iteration":196,"param":"Sigma (noise)","value":0.10882780032787255},{"iteration":197,"param":"Sigma (noise)","value":0.1023010472628402},{"iteration":198,"param":"Sigma (noise)","value":0.11311378194115215},{"iteration":199,"param":"Sigma (noise)","value":0.11502844536829317},{"iteration":200,"param":"Sigma (noise)","value":0.12241270096271473},{"iteration":201,"param":"Sigma (noise)","value":0.09459798076684954},{"iteration":202,"param":"Sigma (noise)","value":0.08769220212935105},{"iteration":203,"param":"Sigma (noise)","value":0.1179125145197222},{"iteration":204,"param":"Sigma (noise)","value":0.10678023641884951},{"iteration":205,"param":"Sigma (noise)","value":0.10210904858417427},{"iteration":206,"param":"Sigma (noise)","value":0.1094856926955045},{"iteration":207,"param":"Sigma (noise)","value":0.11876036931881026},{"iteration":208,"param":"Sigma (noise)","value":0.07197425488602222},{"iteration":209,"param":"Sigma (noise)","value":0.10242937876335886},{"iteration":210,"param":"Sigma (noise)","value":0.11882805086773955},{"iteration":211,"param":"Sigma (noise)","value":0.09319160537822109},{"iteration":212,"param":"Sigma (noise)","value":0.087006003231027},{"iteration":213,"param":"Sigma (noise)","value":0.10078185444215922},{"iteration":214,"param":"Sigma (noise)","value":0.13559598158736982},{"iteration":215,"param":"Sigma (noise)","value":0.13018332053997964},{"iteration":216,"param":"Sigma (noise)","value":0.09220868975737798},{"iteration":217,"param":"Sigma (noise)","value":0.0876032334895287},{"iteration":218,"param":"Sigma (noise)","value":0.09050297145492804},{"iteration":219,"param":"Sigma (noise)","value":0.0908879827103601},{"iteration":220,"param":"Sigma (noise)","value":0.09457291780447809},{"iteration":221,"param":"Sigma (noise)","value":0.0803436468786908},{"iteration":222,"param":"Sigma (noise)","value":0.09010731264359077},{"iteration":223,"param":"Sigma (noise)","value":0.09281235188135689},{"iteration":224,"param":"Sigma (noise)","value":0.12124817932439146},{"iteration":225,"param":"Sigma (noise)","value":0.12462377516898386},{"iteration":226,"param":"Sigma (noise)","value":0.11239551897267176},{"iteration":227,"param":"Sigma (noise)","value":0.1161705558225205},{"iteration":228,"param":"Sigma (noise)","value":0.10594772412956693},{"iteration":229,"param":"Sigma (noise)","value":0.08467800011588084},{"iteration":230,"param":"Sigma (noise)","value":0.1148820810747611},{"iteration":231,"param":"Sigma (noise)","value":0.11764548389411379},{"iteration":232,"param":"Sigma (noise)","value":0.11665800355664623},{"iteration":233,"param":"Sigma (noise)","value":0.1182373009966186},{"iteration":234,"param":"Sigma (noise)","value":0.12193589930420794},{"iteration":235,"param":"Sigma (noise)","value":0.1250913352490686},{"iteration":236,"param":"Sigma (noise)","value":0.11977300445375123},{"iteration":237,"param":"Sigma (noise)","value":0.11057392857728757},{"iteration":238,"param":"Sigma (noise)","value":0.10550276191639367},{"iteration":239,"param":"Sigma (noise)","value":0.11901423018410824},{"iteration":240,"param":"Sigma (noise)","value":0.10308998034947238},{"iteration":241,"param":"Sigma (noise)","value":0.09833979634134858},{"iteration":242,"param":"Sigma (noise)","value":0.09899845892077311},{"iteration":243,"param":"Sigma (noise)","value":0.1018480511898764},{"iteration":244,"param":"Sigma (noise)","value":0.09480460137659551},{"iteration":245,"param":"Sigma (noise)","value":0.08395371680998598},{"iteration":246,"param":"Sigma (noise)","value":0.11435513983601833},{"iteration":247,"param":"Sigma (noise)","value":0.11354556386090137},{"iteration":248,"param":"Sigma (noise)","value":0.10741865628285413},{"iteration":249,"param":"Sigma (noise)","value":0.1155093128421601},{"iteration":250,"param":"Sigma (noise)","value":0.11133002361210653},{"iteration":251,"param":"Sigma (noise)","value":0.12293240827013464},{"iteration":252,"param":"Sigma (noise)","value":0.07485436131913882},{"iteration":253,"param":"Sigma (noise)","value":0.07960645502287603},{"iteration":254,"param":"Sigma (noise)","value":0.08049569122452327},{"iteration":255,"param":"Sigma (noise)","value":0.12152262061229277},{"iteration":256,"param":"Sigma (noise)","value":0.079029606691177},{"iteration":257,"param":"Sigma (noise)","value":0.08258147529103395},{"iteration":258,"param":"Sigma (noise)","value":0.07520214132510442},{"iteration":259,"param":"Sigma (noise)","value":0.08695186711914024},{"iteration":260,"param":"Sigma (noise)","value":0.10586573729325649},{"iteration":261,"param":"Sigma (noise)","value":0.11523603515623862},{"iteration":262,"param":"Sigma (noise)","value":0.07993664532491067},{"iteration":263,"param":"Sigma (noise)","value":0.08121572373094463},{"iteration":264,"param":"Sigma (noise)","value":0.08036522575207555},{"iteration":265,"param":"Sigma (noise)","value":0.11495593572230677},{"iteration":266,"param":"Sigma (noise)","value":0.08140226797110896},{"iteration":267,"param":"Sigma (noise)","value":0.11783550436260473},{"iteration":268,"param":"Sigma (noise)","value":0.08087145370912065},{"iteration":269,"param":"Sigma (noise)","value":0.07994831677159654},{"iteration":270,"param":"Sigma (noise)","value":0.0908719185879069},{"iteration":271,"param":"Sigma (noise)","value":0.0991767304655907},{"iteration":272,"param":"Sigma (noise)","value":0.08057630343059533},{"iteration":273,"param":"Sigma (noise)","value":0.15651434751210597},{"iteration":274,"param":"Sigma (noise)","value":0.09478538060063732},{"iteration":275,"param":"Sigma (noise)","value":0.09279538822249772},{"iteration":276,"param":"Sigma (noise)","value":0.09575931688300517},{"iteration":277,"param":"Sigma (noise)","value":0.10087324195632164},{"iteration":278,"param":"Sigma (noise)","value":0.11962819530599636},{"iteration":279,"param":"Sigma (noise)","value":0.07869270216574742},{"iteration":280,"param":"Sigma (noise)","value":0.0781485057890606},{"iteration":281,"param":"Sigma (noise)","value":0.13233882243029432},{"iteration":282,"param":"Sigma (noise)","value":0.07866783737007188},{"iteration":283,"param":"Sigma (noise)","value":0.11689909401575875},{"iteration":284,"param":"Sigma (noise)","value":0.08255070179415465},{"iteration":285,"param":"Sigma (noise)","value":0.09865055530119493},{"iteration":286,"param":"Sigma (noise)","value":0.10583425256538066},{"iteration":287,"param":"Sigma (noise)","value":0.09859211947800753},{"iteration":288,"param":"Sigma (noise)","value":0.09780026559269045},{"iteration":289,"param":"Sigma (noise)","value":0.09864970162929337},{"iteration":290,"param":"Sigma (noise)","value":0.0966053909435343},{"iteration":291,"param":"Sigma (noise)","value":0.08853714459652702},{"iteration":292,"param":"Sigma (noise)","value":0.08380048760010742},{"iteration":293,"param":"Sigma (noise)","value":0.07732489188885226},{"iteration":294,"param":"Sigma (noise)","value":0.06652877565879592},{"iteration":295,"param":"Sigma (noise)","value":0.08916231225603659},{"iteration":296,"param":"Sigma (noise)","value":0.10590091425175109},{"iteration":297,"param":"Sigma (noise)","value":0.08156164983246715},{"iteration":298,"param":"Sigma (noise)","value":0.08696330925777358},{"iteration":299,"param":"Sigma (noise)","value":0.12082505417747808},{"iteration":300,"param":"Sigma (noise)","value":0.12041885167205461},{"iteration":301,"param":"Sigma (noise)","value":0.11768845451853134},{"iteration":302,"param":"Sigma (noise)","value":0.09087106903627545},{"iteration":303,"param":"Sigma (noise)","value":0.09322185951514951},{"iteration":304,"param":"Sigma (noise)","value":0.16270034266030067},{"iteration":305,"param":"Sigma (noise)","value":0.12088001208640005},{"iteration":306,"param":"Sigma (noise)","value":0.08901800186757867},{"iteration":307,"param":"Sigma (noise)","value":0.09006021461359022},{"iteration":308,"param":"Sigma (noise)","value":0.08931408269119653},{"iteration":309,"param":"Sigma (noise)","value":0.10383576503604919},{"iteration":310,"param":"Sigma (noise)","value":0.10250640279290024},{"iteration":311,"param":"Sigma (noise)","value":0.1225047170551057},{"iteration":312,"param":"Sigma (noise)","value":0.12780287944104576},{"iteration":313,"param":"Sigma (noise)","value":0.06855421769330075},{"iteration":314,"param":"Sigma (noise)","value":0.06669286507304627},{"iteration":315,"param":"Sigma (noise)","value":0.06815328266914009},{"iteration":316,"param":"Sigma (noise)","value":0.06912930071849853},{"iteration":317,"param":"Sigma (noise)","value":0.07131948485786925},{"iteration":318,"param":"Sigma (noise)","value":0.07033655446870556},{"iteration":319,"param":"Sigma (noise)","value":0.07709029251647166},{"iteration":320,"param":"Sigma (noise)","value":0.0797464265140247},{"iteration":321,"param":"Sigma (noise)","value":0.10654305417824333},{"iteration":322,"param":"Sigma (noise)","value":0.1054804394104564},{"iteration":323,"param":"Sigma (noise)","value":0.08350777492246289},{"iteration":324,"param":"Sigma (noise)","value":0.08203755466745323},{"iteration":325,"param":"Sigma (noise)","value":0.10273164712787332},{"iteration":326,"param":"Sigma (noise)","value":0.11364124798833455},{"iteration":327,"param":"Sigma (noise)","value":0.11259128066249753},{"iteration":328,"param":"Sigma (noise)","value":0.100915156125841},{"iteration":329,"param":"Sigma (noise)","value":0.08794199212967319},{"iteration":330,"param":"Sigma (noise)","value":0.10904620371940843},{"iteration":331,"param":"Sigma (noise)","value":0.09716487203974782},{"iteration":332,"param":"Sigma (noise)","value":0.1049445865786001},{"iteration":333,"param":"Sigma (noise)","value":0.07798691692609311},{"iteration":334,"param":"Sigma (noise)","value":0.07735471821376302},{"iteration":335,"param":"Sigma (noise)","value":0.1039866297534016},{"iteration":336,"param":"Sigma (noise)","value":0.1016125121155822},{"iteration":337,"param":"Sigma (noise)","value":0.10195007182107109},{"iteration":338,"param":"Sigma (noise)","value":0.10075201629803066},{"iteration":339,"param":"Sigma (noise)","value":0.10120181285961753},{"iteration":340,"param":"Sigma (noise)","value":0.10654926213216999},{"iteration":341,"param":"Sigma (noise)","value":0.1213075471726957},{"iteration":342,"param":"Sigma (noise)","value":0.07605447743901338},{"iteration":343,"param":"Sigma (noise)","value":0.12457409338983597},{"iteration":344,"param":"Sigma (noise)","value":0.08228000631265507},{"iteration":345,"param":"Sigma (noise)","value":0.08283165913072622},{"iteration":346,"param":"Sigma (noise)","value":0.1112644683007859},{"iteration":347,"param":"Sigma (noise)","value":0.07766068825853224},{"iteration":348,"param":"Sigma (noise)","value":0.08051287708545943},{"iteration":349,"param":"Sigma (noise)","value":0.0821790530753808},{"iteration":350,"param":"Sigma (noise)","value":0.13387704447749835},{"iteration":351,"param":"Sigma (noise)","value":0.12447513187567512},{"iteration":352,"param":"Sigma (noise)","value":0.10862494403001488},{"iteration":353,"param":"Sigma (noise)","value":0.10639731356581221},{"iteration":354,"param":"Sigma (noise)","value":0.08417869111410105},{"iteration":355,"param":"Sigma (noise)","value":0.08434235381030757},{"iteration":356,"param":"Sigma (noise)","value":0.10291531978729822},{"iteration":357,"param":"Sigma (noise)","value":0.10843453571788045},{"iteration":358,"param":"Sigma (noise)","value":0.09721084549216441},{"iteration":359,"param":"Sigma (noise)","value":0.08026287545714463},{"iteration":360,"param":"Sigma (noise)","value":0.1103112781187296},{"iteration":361,"param":"Sigma (noise)","value":0.10487066437190576},{"iteration":362,"param":"Sigma (noise)","value":0.10508262677331767},{"iteration":363,"param":"Sigma (noise)","value":0.08481690222840278},{"iteration":364,"param":"Sigma (noise)","value":0.12958231213249724},{"iteration":365,"param":"Sigma (noise)","value":0.07457651573019747},{"iteration":366,"param":"Sigma (noise)","value":0.07451268342920188},{"iteration":367,"param":"Sigma (noise)","value":0.11345804354269098},{"iteration":368,"param":"Sigma (noise)","value":0.08654933179450301},{"iteration":369,"param":"Sigma (noise)","value":0.08369045033384855},{"iteration":370,"param":"Sigma (noise)","value":0.08089131976437147},{"iteration":371,"param":"Sigma (noise)","value":0.07968619743740432},{"iteration":372,"param":"Sigma (noise)","value":0.08703155338079634},{"iteration":373,"param":"Sigma (noise)","value":0.08595927025667777},{"iteration":374,"param":"Sigma (noise)","value":0.1000803512235409},{"iteration":375,"param":"Sigma (noise)","value":0.10480864453285495},{"iteration":376,"param":"Sigma (noise)","value":0.10227922667050908},{"iteration":377,"param":"Sigma (noise)","value":0.12926776835038367},{"iteration":378,"param":"Sigma (noise)","value":0.13607425455040098},{"iteration":379,"param":"Sigma (noise)","value":0.14066720405889954},{"iteration":380,"param":"Sigma (noise)","value":0.14223443690498047},{"iteration":381,"param":"Sigma (noise)","value":0.07243424699864613},{"iteration":382,"param":"Sigma (noise)","value":0.09524556181420865},{"iteration":383,"param":"Sigma (noise)","value":0.09121714387990797},{"iteration":384,"param":"Sigma (noise)","value":0.08822420410337418},{"iteration":385,"param":"Sigma (noise)","value":0.10837246555284627},{"iteration":386,"param":"Sigma (noise)","value":0.0921445473956536},{"iteration":387,"param":"Sigma (noise)","value":0.10740743137821245},{"iteration":388,"param":"Sigma (noise)","value":0.08492139034204865},{"iteration":389,"param":"Sigma (noise)","value":0.08492139034204865},{"iteration":390,"param":"Sigma (noise)","value":0.12335600239700777},{"iteration":391,"param":"Sigma (noise)","value":0.12230991553671167},{"iteration":392,"param":"Sigma (noise)","value":0.1245577604671021},{"iteration":393,"param":"Sigma (noise)","value":0.0933368425254282},{"iteration":394,"param":"Sigma (noise)","value":0.09530295401619061},{"iteration":395,"param":"Sigma (noise)","value":0.10395362965829832},{"iteration":396,"param":"Sigma (noise)","value":0.08923029681122123},{"iteration":397,"param":"Sigma (noise)","value":0.12957726056265054},{"iteration":398,"param":"Sigma (noise)","value":0.08703558960327312},{"iteration":399,"param":"Sigma (noise)","value":0.08703558960327312},{"iteration":400,"param":"Sigma (noise)","value":0.08689584844193701},{"iteration":401,"param":"Sigma (noise)","value":0.11252334571920165},{"iteration":402,"param":"Sigma (noise)","value":0.07929369449993798},{"iteration":403,"param":"Sigma (noise)","value":0.07808437794946671},{"iteration":404,"param":"Sigma (noise)","value":0.1187183000166727},{"iteration":405,"param":"Sigma (noise)","value":0.11179042237782288},{"iteration":406,"param":"Sigma (noise)","value":0.10824882248930556},{"iteration":407,"param":"Sigma (noise)","value":0.11064479428269088},{"iteration":408,"param":"Sigma (noise)","value":0.11225972503280156},{"iteration":409,"param":"Sigma (noise)","value":0.08462645252408825},{"iteration":410,"param":"Sigma (noise)","value":0.081973988566757},{"iteration":411,"param":"Sigma (noise)","value":0.10365755473262235},{"iteration":412,"param":"Sigma (noise)","value":0.08347087298798607},{"iteration":413,"param":"Sigma (noise)","value":0.08670513385612635},{"iteration":414,"param":"Sigma (noise)","value":0.09923822195130419},{"iteration":415,"param":"Sigma (noise)","value":0.09852014699125762},{"iteration":416,"param":"Sigma (noise)","value":0.10218894630445093},{"iteration":417,"param":"Sigma (noise)","value":0.10251480765257469},{"iteration":418,"param":"Sigma (noise)","value":0.10165753353850451},{"iteration":419,"param":"Sigma (noise)","value":0.09645166060682488},{"iteration":420,"param":"Sigma (noise)","value":0.08502515128947231},{"iteration":421,"param":"Sigma (noise)","value":0.1018260584917694},{"iteration":422,"param":"Sigma (noise)","value":0.10483333042118621},{"iteration":423,"param":"Sigma (noise)","value":0.09035082815816765},{"iteration":424,"param":"Sigma (noise)","value":0.08800571867635158},{"iteration":425,"param":"Sigma (noise)","value":0.08746688946199475},{"iteration":426,"param":"Sigma (noise)","value":0.07982998920077868},{"iteration":427,"param":"Sigma (noise)","value":0.09569435861055177},{"iteration":428,"param":"Sigma (noise)","value":0.09451734275797867},{"iteration":429,"param":"Sigma (noise)","value":0.11462777769388098},{"iteration":430,"param":"Sigma (noise)","value":0.10792656172870202},{"iteration":431,"param":"Sigma (noise)","value":0.1137942131240491},{"iteration":432,"param":"Sigma (noise)","value":0.07880851940352693},{"iteration":433,"param":"Sigma (noise)","value":0.07036150057404451},{"iteration":434,"param":"Sigma (noise)","value":0.06785006412642237},{"iteration":435,"param":"Sigma (noise)","value":0.06946665058501382},{"iteration":436,"param":"Sigma (noise)","value":0.07244057836063522},{"iteration":437,"param":"Sigma (noise)","value":0.07244057836063522},{"iteration":438,"param":"Sigma (noise)","value":0.07130118719129203},{"iteration":439,"param":"Sigma (noise)","value":0.07966114575221682},{"iteration":440,"param":"Sigma (noise)","value":0.07399265466388014},{"iteration":441,"param":"Sigma (noise)","value":0.0745884844102258},{"iteration":442,"param":"Sigma (noise)","value":0.07545112309249166},{"iteration":443,"param":"Sigma (noise)","value":0.07350995310888034},{"iteration":444,"param":"Sigma (noise)","value":0.0726880440879717},{"iteration":445,"param":"Sigma (noise)","value":0.070091217930228},{"iteration":446,"param":"Sigma (noise)","value":0.09420503443129542},{"iteration":447,"param":"Sigma (noise)","value":0.11055026289332275},{"iteration":448,"param":"Sigma (noise)","value":0.11557746601979135},{"iteration":449,"param":"Sigma (noise)","value":0.10396228430591424},{"iteration":450,"param":"Sigma (noise)","value":0.08873836928423293},{"iteration":451,"param":"Sigma (noise)","value":0.1123866365244556},{"iteration":452,"param":"Sigma (noise)","value":0.10370177528780616},{"iteration":453,"param":"Sigma (noise)","value":0.09301391863735463},{"iteration":454,"param":"Sigma (noise)","value":0.08959983417672433},{"iteration":455,"param":"Sigma (noise)","value":0.08901431674396015},{"iteration":456,"param":"Sigma (noise)","value":0.07553627908216877},{"iteration":457,"param":"Sigma (noise)","value":0.07553627908216877},{"iteration":458,"param":"Sigma (noise)","value":0.07461988757370948},{"iteration":459,"param":"Sigma (noise)","value":0.07467494453116857},{"iteration":460,"param":"Sigma (noise)","value":0.07457874468001773},{"iteration":461,"param":"Sigma (noise)","value":0.07770155534234288},{"iteration":462,"param":"Sigma (noise)","value":0.07080753003626418},{"iteration":463,"param":"Sigma (noise)","value":0.07980164316384286},{"iteration":464,"param":"Sigma (noise)","value":0.07556261506122099},{"iteration":465,"param":"Sigma (noise)","value":0.12741962574776589},{"iteration":466,"param":"Sigma (noise)","value":0.11336905325847564},{"iteration":467,"param":"Sigma (noise)","value":0.12927770499937052},{"iteration":468,"param":"Sigma (noise)","value":0.1379348353538555},{"iteration":469,"param":"Sigma (noise)","value":0.13298950036153823},{"iteration":470,"param":"Sigma (noise)","value":0.13257237361919774},{"iteration":471,"param":"Sigma (noise)","value":0.08126562936736219},{"iteration":472,"param":"Sigma (noise)","value":0.12117732092631282},{"iteration":473,"param":"Sigma (noise)","value":0.11356345721155542},{"iteration":474,"param":"Sigma (noise)","value":0.08779961561410532},{"iteration":475,"param":"Sigma (noise)","value":0.1428065527222765},{"iteration":476,"param":"Sigma (noise)","value":0.08051909586212273},{"iteration":477,"param":"Sigma (noise)","value":0.08301719765122002},{"iteration":478,"param":"Sigma (noise)","value":0.07626795148295122},{"iteration":479,"param":"Sigma (noise)","value":0.07606377319964151},{"iteration":480,"param":"Sigma (noise)","value":0.075125147310484},{"iteration":481,"param":"Sigma (noise)","value":0.07455718886538946},{"iteration":482,"param":"Sigma (noise)","value":0.1025400489979107},{"iteration":483,"param":"Sigma (noise)","value":0.10478463724956785},{"iteration":484,"param":"Sigma (noise)","value":0.08509951421430624},{"iteration":485,"param":"Sigma (noise)","value":0.0852895635347916},{"iteration":486,"param":"Sigma (noise)","value":0.11232299315800594},{"iteration":487,"param":"Sigma (noise)","value":0.1073240265637232},{"iteration":488,"param":"Sigma (noise)","value":0.10185655907033904},{"iteration":489,"param":"Sigma (noise)","value":0.12587024595593377},{"iteration":490,"param":"Sigma (noise)","value":0.11417989801722771},{"iteration":491,"param":"Sigma (noise)","value":0.08165238153114336},{"iteration":492,"param":"Sigma (noise)","value":0.08086585103819069},{"iteration":493,"param":"Sigma (noise)","value":0.08959982428175631},{"iteration":494,"param":"Sigma (noise)","value":0.12225658446853983},{"iteration":495,"param":"Sigma (noise)","value":0.08151628355533763},{"iteration":496,"param":"Sigma (noise)","value":0.08175003360026249},{"iteration":497,"param":"Sigma (noise)","value":0.11160446863072802},{"iteration":498,"param":"Sigma (noise)","value":0.11015908106929068},{"iteration":499,"param":"Sigma (noise)","value":0.0858886929204149}]},"encoding":{"row":{"field":"param","header":{"labelFontSize":11},"title":null,"type":"nominal"},"x":{"field":"iteration","type":"quantitative"},"y":{"field":"value","type":"quantitative"}},"height":120,"mark":{"opacity":0.6,"strokeWidth":0.5,"type":"line"},"resolve":{"scale":{"y":"independent"}},"title":"MCMC Trace Plots","width":700}
Vibration Forecast: P10 / P50 / P90
The key deliverable for turbine engineers. Each posterior sample generates a different forecast curve. We show the full uncertainty envelope for the next 12 weeks, plus the alarm threshold.
# Forecast 84 days (12 weeks) into the future
forecast_days = Enum.to_list(1..84)
n_draws = min(200, length(u0_samples))
forecast_curves =
Enum.zip([
Enum.take(u0_samples, n_draws),
Enum.take(growth_samples, n_draws)
])
|> Enum.map(fn {u0, growth} ->
Enum.map(forecast_days, fn day ->
u_t = u0 * :math.exp(growth * day)
u_to_amp.(u_t)
end)
end)
percentiles =
Enum.map(Enum.with_index(forecast_days), fn {day, idx} ->
amps = Enum.map(forecast_curves, fn curve -> Enum.at(curve, idx) end) |> Enum.sort()
n = length(amps)
%{day: day,
p10: Enum.at(amps, round(0.1 * n)),
p50: Enum.at(amps, round(0.5 * n)),
p90: Enum.at(amps, round(0.9 * n))}
end)
obs_points =
Enum.map(subset, fn {day, a, _, _} -> %{"day" => day, "amplitude" => a} end)
alarm_data =
Enum.map(forecast_days, fn day -> %{"day" => day, "alarm" => alarm_threshold} end)
Vl.new(
width: 700,
height: 400,
title: [
text: "Vibration Forecast: P10 / P50 / P90",
subtitle: "Alarm threshold at 2.5 mils p-p (API 670)"
]
)
|> Vl.layers([
# Alarm threshold
Vl.new()
|> Vl.data_from_values(alarm_data)
|> Vl.mark(:line, stroke_width: 2, stroke_dash: [6, 3], color: "#d62728")
|> Vl.encode_field(:x, "day", type: :quantitative, title: "Day")
|> Vl.encode_field(:y, "alarm", type: :quantitative, title: "1X Vibration (mils p-p)"),
# P10-P90 band
Vl.new()
|> Vl.data_from_values(
Enum.map(percentiles, fn p ->
%{"day" => p.day, "p10" => p.p10, "p90" => p.p90}
end)
)
|> Vl.mark(:area, opacity: 0.25, color: "#1f77b4")
|> Vl.encode_field(:x, "day", type: :quantitative)
|> Vl.encode_field(:y, "p10", type: :quantitative)
|> Vl.encode_field(:y2, "p90"),
# P50 line
Vl.new()
|> Vl.data_from_values(
Enum.map(percentiles, fn p -> %{"day" => p.day, "amplitude" => p.p50} end)
)
|> Vl.mark(:line, stroke_width: 2.5, color: "#1f77b4")
|> Vl.encode_field(:x, "day", type: :quantitative)
|> Vl.encode_field(:y, "amplitude", type: :quantitative),
# Observed data
Vl.new()
|> Vl.data_from_values(obs_points)
|> Vl.mark(:point, size: 40, color: "#333", filled: true)
|> Vl.encode_field(:x, "day", type: :quantitative)
|> Vl.encode_field(:y, "amplitude", type: :quantitative)
])
{"$schema":"https://vega.github.io/schema/vega-lite/v5.json","height":400,"layer":[{"data":{"values":[{"alarm":2.5,"day":1},{"alarm":2.5,"day":2},{"alarm":2.5,"day":3},{"alarm":2.5,"day":4},{"alarm":2.5,"day":5},{"alarm":2.5,"day":6},{"alarm":2.5,"day":7},{"alarm":2.5,"day":8},{"alarm":2.5,"day":9},{"alarm":2.5,"day":10},{"alarm":2.5,"day":11},{"alarm":2.5,"day":12},{"alarm":2.5,"day":13},{"alarm":2.5,"day":14},{"alarm":2.5,"day":15},{"alarm":2.5,"day":16},{"alarm":2.5,"day":17},{"alarm":2.5,"day":18},{"alarm":2.5,"day":19},{"alarm":2.5,"day":20},{"alarm":2.5,"day":21},{"alarm":2.5,"day":22},{"alarm":2.5,"day":23},{"alarm":2.5,"day":24},{"alarm":2.5,"day":25},{"alarm":2.5,"day":26},{"alarm":2.5,"day":27},{"alarm":2.5,"day":28},{"alarm":2.5,"day":29},{"alarm":2.5,"day":30},{"alarm":2.5,"day":31},{"alarm":2.5,"day":32},{"alarm":2.5,"day":33},{"alarm":2.5,"day":34},{"alarm":2.5,"day":35},{"alarm":2.5,"day":36},{"alarm":2.5,"day":37},{"alarm":2.5,"day":38},{"alarm":2.5,"day":39},{"alarm":2.5,"day":40},{"alarm":2.5,"day":41},{"alarm":2.5,"day":42},{"alarm":2.5,"day":43},{"alarm":2.5,"day":44},{"alarm":2.5,"day":45},{"alarm":2.5,"day":46},{"alarm":2.5,"day":47},{"alarm":2.5,"day":48},{"alarm":2.5,"day":49},{"alarm":2.5,"day":50},{"alarm":2.5,"day":51},{"alarm":2.5,"day":52},{"alarm":2.5,"day":53},{"alarm":2.5,"day":54},{"alarm":2.5,"day":55},{"alarm":2.5,"day":56},{"alarm":2.5,"day":57},{"alarm":2.5,"day":58},{"alarm":2.5,"day":59},{"alarm":2.5,"day":60},{"alarm":2.5,"day":61},{"alarm":2.5,"day":62},{"alarm":2.5,"day":63},{"alarm":2.5,"day":64},{"alarm":2.5,"day":65},{"alarm":2.5,"day":66},{"alarm":2.5,"day":67},{"alarm":2.5,"day":68},{"alarm":2.5,"day":69},{"alarm":2.5,"day":70},{"alarm":2.5,"day":71},{"alarm":2.5,"day":72},{"alarm":2.5,"day":73},{"alarm":2.5,"day":74},{"alarm":2.5,"day":75},{"alarm":2.5,"day":76},{"alarm":2.5,"day":77},{"alarm":2.5,"day":78},{"alarm":2.5,"day":79},{"alarm":2.5,"day":80},{"alarm":2.5,"day":81},{"alarm":2.5,"day":82},{"alarm":2.5,"day":83},{"alarm":2.5,"day":84}]},"encoding":{"x":{"field":"day","title":"Day","type":"quantitative"},"y":{"field":"alarm","title":"1X Vibration (mils p-p)","type":"quantitative"}},"mark":{"color":"#d62728","strokeDash":[6,3],"strokeWidth":2,"type":"line"}},{"data":{"values":[{"day":1,"p10":0.0017268783847655337,"p90":0.001959620430696612},{"day":2,"p10":0.0017635279678446605,"p90":0.001985780083623077},{"day":3,"p10":0.0017998431738443735,"p90":0.002006500731385272},{"day":4,"p10":0.0018359431945678478,"p90":0.0020306077840765145},{"day":5,"p10":0.0018710203966664735,"p90":0.002055004470347435},{"day":6,"p10":0.0019088979608715246,"p90":0.0020796942699934096},{"day":7,"p10":0.0019475423311855124,"p90":0.0021046807046177273},{"day":8,"p10":0.0019875806303108544,"p90":0.0021353998402756204},{"day":9,"p10":0.0020271938983226516,"p90":0.0021659326643306246},{"day":10,"p10":0.002067698246846624,"p90":0.002194735403569386},{"day":11,"p10":0.0021025705223623008,"p90":0.002226189085412034},{"day":12,"p10":0.002140034699884057,"p90":0.0022555554175587855},{"day":13,"p10":0.0021775577411961822,"p90":0.002284743293265869},{"day":14,"p10":0.0022144708115969035,"p90":0.0023154506342820953},{"day":15,"p10":0.0022496565791324972,"p90":0.0023523087599249875},{"day":16,"p10":0.0022856705471069653,"p90":0.002391626987233899},{"day":17,"p10":0.0023215403980409444,"p90":0.002427735646034316},{"day":18,"p10":0.0023554907371113316,"p90":0.0024625194293296723},{"day":19,"p10":0.00238753312295113,"p90":0.0025087694407011727},{"day":20,"p10":0.00241897704247679,"p90":0.002552700872873485},{"day":21,"p10":0.002451217786833909,"p90":0.0026023847222915917},{"day":22,"p10":0.002486355930831972,"p90":0.002650486719377212},{"day":23,"p10":0.002522152049921665,"p90":0.00270412388144446},{"day":24,"p10":0.002556079006614954,"p90":0.0027588464838323844},{"day":25,"p10":0.0025904623348384634,"p90":0.0028136346563687287},{"day":26,"p10":0.0026246548852878154,"p90":0.0028690740385196463},{"day":27,"p10":0.0026578151476466835,"p90":0.002925605788894817},{"day":28,"p10":0.002689261088950916,"p90":0.0029832514313332713},{"day":29,"p10":0.002725104248169011,"p90":0.00304203291377613},{"day":30,"p10":0.002756211592364592,"p90":0.0031019726166230384},{"day":31,"p10":0.002785819359678237,"p90":0.003163093361253256},{"day":32,"p10":0.0028255077338911524,"p90":0.003219436311926043},{"day":33,"p10":0.002864723051175817,"p90":0.0032850397396544354},{"day":34,"p10":0.0029034228085441484,"p90":0.0033529889185946195},{"day":35,"p10":0.002940454744138805,"p90":0.003419859110883149},{"day":36,"p10":0.0029757827638820277,"p90":0.0034874532551813207},{"day":37,"p10":0.0030115352312320228,"p90":0.0035600879428381105},{"day":38,"p10":0.003047717245703914,"p90":0.003634235424349029},{"day":39,"p10":0.0030843339680808185,"p90":0.003709927207321789},{"day":40,"p10":0.0031213906211499556,"p90":0.003787067180579418},{"day":41,"p10":0.0031588924904475866,"p90":0.0038572480285135094},{"day":42,"p10":0.0031968449250129177,"p90":0.003928729447887688},{"day":43,"p10":0.0032352533381510536,"p90":0.0040071705043845055},{"day":44,"p10":0.0032741232082051136,"p90":0.004088293007554881},{"day":45,"p10":0.003315291093500942,"p90":0.004171057781877289},{"day":46,"p10":0.003357283407544412,"p90":0.004255498074039535},{"day":47,"p10":0.0033979387717661506,"p90":0.004341647803786516},{"day":48,"p10":0.0034368928611577996,"p90":0.0044295415775458214},{"day":49,"p10":0.003476293521598033,"p90":0.004519214702329156},{"day":50,"p10":0.003517348204666355,"p90":0.004610703199915214},{"day":51,"p10":0.0035596072964159987,"p90":0.004704043821319651},{"day":52,"p10":0.0036023741089631274,"p90":0.004799274061558009},{"day":53,"p10":0.003645720864159993,"p90":0.004900048745810342},{"day":54,"p10":0.003691493867158993,"p90":0.005003554035408281},{"day":55,"p10":0.00373784156248404,"p90":0.0051092457001895115},{"day":56,"p10":0.003784771165551385,"p90":0.00521641860430637},{"day":57,"p10":0.0038322899823687627,"p90":0.005323537971967466},{"day":58,"p10":0.0038804054106727948,"p90":0.00543285704018914},{"day":59,"p10":0.003929124941080668,"p90":0.0055444209799116444},{"day":60,"p10":0.003978456158256277,"p90":0.0056582758896623194},{"day":61,"p10":0.0040284067420910084,"p90":0.005774468814603634},{"day":62,"p10":0.004078984468899341,"p90":0.005893047765972377},{"day":63,"p10":0.004130197212629467,"p90":0.006014061740918032},{"day":64,"p10":0.004182052946089113,"p90":0.006137560742748539},{"day":65,"p10":0.004234559742186738,"p90":0.006263595801591788},{"day":66,"p10":0.004287725775188341,"p90":0.0063922189954814254},{"day":67,"p10":0.004341559321990011,"p90":0.006523483471875617},{"day":68,"p10":0.0043960687634064955,"p90":0.006657443469617753},{"day":69,"p10":0.0044512625854759135,"p90":0.0067941543413480646},{"day":70,"p10":0.004507149380780871,"p90":0.006933672576375495},{"day":71,"p10":0.0045632030408229215,"p90":0.00707411702045202},{"day":72,"p10":0.0046183590578253025,"p90":0.007217273957755149},{"day":73,"p10":0.004674181752638062,"p90":0.007363327922155621},{"day":74,"p10":0.0047306791834808995,"p90":0.007512337539984513},{"day":75,"p10":0.004787859505974248,"p90":0.00766436262397765},{"day":76,"p10":0.004845730974316563,"p90":0.007819464197284551},{"day":77,"p10":0.004904301942475841,"p90":0.007977704517963216},{"day":78,"p10":0.004963580865395568,"p90":0.008139147103970646},{"day":79,"p10":0.005023576300215203,"p90":0.00830385675865906},{"day":80,"p10":0.005084296907505439,"p90":0.008471899596788072},{"day":81,"p10":0.005145751452518401,"p90":0.008643343071063297},{"day":82,"p10":0.005207948806452916,"p90":0.008818049305957901},{"day":83,"p10":0.005270897947735142,"p90":0.008994779888867965},{"day":84,"p10":0.005334607963314609,"p90":0.009175052490863209}]},"encoding":{"x":{"field":"day","type":"quantitative"},"y":{"field":"p10","type":"quantitative"},"y2":{"field":"p90"}},"mark":{"color":"#1f77b4","opacity":0.25,"type":"area"}},{"data":{"values":[{"amplitude":0.0018457866913576615,"day":1},{"amplitude":0.0018760896012633772,"day":2},{"amplitude":0.001907350349882041,"day":3},{"amplitude":0.0019378282508444582,"day":4},{"amplitude":0.0019674725371398383,"day":5},{"amplitude":0.0019981184017497334,"day":6},{"amplitude":0.002030308600390979,"day":7},{"amplitude":0.002060422769709646,"day":8},{"amplitude":0.0020939608189549674,"day":9},{"amplitude":0.0021275033001916612,"day":10},{"amplitude":0.002159433216966197,"day":11},{"amplitude":0.002195232428943944,"day":12},{"amplitude":0.002230415507059375,"day":13},{"amplitude":0.002264390786216657,"day":14},{"amplitude":0.0023044072859487795,"day":15},{"amplitude":0.002340762101111684,"day":16},{"amplitude":0.0023778934326375476,"day":17},{"amplitude":0.002414006420728527,"day":18},{"amplitude":0.0024526822149596073,"day":19},{"amplitude":0.0024900398277309913,"day":20},{"amplitude":0.002527000941897388,"day":21},{"amplitude":0.002565670536570565,"day":22},{"amplitude":0.002608971959919481,"day":23},{"amplitude":0.002650676675581666,"day":24},{"amplitude":0.0026908064325489294,"day":25},{"amplitude":0.0027337361122379174,"day":26},{"amplitude":0.0027752946282600015,"day":27},{"amplitude":0.0028182942172347053,"day":28},{"amplitude":0.0028638596155530233,"day":29},{"amplitude":0.00290975296643345,"day":30},{"amplitude":0.002955963714975283,"day":31},{"amplitude":0.0029988986962908477,"day":32},{"amplitude":0.0030424573025214377,"day":33},{"amplitude":0.0030866485917363166,"day":34},{"amplitude":0.003133810937323392,"day":35},{"amplitude":0.003184460758038434,"day":36},{"amplitude":0.003232768157698368,"day":37},{"amplitude":0.0032818996492348785,"day":38},{"amplitude":0.0033317778393723557,"day":39},{"amplitude":0.0033848710989104456,"day":40},{"amplitude":0.0034432428309008893,"day":41},{"amplitude":0.003502621177026996,"day":42},{"amplitude":0.0035624511649284137,"day":43},{"amplitude":0.003615276976497831,"day":44},{"amplitude":0.003668215085436728,"day":45},{"amplitude":0.0037235267904964417,"day":46},{"amplitude":0.00378006768148704,"day":47},{"amplitude":0.003836517998195139,"day":48},{"amplitude":0.003897535353579502,"day":49},{"amplitude":0.003959758586377394,"day":50},{"amplitude":0.0040229751984133385,"day":51},{"amplitude":0.0040872010487526126,"day":52},{"amplitude":0.004152452249646726,"day":53},{"amplitude":0.004218745170575488,"day":54},{"amplitude":0.004286096442353591,"day":55},{"amplitude":0.004354522961302766,"day":56},{"amplitude":0.004424041893490531,"day":57},{"amplitude":0.0044946706790366265,"day":58},{"amplitude":0.004566427036488191,"day":59},{"amplitude":0.004639328967264787,"day":60},{"amplitude":0.004713394760174404,"day":61},{"amplitude":0.004788642996001526,"day":62},{"amplitude":0.00486509255216849,"day":63},{"amplitude":0.004942762607471221,"day":64},{"amplitude":0.005021672646890605,"day":65},{"amplitude":0.00510184246648065,"day":66},{"amplitude":0.005183292178334692,"day":67},{"amplitude":0.005264069228165527,"day":68},{"amplitude":0.005345934713864329,"day":69},{"amplitude":0.005429073351084933,"day":70},{"amplitude":0.005514773194681665,"day":71},{"amplitude":0.005602624729968376,"day":72},{"amplitude":0.005691875759301311,"day":73},{"amplitude":0.005782548576924722,"day":74},{"amplitude":0.005874665832235005,"day":75},{"amplitude":0.005968250535438384,"day":76},{"amplitude":0.006063326063298648,"day":77},{"amplitude":0.006159916164976525,"day":78},{"amplitude":0.0062580449679620195,"day":79},{"amplitude":0.006357699701466038,"day":80},{"amplitude":0.006457731678885923,"day":81},{"amplitude":0.00655933755834214,"day":82},{"amplitude":0.006662542103592082,"day":83},{"amplitude":0.006767370468025823,"day":84}]},"encoding":{"x":{"field":"day","type":"quantitative"},"y":{"field":"amplitude","type":"quantitative"}},"mark":{"color":"#1f77b4","strokeWidth":2.5,"type":"line"}},{"data":{"values":[{"amplitude":0.0018692433513519365,"day":1},{"amplitude":0.0015600917918305768,"day":2},{"amplitude":0.0018515297437218152,"day":3},{"amplitude":0.0022017868518929345,"day":4},{"amplitude":0.0016589129925106407,"day":5},{"amplitude":0.002144288375581983,"day":6},{"amplitude":0.00226039966039249,"day":7},{"amplitude":0.002174053797180669,"day":8},{"amplitude":0.0020100200560923894,"day":9},{"amplitude":0.002149465022083736,"day":10},{"amplitude":0.0020896640146212974,"day":11},{"amplitude":0.002138818033396594,"day":12},{"amplitude":0.0020476469699435957,"day":13},{"amplitude":0.0021526261403687157,"day":14},{"amplitude":0.002500420333619556,"day":15},{"amplitude":0.002630711326722741,"day":16},{"amplitude":0.0025961894608494116,"day":17},{"amplitude":0.0028403124787368434,"day":18},{"amplitude":0.0024241541674372893,"day":19},{"amplitude":0.002501936726061779,"day":20},{"amplitude":0.0023505086699129375,"day":21},{"amplitude":0.0027322653959512702,"day":22},{"amplitude":0.0025312306697968722,"day":23},{"amplitude":0.002787443617410404,"day":24},{"amplitude":0.0028510207514109175,"day":25},{"amplitude":0.002692975286650207,"day":26},{"amplitude":0.0022696140970061584,"day":27},{"amplitude":0.002648811971349699,"day":28}]},"encoding":{"x":{"field":"day","type":"quantitative"},"y":{"field":"amplitude","type":"quantitative"}},"mark":{"color":"#333","filled":true,"size":40,"type":"point"}}],"title":{"subtitle":"Alarm threshold at 2.5 mils p-p (API 670)","text":"Vibration Forecast: P10 / P50 / P90"},"width":700}
Time to Alarm Threshold (RUL)
When will the vibration cross the 2.5 mil alarm threshold? Each posterior sample gives a different answer. The distribution tells the maintenance planner exactly how much time they have.
# For each posterior draw, compute when A(t) crosses alarm_threshold
alarm_days =
Enum.zip([
Enum.take(u0_samples, n_draws),
Enum.take(growth_samples, n_draws)
])
|> Enum.map(fn {u0, growth} ->
# Solve: u0 * exp(growth * t) * scale_factor = alarm_threshold
# t = log(alarm_threshold / (u0 * scale_factor)) / growth
a0 = u_to_amp.(u0)
if growth > 0.001 and a0 < alarm_threshold do
:math.log(alarm_threshold / a0) / growth
else
nil
end
end)
|> Enum.filter(&is_number/1)
|> Enum.filter(fn d -> d > 0 and d < 365 end)
alarm_sorted = Enum.sort(alarm_days)
n_alarm = length(alarm_sorted)
if n_alarm > 10 do
rul_p10 = Enum.at(alarm_sorted, round(0.1 * n_alarm))
rul_p50 = Enum.at(alarm_sorted, round(0.5 * n_alarm))
rul_p90 = Enum.at(alarm_sorted, round(0.9 * n_alarm))
IO.puts("Time to Alarm Threshold (2.5 mils):")
IO.puts(" P10 (optimistic): #{Float.round(rul_p10, 0)} days (#{Float.round(rul_p10 / 7, 1)} weeks)")
IO.puts(" P50 (median): #{Float.round(rul_p50, 0)} days (#{Float.round(rul_p50 / 7, 1)} weeks)")
IO.puts(" P90 (conservative): #{Float.round(rul_p90, 0)} days (#{Float.round(rul_p90 / 7, 1)} weeks)")
IO.puts("\n Current practice: alarm triggers at 2.5 mil with ZERO advance notice.")
IO.puts(" Bayesian approach: #{Float.round(rul_p50 / 7, 0)} weeks of advance warning with uncertainty bounds.")
end
rul_hist = Enum.map(alarm_days, fn d -> %{"days_to_alarm" => d} end)
Vl.new(
width: 600,
height: 300,
title: [
text: "Remaining Useful Life Distribution",
subtitle: "Days until vibration exceeds 2.5 mil alarm threshold"
]
)
|> Vl.data_from_values(rul_hist)
|> Vl.mark(:bar, opacity: 0.7, color: "#1f77b4")
|> Vl.encode_field(:x, "days_to_alarm", type: :quantitative,
bin: [maxbins: 25], title: "Days to Alarm")
|> Vl.encode(:y, aggregate: :count, title: "Count")
Time to Alarm Threshold (2.5 mils):
P10 (optimistic): 337.0 days (48.2 weeks)
P50 (median): 354.0 days (50.5 weeks)
P90 (conservative): 364.0 days (52.0 weeks)
Current practice: alarm triggers at 2.5 mil with ZERO advance notice.
Bayesian approach: 51.0 weeks of advance warning with uncertainty bounds.
{"$schema":"https://vega.github.io/schema/vega-lite/v5.json","data":{"values":[{"days_to_alarm":351.2685382440359},{"days_to_alarm":364.12138064674355},{"days_to_alarm":353.7027044499418},{"days_to_alarm":354.06531699213525},{"days_to_alarm":362.15549789741345},{"days_to_alarm":359.64652868550604},{"days_to_alarm":354.40392465081254},{"days_to_alarm":342.27218367143286},{"days_to_alarm":342.96176646334766},{"days_to_alarm":363.8723216671393},{"days_to_alarm":354.959563716573},{"days_to_alarm":324.6068651281322},{"days_to_alarm":328.2390491378329},{"days_to_alarm":348.606333475262},{"days_to_alarm":343.82690305149004},{"days_to_alarm":337.40359226551436},{"days_to_alarm":357.06258481676974},{"days_to_alarm":350.8795717666066},{"days_to_alarm":341.68476607779314},{"days_to_alarm":357.65386198130636}]},"encoding":{"x":{"bin":{"maxbins":25},"field":"days_to_alarm","title":"Days to Alarm","type":"quantitative"},"y":{"aggregate":"count","title":"Count"}},"height":300,"mark":{"color":"#1f77b4","opacity":0.7,"type":"bar"},"title":{"subtitle":"Days until vibration exceeds 2.5 mil alarm threshold","text":"Remaining Useful Life Distribution"},"width":600}
Live Updating: Posterior Narrows as Data Accumulates
The core eXMC value proposition for turbine diagnostics. As each day’s vibration reading arrives, the posterior updates. Uncertainty shrinks. The maintenance window becomes clearer.
run_turbine = fn days_of_data ->
sub = Enum.take(observed, days_of_data)
t_sub = Nx.tensor(Enum.map(sub, fn {d, _, _, _} -> d * 1.0 end))
log_a_sub = Nx.tensor(Enum.map(sub, fn {_, a, _, _} -> :math.log(a) end))
ir_sub = Builder.new_ir()
ir_sub = Builder.rv(ir_sub, "log_u0", Dist.Normal, %{mu: Nx.tensor(:math.log(100.0)), sigma: Nx.tensor(0.8)})
ir_sub = Builder.rv(ir_sub, "growth", Dist.Normal, %{mu: Nx.tensor(0.015), sigma: Nx.tensor(0.015)})
ir_sub = Builder.rv(ir_sub, "sigma", Dist.HalfCauchy, %{scale: Nx.tensor(0.2)}, transform: :log)
dist_sub = Dist.Custom.new(turbine_logpdf, support: :real)
ir_sub =
Dist.Custom.rv(ir_sub, "ll", dist_sub, %{
log_u0: "log_u0", growth: "growth", sigma: "sigma",
t_days: t_sub, log_a_obs: log_a_sub, scale: scale_tensor
})
ir_sub = Builder.obs(ir_sub, "ll_obs", "ll", Nx.tensor(0.0))
{tr, _} =
Sampler.sample(ir_sub, init, num_warmup: 500, num_samples: 300, seed: 42, ncp: false)
u0_s = tr["log_u0"] |> Nx.exp() |> Nx.to_flat_list() |> Enum.filter(&is_number/1)
gr_s = tr["growth"] |> Nx.to_flat_list() |> Enum.filter(&is_number/1)
# Compute time-to-alarm distribution
ruls =
Enum.zip([u0_s, gr_s])
|> Enum.map(fn {u0, g} ->
a0 = u_to_amp.(u0)
if g > 0.001 and a0 < alarm_threshold do
:math.log(alarm_threshold / a0) / g
else
nil
end
end)
|> Enum.filter(&is_number/1)
|> Enum.filter(fn d -> d > 0 and d < 365 end)
|> Enum.sort()
n_r = length(ruls)
%{
weeks: div(days_of_data, 7),
u0_mean: Enum.sum(u0_s) / length(u0_s),
u0_std: :math.sqrt(Enum.sum(Enum.map(u0_s, fn x -> :math.pow(x - Enum.sum(u0_s) / length(u0_s), 2) end)) / length(u0_s)),
growth_mean: Enum.sum(gr_s) / length(gr_s),
rul_p10: if(n_r > 10, do: Enum.at(ruls, round(0.1 * n_r)), else: nil),
rul_p50: if(n_r > 10, do: Enum.at(ruls, round(0.5 * n_r)), else: nil),
rul_p90: if(n_r > 10, do: Enum.at(ruls, round(0.9 * n_r)), else: nil)
}
end
# Run with increasing data
stages = Enum.map([7, 14, 28, 42, 56], fn d -> run_turbine.(d) end)
IO.puts("Sequential Updating — Uncertainty collapses as data arrives:\n")
IO.puts(" Data | U0 (g-mm) | Growth (/day) | RUL P10 | RUL P50 | RUL P90")
IO.puts(" ---------|-----------------|---------------|----------|----------|--------")
for s <- stages do
u0_str = "#{Float.round(s.u0_mean, 0)} +/- #{Float.round(s.u0_std, 0)}"
rul_p10 = if s.rul_p10, do: "#{Float.round(s.rul_p10, 0)}d", else: "n/a"
rul_p50 = if s.rul_p50, do: "#{Float.round(s.rul_p50, 0)}d", else: "n/a"
rul_p90 = if s.rul_p90, do: "#{Float.round(s.rul_p90, 0)}d", else: "n/a"
IO.puts(
" #{String.pad_trailing("#{s.weeks} weeks", 9)}" <>
"| #{String.pad_trailing(u0_str, 16)}" <>
"| #{String.pad_trailing(Float.round(s.growth_mean, 4) |> to_string(), 14)}" <>
"| #{String.pad_trailing(rul_p10, 9)}" <>
"| #{String.pad_trailing(rul_p50, 9)}" <>
"| #{rul_p90}"
)
end
Sequential Updating — Uncertainty collapses as data arrives:
Data | U0 (g-mm) | Growth (/day) | RUL P10 | RUL P50 | RUL P90
---------|-----------------|---------------|----------|----------|--------
1 weeks | 81.0 +/- 7.0 | 0.0217 | 166.0d | 226.0d | 329.0d
2 weeks | 82.0 +/- 5.0 | 0.015 | 264.0d | 323.0d | 354.0d
4 weeks | 84.0 +/- 4.0 | 0.0153 | 337.0d | 351.0d | 364.0d
6 weeks | 81.0 +/- 3.0 | 0.0178 | 350.0d | 363.0d | 364.0d
8 weeks | 81.0 +/- 2.0 | 0.018 | n/a | n/a | n/a
[:ok, :ok, :ok, :ok, :ok]
What the Engineer Sees vs Current Practice
IO.puts("""
+-------------------------+------------------------------+------------------------------------+
| Aspect | Current Practice | eXMC Bayesian Approach |
+-------------------------+------------------------------+------------------------------------+
| What operator sees | "1X = 2.3 mils" | "U = 120 [90, 160] g-mm, |
| | | growing at 1.8 [1.4, 2.2] %/day" |
+-------------------------+------------------------------+------------------------------------+
| Alarm logic | Fixed threshold at 2.5 mil. | P(U > U_alarm) = 0.23 and rising. |
| | No advance warning. | Weeks of advance warning. |
+-------------------------+------------------------------+------------------------------------+
| Trending | Manual: analyst plots, | Automatic: growth rate is a model |
| | eyeballs the curve. | parameter with uncertainty. |
+-------------------------+------------------------------+------------------------------------+
| Balance decision | "Gut feel + fixed calendar" | "P50 = 5 weeks to alarm. |
| | | Schedule balance at next outage |
| | | in 3 weeks (90% safe)." |
+-------------------------+------------------------------+------------------------------------+
| After balancing | Start from scratch. | Update prior from balance shot. |
| | | Posterior immediately reflects |
| | | balance quality. |
+-------------------------+------------------------------+------------------------------------+
| Cost of getting wrong | Unplanned outage: | Planned outage at optimal time: |
| | $500K-$2M/day. | ~$50K. 10-40x savings. |
+-------------------------+------------------------------+------------------------------------+
""")
+-------------------------+------------------------------+------------------------------------+
| Aspect | Current Practice | eXMC Bayesian Approach |
+-------------------------+------------------------------+------------------------------------+
| What operator sees | "1X = 2.3 mils" | "U = 120 [90, 160] g-mm, |
| | | growing at 1.8 [1.4, 2.2] %/day" |
+-------------------------+------------------------------+------------------------------------+
| Alarm logic | Fixed threshold at 2.5 mil. | P(U > U_alarm) = 0.23 and rising. |
| | No advance warning. | Weeks of advance warning. |
+-------------------------+------------------------------+------------------------------------+
| Trending | Manual: analyst plots, | Automatic: growth rate is a model |
| | eyeballs the curve. | parameter with uncertainty. |
+-------------------------+------------------------------+------------------------------------+
| Balance decision | "Gut feel + fixed calendar" | "P50 = 5 weeks to alarm. |
| | | Schedule balance at next outage |
| | | in 3 weeks (90% safe)." |
+-------------------------+------------------------------+------------------------------------+
| After balancing | Start from scratch. | Update prior from balance shot. |
| | | Posterior immediately reflects |
| | | balance quality. |
+-------------------------+------------------------------+------------------------------------+
| Cost of getting wrong | Unplanned outage: | Planned outage at optimal time: |
| | $500K-$2M/day. | ~$50K. 10-40x savings. |
+-------------------------+------------------------------+------------------------------------+
:ok
Summary
This notebook demonstrated Bayesian rotor imbalance tracking for steam turbines:
- Jeffcott rotor model maps vibration amplitude to physical imbalance parameters
- Three latent parameters (U0, growth rate, noise) are inferred from daily probe readings
- P10/P50/P90 forecasts predict when vibration will exceed alarm thresholds
- Remaining Useful Life distribution gives weeks of advance warning vs zero today
- Live updating — each new vibration reading narrows the posterior automatically
No new sensors required. Uses existing proximity probe data via OPC-UA. Runs on edge hardware at the plant. Works offline. Survives crashes.
With eXMC’s sample_stream/4, this entire analysis runs as a live dashboard
where posteriors update in real time as each vibration reading arrives from the DCS.