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:
- Per-channel linear calibration (slope + offset) applied in
daq/calibration.py. Slope and offset come from the channel map. - Multi-channel matrix calibration for the PGB sting (
N_C1_inv.csvand optionalN_C1_inv_C2.csvmatrices) — converts the three bridge readings to forces and moment. These matrices are inherited from the AeroWare install and live inE:\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:
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.