AN64-3: SBE 43 Dissolved Oxygen (DO) Sensor - Hysteresis Corrections

Document Number: 
64-3
Publication Date: 
Friday, August 1, 2014
AttachmentSize
appnote64-3Aug14.pdf345.96 KB

General Description

Under extreme pressure, changes can occur in gas permeable Teflon membranes that affect their permeability characteristics. Some of these changes (plasticization and amorphous/crystalinity ratios) have long time constants and depend on the sensor’s time-pressure history. These slow processes result in hysteresis in long, deep casts. The hysteresis correction algorithm operates through the entire data profile and corrects the oxygen voltage values for changes in membrane permeability as pressure varies. At each measurement, the correction to the membrane permeability is calculated based on the current pressure and how long the sensor spent at previous pressures. Applying the hysteresis correction is recommended for profiles with depths exceeding 1000 meters.

Sea-Bird has implemented an optional hysteresis correction for dissolved oxygen data in the first processing step of our post-processing software (Data Conversion module in SBE Data Processing). Hysteresis corrections are applied separately from the calibration equation, and can be conducted on SBE 43 voltage values or dissolved oxygen values. The correction algorithm requires a continuous time series of data, with no temporal data gaps (although a continuous time series is necessary, a constant sampling interval is not required). Prior to processing, do not remove any data from the downcast or upcast (if to be used), other than a surface soak at the beginning of the downcast.

Note: For additional SBE 43 calibration equation information and application, see:

The Appendix contains the hysteresis algorithm for reference, and for customers creating their own software.

 

Installing Software

Hysteresis corrections require the use of SBE Data Processing version 7.18c or later. If you are currently using older software:

  1. Download the latest software version.
  2. Double click on SBEDataProcessing_Win32_V*.**.exe (where *.** is the version number), and follow the dialog box directions to install the software.

Note: You can overwrite the older software version on your computer, or you can install the new software to a different directory if desired (the installation procedure allows you to select the desired folder location for the software).

 

Checking Calibration Coefficients and Configuration (.con or .xmlcon) File

  1. Locate the SBE 43 calibration sheet that corresponds with the period of data to be processed.

In Spring of 2008, Sea-Bird began using the Sea-Bird equation for calibrating the SBE 43, in place of the Owens-Millard equation.

  • Sea-Bird equation lists coefficients Soc, Voffset, A, B, C, E, tau (see note), and dynamic coefficients D1, D2.
  • Owens-Millard equation lists coefficients Soc, Boc, Voffset, TCor, and PCor.

To do hysteresis corrections with our software, you must use the Sea-Bird equation. If your calibration sheet lists Owens-Millard coefficients, contact Sea-Bird with the SBE 43 serial number and calibration date. We will regenerate your calibration sheet, fitting bath data from the applicable calibration date to the Sea-Bird equation.

Notes:

  • If tau is not listed on your Sea-Bird equation calibration sheet, contact Sea-Bird with the SBE 43 serial number and calibration date.
  • Soc and Voffset appear in both the Owens-Millard and Sea-Bird equations. Do not use Soc or Voffset from Owens-Millard in the Sea-Bird equation. Although the variable names are the same, the values are not.

In Fall of 2008, Sea-Bird began listing default values for the hysteresis correction coefficients H1, H2, and H3 on SBE 43 calibration sheets. These coefficients are not shown if your calibration sheet was generated prior to that date; use the default values provided here, which are the same as the default values listed on newer calibration sheets (i.e., you do not need a new calibration sheet):

  • H1 = amplitude of hysteresis correction. Default = -0.033, range = -0.02 to -0.05.
  • H2 = function constant or curvature function for hysteresis. Default = 5000, second-order parameter that does not require tuning between sensors.
  • H3 = time constant for hysteresis (seconds). Default = 1450, range = 1200 to 2000.

Default hysteresis coefficients are adequate for most applications. If requiring higher accuracy (±1 µmol/kg), H1 and H3 can be fine-tuned if a complete profile (downcast and upcast) is available, made preferably to greater than 3000 meters. Adjust H1 and H3 in the configuration (.con or .xmlcon) file during analysis of the complete profile, and select the best fit. These parameters are stable, and can be used without further adjustment on other casts with the same SBE 43.

  1. In SBE Data Processing’s Configure menu, select the CTD to view its configuration (.con or .xmlcon) file. Check the calibration coefficients for the SBE 43: verify that the Sea-Bird equation is selected, and that the calibration coefficients correspond to the coefficients on the calibration sheet. If desired, save the configuration file with a new name (use the Save As button in the Configuration dialog box).

 

Processing Data and Removing Oxygen Hysteresis

Converting Raw Data (Data Conversion module) when Winkler Bottle Data is Available

  1. In SBE Data Processing’s Run menu, select Data Conversion.
  2. On the File Setup tab (see SBE Data Processing manual or Help files for selections not described here):
  1. Select the configuration (.con or .xmlcon) file (Instrument configuration file) for your CTD; see Checking Calibration Coefficients and Configuration (.con or .xmlcon) File above to verify you are using the correct calibration coefficients for your SBE 43.
  2. Select the data file (Input directory and Input file) for your CTD.
  1. On the Data Setup tab (see SBE Data Processing manual or Help files for selections not described here):
  1. For Create file types, select Create both data and bottle file (creates .cnv and .ros files).
  2. Click the Select Output Variables button. As a minimum, select the following variables for output:
  • Scan Count
  • Time, Elapsed (seconds)
  • Pressure (db)
  • Temperature (ITS-90, deg C)
  • Conductivity (S/m)
  • Oxygen Voltage, SBE 43 (V)
  • (if bottle data available) Oxygen, SBE 43, ml/l or other units*
    (*select DO concentration units to correspond with units from your Winkler samples)

Click OK to exit the Select Output Variables dialog box.

  1. On the Miscellaneous tab, in the Oxygen section (see SBE Data Processing manual or Help files for selections not described here):
  1. Enter Window size for oxygen calculation (use default value of 2 seconds).
  2. Select Apply Tau correction.
  3. Select Apply hysteresis correction to SBE 43 when Sea-Bird equation selected in instrument configuration file.
  1. Click the Start Process button.

Data Conversion performs the hysteresis corrections on the SBE 43 voltage values, and then uses the corrected voltages to convert to DO concentration units (ml/l, or other selected units). Therefore, both columns of output DO data (voltage and concentration) contain data that has been corrected for hysteresis.

If requiring higher accuracy (±1 µmol/kg), plot the output DO data to determine if H1 and H3 require fine-tuning to further reduce hysteresis. As necessary, rerun Data Conversion on the raw data until the optimal H1 and H3 values are determined.

Data Conversion outputs a .cnv file and a .ros file with the selected variables. The .cnv file contains the selected output variables for all scans from the input data file. The .ros file contains a subset of the .cnv data, with a range of scans associated with each bottle firing.

Because the hysteresis corrections have been applied to the DO concentration data (ml/l or other units), comparisons to bottle Winkler data is more accurate for deep profile samples (> 1000 m). The bottle Winkler to .ros output comparisons can be used to correct the calibration equation slope, by adjusting Soc; if Soc adjustment is required, rerun Data Conversion with the updated Soc value (see Application Note 64-2).

Note: At this point, DO concentration data has been calculated from oxygen voltage data that is corrected for hysteresis. However, the T, C, and P data used in the DO concentration calculation has not yet been processed for dynamic corrections (filtering, aligning, and cell thermal mass adjustments), which apply to moving platforms. Because the water sampler was presumably held at each bottle trip depth for 30 to 60 seconds or more before taking a sample, dynamic corrections are not needed for bottle-to-sensor comparisons. However, these dynamic corrections are required for continuous profiling data, and must be done to get the most accurate derived variable results, including DO concentration, % DO saturation, Salinity, and Density in the continuous profile data for the entire cast. Derive these variables after dynamic corrections are done.

If the bottle-to-sensor data comparisons are adequate and there is no need to adjust the slope (Soc) in the SBE 43 calibration, proceed with data processing (Performing Dynamic Corrections below) using the .cnv file created. For DO, process the Oxygen Voltage output in the .cnv file; do not process the DO concentration data (which was output only for comparison to bottle samples).

Converting Raw Data (Data Conversion module) when Winkler Bottle Data is NOT Available

  1. In SBE Data Processing’s Run menu, select Data Conversion.
  2. On the File Setup tab (see SBE Data Processing manual or Help files for selections not described here):
  1. Select the .con or .xmlcon file (Instrument configuration file) for your CTD; see Checking Calibration Coefficients and Configuration (.con or .xmlcon) File above to verify you are using the correct calibration coefficients for your SBE 43.
  2. Select the data file (Input directory and Input file) for your CTD.
  1. On the Data Setup tab (see SBE Data Processing manual or Help files for selections not described here):
  1. For Create file types, select Create converted data (.cnv) file only.
  2. Click the Select Output Variables button. As a minimum, select the following variables for output:
  • Scan Count
  • Time, Elapsed (seconds)
  • Pressure (db)
  • Temperature (ITS-90, deg C)
  • Conductivity (S/m)
  • Oxygen Voltage, SBE 43 (V)

Click OK to exit the Select Output Variables dialog box.

  1. On the Miscellaneous tab, in the Oxygen section (see SBE Data Processing manual or Help files for selections not described here):
  1. Enter Window size for oxygen calculation (use default value of 2 seconds).
  2. Select Apply Tau correction.
  3. Select Apply hysteresis correction to SBE 43 when Sea-Bird equation selected in instrument configuration file.
  1. Click the Start Process button.

Data Conversion outputs a .cnv file, containing the selected output variables for all scans from the input data file.

Note: At this point, the oxygen voltage data has been corrected for hysteresis. However, the T, C, and P data needed for the DO concentration calculation (ml/l or other units) has not been processed for dynamic corrections (filtering, aligning, and cell thermal mass adjustments). These dynamic corrections must be done to get the most accurate derived variable results, including DO concentration, % DO saturation, Salinity, and Density. Derive these variables after dynamic corrections are done.

Proceed with data processing (Performing Dynamic Corrections below) using the .cnv file created.

Performing Dynamic Corrections (Filter, Align CTD, and Cell Thermal Mass modules)

Follow the processing steps and parameters recommended for your CTD; see the SBE Data Processing manual or Help files.

Deriving Oxygen Concentration corrected for Hysteresis and for Dynamic Errors (Derive module)

Note: Run the Derive module prior to Bin Averaging your data.

  1. In SBE Data Processing’s Run menu, select Derive.
  2. On the File Setup tab (see SBE Data Processing manual or Help files for selections not described here):
  1. Select the .con or .xmlcon file (Instrument configuration file) for your CTD.
  2. Select the .cnv data file (Input directory and Input file) for your CTD.
  1. On the Data Setup tab, click the Select Derived Variables button.
  • Select Oxygen, SBE 43, ml/l (or other units).
  • Select other variables (density, salinity, etc.) as desired.

Click OK to exit the Select Derived Variables dialog box.

  1. On the Miscellaneous tab, in the Oxygen section:
  1. Enter the Window size for the oxygen calculation (use default value of 2 seconds).
  2. Select Apply Tau correction.

Derive calculates the selected derived variables, and adds columns for those variables to the file.

Note: If you selected DO concentration as an output variable in Data Conversion (for comparison to Winkler bottle data), the output .cnv file now contains two columns of DO concentration data. Both columns have been corrected for oxygen hysteresis, but the final column has also been corrected for dynamic errors.

 

Appendix — Hysteresis Algorithm

The hysteresis algorithms are included here for reference, and for customers creating their own software. Two algorithms are provided:

  • Algorithm using oxygen voltage values.
  • Algorithm using oxygen concentration (ml/l, etc.) values – this algorithm allows you to correct for hysteresis on a data file that has already been processed. A file that has already been processed can be corrected for hysteresis, as long as each scan contains a time stamp or the time increment between scans is known.

We recommend that you run at least a few full CTD files through SBE Data Processing as well as your own software, to verify that your software agrees in the final result.

Hysteresis Algorithm using Oxygen Voltage Values

D = 1 + H1 * (exponential(P( i ) / H2) – 1)

C = exponential (-1 * (Time( i ) – Time( i-1 )) / H3)

Oxygenvolts ( i ) = OxVolt( i ) + Voffset

Oxnewvolts ( i ) = {( Oxygenvolts ( i )  + (Oxnewvolts ( i-1 ) * C * D)) – (Oxygenvolts ( i-1 ) * C)} / D

Oxfinalvolts ( i ) = Oxnewvolts ( i ) – Voffset

where

  • i = indexing variable (must be a continuous time series to work; can be performed on bin averaged data), where i = 1:end (end is largest data index point plus 1).
  • P( i ) = pressure (decibars) at index point i .
  • Time( i ) = time (seconds) from start of index point i .
  • OxVolt( i ) = SBE 43 oxygen voltage output directly from sensor, with no calibration or hysteresis corrections, at index point i.
  • Voffset = correction for an electronic offset that is applied to voltage output of sensor. Voffset correction is always negative (see factory calibration sheet for this coefficient). Voffset is added to raw voltages prior to hysteresis correction. At end of hysteresis corrections, Voffset is removed prior to data conversion using SBE 43 calibration equation (see Oxfinalvolts ( i )).
  • Oxygenvolts ( i ) = dissolved oxygen voltage value with Voffset correction (made prior to hysteresis correction) at index point i.
  • D and C are temporary variables used to simplify expression in processing loop.
  • H1 = amplitude of hysteresis correction function. Default = -0.033, range = -0.02 to -0.05 (varies from sensor to sensor).
  • H2 = function constant or curvature function for hysteresis. Default = 5000.
  • H3 = time constant for hysteresis (seconds). Default = 1450, range = 1200 to 2000 (varies from sensor to sensor).
  • Oxnewvolts ( i ) = hysteresis-corrected oxygen value at index point i.
  • Oxfinalvolts ( i ) = hysteresis-corrected oxygen value at index point i with Voffset removed. This step is necessary prior to computing oxygen concentration using SBE 43 calibration equation.

Notes:

  • Scan 0 — You cannot calculate Oxfinalvolts ( i ) for scan 0, because the algorithm requires information about the previous scan, so skip scan 0 when correcting for hysteresis.
  • Scan 1 — When calculating Oxfinalvolts ( i ) for scan 1, make the following assumption about the values from scan 0:
    Oxnewvolts ( 0 ) = Oxygenvolts ( 0 ).

Hysteresis Algorithm using Oxygen Concentration Values

D = 1 + H1 * (exponential(P( i ) / H2) – 1)

C = exponential (-1 * (Time( i ) – Time( i-1 )) / H3)

Oxnewconc ( i ) = {( Oxygenconc ( i )  + (Oxnewconc ( i-1 ) * C * D)) – (Oxygenconc ( i-1 ) * C)} / D

where

  • i = indexing variable (must be a continuous time series to work; can be performed on bin averaged data), where i = 1:end (end is largest data index point plus 1).
  • P( i ) = pressure (decibars) at index point i .
  • Time( i ) = time (seconds) from start of index point i .
  • Oxygenconc ( i ) = dissolved oxygen concentration at index point i.
  • D and C are temporary variables used to simplify expression in processing loop.
  • H1 = amplitude of hysteresis correction function. Default = -0.033, range = -0.02 to -0.05 (varies from sensor to sensor).
  • H2 = function constant or curvature function for hysteresis. Default = 5000.
  • H3 = time constant for hysteresis (seconds). Default = 1450, range = 1200 to 2000 (varies from sensor to sensor).
  • Oxnewconc ( i ) = hysteresis-corrected oxygen concentration at index point i.

Notes:

  • Scan 0 - You cannot calculate Oxnewconc ( i ) for scan 0, because the algorithm requires information about the previous scan, so skip scan 0 when correcting for hysteresis.
  • Scan 1 ‑ When calculating Oxnewconc ( i ) for scan 1, make the following assumption about the values from scan 0: Oxnewconc ( 0 ) = Oxygenconc ( 0 ).

 

Also See

  • Application Note 64: SBE 43 Dissolved Oxygen Sensor — Background Information, Deployment Recommendations, and Cleaning and Storage
  • Application Note 64-1: Plumbing Installation — SBE 43 DO Sensor and Pump on a CTD
  • Application Note 64-2: SBE 43 Dissolved Oxygen Sensor Calibration and Data Corrections using Winkler Titrations

 

Application Note Revision History

Date Description
  Initial release.
February 2010 - Update link to SBE Data Processing on FTP site.
- Add information on .xmlcon file.
- Update screen capture for Data Conversion Miscellaneous tab.
- Update address.
August 2014 Update links to documents and software on website.

 

Applies To