Usage Instructions
Extract all folders and VIs to a directory on
your host PC. Be sure to keep the file and folder paths intact to
avoid having to relocate VIs. The files in the FPGA VIs and Sub VIs
folders do not need to be changed. Target your real-time device
from the LabVIEW start-up screen and then open the example ECP 210
1DOF PID.vi. You will see the front panel shown below:
Take a few moments to familiarize yourself
with the various controls and indicators that are available on the
front panel.
When you are ready, power on the ECP
amplifier box and run the VI. Once the VI completes downloading to
the PXI, the closed-loop system is active (or open-loop in the case
of no controller). In this example, a PID controller is being used
to control the position of a 1DOF rigid-body system. The first mass
cart on the ECP Model 210 plant is loaded with four 0.5kg weights
and no springs or dashpots are attached.
You may apply a light external force to the
mass cart and feel the controller respond by attempting to
attenuate the disturbance. Also, notice that encoder position
measurements are displayed on the front panel. Pressing the Reset
Encoders control will set all the encoders back to 0.
If any of the error conditions are detected
(limit switches, drive motor overvoltage, etc), the VI will perform
a safety shutdown and you will need to re-run it.
If you wish to command a test signal to the
system, press the Command Trajectory control. The Sub VI front
panel shown below will pop open:
Note:
The Test Signals feature is only available when using LabVIEW Real-Time for ETS, because of the additional overhead required for the interactive user interface.
Take a moment to tab through the various
types of test signals that are available as well as what parameters
you may prescribe for each signal. Selecting the bidirectional
inputs option causes the commanded signal to alternate directions
when more than one repetition is specified. You may always press
the Preview Trajectory control to see a preview of the signal. When
you are satisfied with your selection, press the Execute Trajectory
control. The Sub VIs front panel will close and the signal will be
sent to the system as the reference trajectory that is to be
tracked.
When the trajectory is complete, plot data
will be calculated. This may take a few seconds depending on the
duration of your specified trajectory. When the data calculation
completes you may toggle on and off any trajectories that you wish
to view on the graph indicator such as position, velocity, and
acceleration. Note that the velocity and acceleration amplitudes
have been scaled by 0.1 and 0.01, respectively, on the
graph.
Try using the graph indicator’s zoom options
if you wish to zoom in on a portion of the graph.
Toggling the cursor on brings up the cursor
on the graph. You may lock the cursor to any of the 14 plot
histories and click and drag on it to obtain point-by-point numeric
data. The first number shown in the cursor legend is the time and
the second is the amplitude for the plot to which you are currently
locked.
If you wish to save the data, enter a file
name in the path control on the front panel and press the Save Raw
Data control. This will save the time, reference signal, control
effort, and four encoder position histories for the commanded
trajectory; velocity and acceleration data are not saved. The file
is saved as spreadsheet data on the PXI’s hard drive. You may use
an FTP client of your choice to access the PXI and copy the file to
your host machine.
When you are finished with your experiment,
press the Abort Control control on the front panel and the VI will
shut down the control loop.
Programming a Control Algorithm in the VI’s
Block Diagram:
The Real-Time control loop VI has been
written such that a variety of control algorithms can be
implemented with little change to the VI’s block diagram code. The
only change that needs to be made is the code that exists between
the reference signal (desired position) and the control effort
(analog output).
Open the block diagram for the VI (shown
below) to see how the PID controller for this example was
implemented:
The encoder measurement is subtracted from
the reference signal to generate the error signal, which is sent
through the PID algorithm. Finally, the control effort signal
calculated by the PID is sent to the analog output channel that
drives the plant motor.
It can be seen that programming other
controllers such as phase lead, LQR, etc could be easily
accomplished by deleting the current algorithm and coding a new one
in its place.
To perform experiments for the open-loop case
(useful when studying the system’s natural dynamics or when
performing system identification), you may simply delete the
feedback control algorithm and connect the reference trajectory
point directly to the analog output. Recall that the analog output
channels on the reconfigurable I/O board have a range of +10V to
-10V and a 16-bit DAC resolution. Therefore, in the open-loop case,
a command signal amplitude of -32768 to +32767 corresponds to -10V
to +10V sent to the drive motor.
Please refer to the following resources for
more detailed plant dynamics and hardware descriptions:
ECP Plant Manuals and National Instruments Resources:
- Manual for Model 210/210a Rectilinear Control System (Instructor’s Edition)
- Manual for Model 205/205a Torsional Control System (Instructor’s Edition)
- National Instruments PCI/PXI 7831R Hardware:
http://www.ni.com/pdf/manuals/370489b.pdf
- Additional NI hardware and LabVIEW programming resources can be found on
http://www.ni.com/
"This course, ASE 170P at the Univ. of Texas at Austin, introduces students to fundamental control systems theory with emphasis on design and implementation. These labs focus on technical […]"