![]() |
|||||||
|
|||||||
![]() |
![]() |
|
Software
Development The following software tasks were required to develop the interactive, user-friendly development environment we desired.
Figure 8 - Data Flow for Neural Ventilator The data flow and module breakdowns for the software are shown in Figure 8 and works as follows: the microcontroller is continuously measuring the pressure, it sends that data together with the flow (extracted from the PWM value) to the software that is running on the PC. The PC software then sends the data to NeuroSolutions which trains the current architecture and finds the best network weights. These weights are then downloaded to the microcontroller which uses them to better control the ventilator (improve its performance). The visible part of the software is a dialog box shown in Figure 9. This dialog box has a Start button that opens and initializes the OLE interface with NeuroSolutions. The user has to then choose the desired ventilation mode and the corresponding settings.
Figure 9 - Neural Ventilator Dialog Box In addition to the operating system and hardware drivers necessary to control the ventilator hardware and sensors, we also created the C++ primitives for neural control. Our code executed sufficiently fast that we did not need to optimize with assembly language. These primitives mimic the object structure of NeuroSolutions so that an external program module can receive an object list from NeuroSolutions and create the identical feedforward system in the microcontroller. The following primitives were created:
These components can be connected together to create a wide variety of neural network architectures including a Wiener filter (TDNN, Synapse, and Linear Axon), MLP (combinations of Tanh Axons and Synapses), Time Lag Recurrent Networks such as TDNNs (TDNN or Gamma memory, Tanh Axons, and Synapses), and recurrent architectures (combinations of Tanh Axons, Synapses, and feedback). |
|
Product questions? Contact info@nd.com Website questions? Contact webmaster@nd.com |