home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
High Voltage Shareware
/
high1.zip
/
high1
/
DIR6
/
BUHLMANN.ZIP
/
READ.ME
< prev
Wrap
Text File
|
1993-10-18
|
18KB
|
317 lines
October 20, 1993
Submariner Research, Ltd.
P.O. Box 1906
Bainbridge, GA 31717
Phone: 912-246-9349
Fax: 912-246-9349
***************************************************************************
Submariner Research, Ltd. and John T. Crea III provides this software
for educational purposes only. This software is not intended to be
used to generate operational dive tables, and has not been tested
or validated, other than to insure that the math routines and equations
utilized here are accurately implemented.
If the user of this software decides to make operational dives based
on information generated by this software, the user accepts full
responsibility and liability for any and all incidents occurring while
executing dives to any schedule calculated by this software.
This software is provided AS IS, and no warranties or guarantees are made
other than that reasonable care has been taken to insure that the math
routines and equations utilized here are accurately implemented.
This software is provided as FREEWARE. Users are encouraged to distribute
this software as long as they continue to make this software available
at no charge (other than reasonable charges for materials, etc.) The
author makes this software available to the diving community, and resale
or sale of this software is strictly forbidden.
This software is Copyright 1993 by John Crea and Submariner Research, Ltd.
**************************************************************************
Basic information and instructions for the Dive Planner and Simulator
software distributed by Submariner Research, Ltd.
This spreadsheet implements the 1983 version of what is commonly called
the "Buhlmann algorithm", as present in the book "Decompression/Decompression
Sickness" by Dr. A.A. Buhlmann. As this algorithm (or modifications based
upon it) is currently utilized in many of the diver carried computers on the
market, it was felt that an introduction to the physiology and mathematics of
gas uptake and elimination based on this model was needed. Thus, this spread-
sheet was born.
The Buhlmann algorithms - there have been several and they are continually
evolving - are "neo-Haldanian" in that they are derived from basic Haldane
principles. The heart of Haldane is the concept of parallel compartments
(sometimes called "tissues" but they do not correspond to anatomical tissues)
that load and unload with gas tension (or partial pressure, the gas loading)
according to the exposure and following an exponential pattern. Ascent is
limited by the level of calculated gas partial pressure in the compartments.
Haldane set his limits as the ratio of gas partial pressure in a compartment
to ambient pressure. Buhlmann's algorithm uses a method similar to the one
developed by Workman (1965) and refined by Schreiner for multiple gases (1971).
This "neo-Haldanian" method set an ascent limit for each compartment for each
depth based on a differential of partial pressures, the differences between
compartment total inert gas levels and ambient pressure. The traditional
word for these limits is "M-values", with M standing for "maximum". Ascent is
halted for a stop as the ascent limit is reached, and is resumed when time at
the stop has allowed enough gas to unload to enable reaching the next stop,
and so on. In Buhlmann's method, the maximum allowable loadings are calculated
for nitrogen and helium in each compartment in proportion to the relative
partial pressures of the two inert gases. Buhlmann's algorithm calculated
ascents limits as a specific function of the half times for the compartments,
using two parameters "a" and "b", which can be related to traditional M-values.
Some conservative factors are included in Buhlmann's implementation of the
algorithm.
The algorithm upon which this software is based is described in the Buhlmann
book "Decompression/Decompression Sickness" (1983). This algorithm was
designated as ZH-L12; it has 16 compartments, with half times from 1 to 240
minutes for helium and from 2.65 to 635 minutes for nitrogen. In ZH-L12,
the "12" refers to the number of coefficient pairs used (some are used for more
than one compartment), not the number of compartments; this is confusing,
and has lead to much confusion among the diving community.
The compartments and their parameters are as follows (all half times are in
minutes):
Compartment | He Halftime | N2 Halftime | N2 "a" | N2 "b" | He "a" | He "b"
------------------------------------------------------------------------------
| | | | | |
1 | 1 | 2.65 | 2.20 | 0.820 | 2.20 | 0.820
2 | 3 | 7.94 | 1.50 | 0.820 | 1.50 | 0.820
3 | 4.6 | 12.2 | 1.08 | 0.825 | 1.08 | 0.825
4 | 7 | 18.5 | 0.90 | 0.835 | 0.90 | 0.835
5 | 10 | 26.5 | 0.75 | 0.845 | 0.75 | 0.845
6 | 14 | 37 | 0.58 | 0.860 | 0.58 | 0.860
7 | 20 | 53 | 0.47 | 0.870 | 0.47 | 0.870
8 | 30 | 79 | 0.455 | 0.890 | 0.455 | 0.890
9 | 43 | 114 | 0.455 | 0.890 | 0.455 | 0.890
10 | 55 | 146 | 0.455 | 0.934 | 0.515 | 0.926
11 | 70 | 185 | 0.455 | 0.934 | 0.515 | 0.926
12 | 90 | 238 | 0.380 | 0.944 | 0.515 | 0.926
13 | 115 | 304 | 0.255 | 0.962 | 0.515 | 0.926
14 | 150 | 397 | 0.255 | 0.962 | 0.515 | 0.926
15 | 190 | 503 | 0.255 | 0.962 | 0.515 | 0.926
16 | 240 | 635 | 0.255 | 0.962 | 0.515 | 0.926
****************************************************************************
INSTRUCTIONS:
This spreadsheet implements the 1983 version of Dr. A.A. Buhlmann's
decompression algorithm. All the complex math is performed automatically
as you enter the dive depth, dive time, and inert gas concentrations that
you wish to use.
The program is started by typing "BUHLMANN" at the DOS prompt. The opening
screen will be displayed, and you will see a flashing "Loading, Please wait..."
displayed in the upper left corner of your screen. The program name and
the usual legal disclaimers will be displayed on this opening screen.
After a short time, the "Loading...." display will be replace with one that
reads "Press any key to continue". Pressing any key on the keyboard will
take you to the main screen of the program. Please take the time to read the
opening screen.
The main screen is a typical spreadsheet display, and the menu's (these are
pull-down menu's) at top of the screen can be accessed via the "/" key.
The "Graph" function will allow you to display the inert gas loading at
anytime during the data entry phase, and initially shows this as a stacked
bar graph. You may change this from color to b&w, and you may also change
the scale (to accommodate different dive ranges). "VIEW" under the graph menu
will display the graph. This menu area is also where you will be able to exit
from the program.
The main screen will be essentially divided into 2 parts, the left side
and the right side. The left side of the screen is where you will entering
your dive data, and changing/adjusting parameters of the program.
The right side of the screen displays a "box" with essentially 3 areas
of interest. At the top of the box is a DECOM CEILING (fsw). This is
the shallowest depth that you can ascend to and still be within the
parameters of Dr. Buhlmann's algorithm. Initially this value will display
a negative number. This is because a diver saturated at sea level can
ascent to an altitude without violating the model. Since the display
is in feet of sea water, a negative value here indicates an atmospheric
pressure less than 1.0 ATA (or 1.01325 BAR).
Next you will see two time displays - one for Total Decom Time (this
is only time spent at the decompression stops) and one for Total Dive
Time (this is bottom time, travel time, and decom time taken all together).
Last, on the left side of the screen you will see the actual compartment
limiting values for all 16 compartments, expressed in feet of sea water.
You will notice that some labels and numeric values are bright white, and
some are a "dull" white. Bright white data locations are user changeable.
Just use the cursor keys to move to the appropriate cell, and input the
new value. Be sure to either move with the arrow keys or hit the enter
key to make the change "stick".
I - Parameter modifications:
The cursor will be positioned above a series of 6 modifiers. These are:
- a modifier
- b modifier
- N2 modifier
- He modifier
- BT modifier (linear)
- BT modifier (exponential)
All modifiers are initially set to values of 1.0. Changing these values will
allow you to make the model more conservative (or less conservative, as the
you may desire).
- a modifier: Buhlmann's "a" parameter is equivalent to Workman's "M-value".
The modifier is a multiplier, and setting this modifier to
values of less than 1.0 will make the numbers generated more
conservative (ie, longer decom times, and deeper first stops.)
You might want to try increasing this modifier by 0.05 at a
time.
- b modifier: Buhlmann's "b" parameter is equivalent to Workman's "delta-M
value". This modifier is also a multiplier, and setting this
modifier to values of 1.0 or greater will make the numbers
generated more conservative (ie, longer stop times, deeper first
stop depths, and longer total decompression.) Again, a good
starting point for modifying this parameter is probably to
decrement it's value by 0.05 increments.
- N2 modifier: This modifier adjusts (multiplies) the Nitrogen fraction that
the algorithm uses during both the dive and the decompression
phase of the dive. It essentially makes the algorithm think
that it is being exposed to higher inert gas values than it
really is. Setting this modifier to values greater than 1.0
will make the resulting numbers more conservative.
- He modifier: This modifier adjusts (multiplies) the Helium fraction that
the algorithm uses during both the dive and the decompression
phase of the dive. It essentially makes the algorithm think
that it is being exposed to higher inert gas values than it
really is. Setting this modifier to values greater than 1.0
will make the resulting numbers more conservative.
- BT mod (L) This is a linear modifier applied to the bottom time. This
is a multiplier that, when set to greater than 1.0, increases
bottom time value that is used in the model computations.
For example, setting this to 1.1 will change a 30 minute
bottom to a 33 minute bottom time. This is equivalent
to what many of us used to do with the Navy dive tables,
going to the next longer bottom time on cold, or heavy exertion
dives.
- BT mod (E) This is an exponential modifier that is applied to the bottom
time. This modifier, when set to greater than 1.0, increases
bottom time value that is used in the model computations in
an exponential manner (ie, raises the bottom time value to
this power). For example, setting this to 1.1 will change a
30 minute bottom to a 42.2 minute bottom time. This has the
advantage that is makes longer bottom times much longer as
compared to shorter bottom times. With the same 1.1 modifier
value, a 90 minute bottom time becomes 141.14 minutes for use
in the model. As it is felt that Haldanian models are not
conservative enough when it comes to long bottom times, this
is one approach to making the output more conservative.
I would recommend leaving the parameter modifiers at 1.0 for the first
few times that you use this program. As you begin to get a feel for
the values that are generated, then you can begin to play with adjusting
these parameters.
II - Entering Dive Data:
Next, as you move down the left side window, you will find the area that
allows you to enter dive and decompression data. The bright cells are where
this data is entered, and the values in those cells is changed by moving the
cursor down to the cell you want to change, typing in the numerical value
that you want, and then hitting the enter key (or the cursor key).
The row labeled "Surface" is not user changeable in this version, and
establishes that you are at sea level, breathing air prior to our dive. This
implementation requires that your dive planning be done for a single, non-
repetitive dive (with no residual inert gas levels remaining from any previous
dives).
The program is setup to currently allow a 3 step multi-level dive, and
will allow you to approximate the gas loading and unloading during
ascent/travel/descent between dive steps. The first row headed Travel
is for entering travel data from the surface to the bottom. If this
line is left set to zeros, then the dive is calculated with instantaneous
ascent and descents between dive steps.
The easiest way to handle an ascent or descent is to enter the average depth
seen during the travel, and enter the time the ascent or descent required.
For example, if you are descending from the surface to 180 fsw, at a descent
rate of 60 feet per minute, the time required is 3 minutes, and the average
depth is 90 fsw. Using this will give a fairly good match to doing this
via calculus.
After dive depth, and bottom time, you are given the option to set the
FiN2 and FiHe for the breathing mixture. These values are entered as
decimal fractions, with Air having a FiN2 of 0.79. All values are initially
setup to reflect air diving, but the spreadsheet will handle air, nitrox,
heliox, and trimix dives as well. Gas switches can occur at any dive or
decompression step. It is left up to the user to track and follow oxygen
toxicity units, and track the CNS toxicity clock.
Again, limited multi-level dives can be simulated, with up to 3 depths
allowed. As you input the dive data, you will notice that the Decom Ceiling
changes to track the current shallowest depth that you can ascend to safely.
Once the dive data is input, we now come to the decompression data. We will
plan the travel from the last dive stage to the decompression stop that
is a multiple of 10fsw and deeper than or equal to the Decom Ceiling
displayed. The ascent to the first stop can be entered into the last
"travel" row, and quite often, with slower ascent rates, the Decom Ceiling
will become shallower during this ascent phase of the dive.
So, now you move to the first stop, and begin entering times (the depths
are not user changeable). You should start at the deeper stops with stop
times in 1 minute increments, and increment the time spent at that stop
until the Decom Ceiling value will allow you to move up to the next shallower
decompression stop. You will then move the cursor to that stop, and begin
trial and error until you find the time required to allow the Decom Ceiling
to let you move up to the next stop. This process is repeatedly cycled
until you reach the surface (0 fsw).
Once finished, you can copy the results for later reference, or use the print
menu at the top of the screen to either print the results to paper or
to a computer file.
****************************************************************************
Hardware requirements:
This software is designed to run on the IBM and IBM compatible family of
personal computers. At this time, an Apple/MacIntosh version is not available.
It requires at least 370K of free ram to run. If you attempt to run the
program and get a message "Out of memory" or "Not enough memory for virtual
disk", then you will need to free up some additional memory to all the program
to run (try unloading some TSR's to free up additional memory).
It may be run either directly from a floppy disk or can be copied to your
hard disk and run from the hard disk drive. Copying to and running from
your hard disk drive is recommended in terms of performance and speed.
A math co-processor will be automatically utilized if present, if not, then
it will be emulated in the software. A math co-processor will significantly
improve the performance of this software.
A color monitor is recommended, but this software will run under a monochrome
monitor, or with a LCD display (as found on many laptops and notebooks).
*******************************************************************************