Real-Time Data Acquisition and Presentation


The University's fuel cell buses include equipment to collect data from many different sources, including vehicle computer state, high voltage power flow, vehicle position, speed, and acceleration, fuel cell system state, and individual cell voltages in the fuel cell stack. A system has been developed to record all this data and to automatically transmit it to a central storage location. This system, called Universal Data Acquisition and Control, or UDAC, serves the needs of multiple user communities: it provides detailed data to researchers at the FCRL who wish to analyze the buses' performance, it sends immediate warnings of vehicle faults to the staff responsible for maintenance, and it compiles an operational history of the bus with important information about each run, which is available for public web access.

System Architecture

Data Collection

Each vehicle has a small netbook computer, running Debian GNU/Linux, which connects to a UD-FCRL custom data acquisition board. This board incorporates 6 USB-serial converters (connected to devices that use serial data, such as the vehicle computer and traction inverter), 2 variable-reluctance speed sensor inputs, 10 analog inputs, 6 acoustic rangefinder connections (for future use in determining body roll and pitch relative to grade) and an accelerometer. The computer is also equipped with a cellular modem that provides Internet connectivity.

Each netbook runs a MySQL database server and several UDAC software modules. Each module has a narrowly defined function, making them easy to independently debug and use. Data acquisition modules write data into the MySQL database (and, in the case of dual-purpose modules that also perform control functions, read data from the database), replication modules copy data from one database to another, and analysis modules present data to users.

Diagram of the UDAC system.
  • udac_bus_ui: user interface module allowing the bus driver to easily monitor vehicle status and control the hybrid system (in development)
  • udac_cvm_2a: record data from revision 2A UD cell voltage monitoring units, used only on bus 1
  • udac_cvm_2c: record data from revision 2C and newer CVMs, used on bus 2 and later
  • udac_daq_int: record data from multifunction DAQ unit
  • udac_ebus_plc: interrogate Think'n'Do WinPLC used to control the fuel cell on bus 1, using MODBUS/TCP
  • udac_ebus_sbc: record log data from EBus vehicle computers
  • udac_gps: record NMEA 0183 data from GPS units
  • udac_h2fm: record data from the hydrogen flowmeter on bus 1
  • udac_master: monitor other UDAC processes for hangs and crashes, restarting when necessary
  • udac_modbus_generic: interrogate MODBUS/RTU enabled controllers, used with the traction inverter
  • udac_replicatee: receive replicated data
  • udac_replicator: replicate data in a compact format suitable for a limited bandwidth connection
  • udac_xtract: extract data on each bus run into an XML file
  • udac_xml_web: read XML data files, create pages with data for each bus run, and post the runs on Google Calendar

More Information

The output from udac_xml_web is available online for the Phase 1 and Phase 2 buses. More detailed data and information about UDAC is also available.