Wednesday, March 17, 2010

QUARC: Hard-Real-Time Performance with QNX Neutrino

QUARC supports a continually increasing number of targets. A "target" is a combination of operating system and processor for which QUARC can generate code from a Simulink diagram. The target is also where the QUARC-generated code runs. Targets constitute one of QUARC’s four pillars as described in one of the previous post. The best deterministic hard-real-time performance with QUARC is currently achieved when running the model on a QNX Neutrino target, taking advantage of the QNX Real-Time Operating System (RTOS) industry-proven technology.

The upcoming QUARC 2.1 now supports the latest QNX Neutrino, version 6.4.1. This updated support has actually been demonstrated by QNX Software Systems (QSS) themselves at the QNX booth at the Embedded World 2010 Exhibition & Conference show in Nuremberg, Germany, at the beginning of March 2010. The QNX demonstration used QUARC to run Quanser’s SRV02-based Rotary Self-Erecting Inverted Pendulum experiment equipped with a slipring in order to allow for unlimited and unhindered (due to the elimination of cables) base rotation.

The corresponding QUARC controller robustly runs in hard-real-time under QNX at a 1-kHz sample rate (i.e., 1-ms sampling interval) while communicating to a custom Flash/OpenGL-based user interface (GUI) using the Quanser Stream API (to get the updated sensor data in realtime). More information about our Stream API can be found in the QUARC: Communication Capabilities and Framework article. In addition, the Quanser Target API is also used to start/stop the QUARC control model from the QNX custom demo application. The hardware platform used for this demonstration consists of a x86 system configured by QSS to run with both Windows and QNX by means of using RTS Hypervisor. The QUARC-based controller used the RTOS system timer and has proven itself to be very stable during the 3-day Embedded World conference.

Additionally the Quanser 3D Viewer can be launched in Windows to offer a virtual 3D realistic representation of the actual system being run by QUARC.

This results in a 3D animation depicting the actual system, running in parallel, and mirroring in real-time the exact behavior of the real system. More information about this QUARC feature can be found in the QUARC: Virtual Plant Demo - SRV02 Self-Erecting Inverted Pendulum blog post.

Based on this success, Quanser is currently actively investigating supporting additional QUARC targets such as QNX PowerPC (PPC) systems as well as other possible embedded architectures.

No comments: