Skip to content

Data acquisition

Process variables (pressures, model angle, force-balance loads) are read through a National Instruments compactDAQ (cDAQ) chassis hosting three input modules. The cDAQ is connected to the lab PC by USB; both ADCL WinSoft and AeroWare use the NI-DAQmx driver to talk to it.

Chassis and modules

Slot Module Channels Range Used for
1 NI-9203 8 4–20 mA current input Pressure transducers (static ring, model pressure).
2 NI-9215 4 ±10 V differential Pitch angle sensor, miscellaneous voltages.
3 NI-9237 4 Bridge ±25 mV/V PGB sting force balance (normal, axial, moment).

Channels are addressed in NI-DAQmx as cDAQ1Mod<N>/ai<M>. ADCL WinSoft's default channel map is in code/adcl_winsoft/src/adcl_winsoft/daq/channel_map.py.

Sample rate and continuous mode

ADCL WinSoft reads at 5 Hz by default. The NI-9237 requires a continuous sample clock — single-point reads are not supported by the module — so the DAQ worker (code/adcl_winsoft/src/adcl_winsoft/daq/cdaq_reader.py) opens a continuous task and reads one sample per polling tick.

Sample rate is configurable per channel in the settings file but kept low because the physical phenomena of interest (steady-state pressure, slowly varying angle, average force) do not need high temporal resolution.

Calibration

The cDAQ produces raw electrical values: mA from the NI-9203, V from the NI-9215, mV/V from the NI-9237. ADCL WinSoft converts these to engineering units in two steps:

  1. Per-channel linear calibration (slope + offset) applied in daq/calibration.py. Slope and offset come from the channel map.
  2. Multi-channel matrix calibration for the PGB sting (N_C1_inv.csv and optional N_C1_inv_C2.csv matrices) — converts the three bridge readings to forces and moment. These matrices are inherited from the AeroWare install and live in E:\Wind_tunnel\AeroWare\Configs\.

Velocity from the static ring uses Bernoulli with a Sutherland-viscosity correction; the model is in daq/calibration.py.

Simulated DAQ

If the nidaqmx package is not importable (e.g. on a Linux dev machine), or if the environment variable ADCL_WINSOFT_SIMULATE=1 is set, the DAQ worker degrades gracefully to a synthetic signal generator. This is what makes it possible to develop and test the UI on this Mac without the lab hardware. The simulated mode is signalled in the application's footer bar so the operator cannot confuse it for real data.

Data outputs

Each acquisition run produces a single CSV file in:

E:\Wind_tunnel\ADCLWinSoft\Data\YYYY-MM-DD\DDMMYY HHMMSS.fff<tag>.csv

The filename format is inherited from AeroWare for backward compatibility with existing post-processing scripts. The columns are: timestamp, raw channels (mA / V / mV/V), engineering-unit channels (Pa, deg, N, N·m), and the derived signals (velocity, Reynolds number).

The default data root is E:\Wind_tunnel\ADCLWinSoft\Data\; it is configurable in %APPDATA%\AeroLab\ADCLWinSoft\settings.json. Migrations from AeroWare's old paths (E:\Wind_tunnel\Data, E:\Wind_tunnel\AeroWare) are handled silently in config/settings.py.