Which downhole drilling quantities surface torque, top drive speed and hook load can recover, over which part of the operating envelope, and at what sensor rate.
Python 3.8 or later.
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
python3 -m pytestFrom code/, in this order:
cd code
python3 run_model.py # model checks
python3 run_index.py # index at six speeds, scale and window start checks
python3 run_envelope.py # 90 point envelope sweep
python3 run_requirements.py # window, sampling rate and latency sweeps
python3 run_starts.py # 21 window starts over a stick-slip cycle, and their mean Gramian
python3 run_temperature.py # one line of the envelope at four temperatures
python3 run_validate.py # unscented Kalman filter at 15 points
python3 probe_prior.py # filter with a wider prior and a longer window
python3 merge.py
python3 run_partition.py
python3 build_numbers.py
python3 figures.pyThe full sequence takes about an hour and a half on an eight-core CPU. The sweeps run
on eight worker processes; run_starts.py takes the number from the PROCS
environment variable when it is set (for example PROCS=2 python3 run_starts.py). The filter runs use fixed
seeds, so a rerun gives the same files.
Everything is written to results/: one JSON file per script, numbers.tex (every
reported value as a LaTeX macro) and the figures in results/figs/.
The study is simulation based. The model constants and their sources are listed in
data/MANIFEST.md.
See CITATION.cff.
MIT