Engineering departments are always in search of better tools for teaching in classrooms. Among these tools, computer software and process hardware have been recently considered a necessity in control courses. The more such tools resemble the commercial software used for industrial applications, the more valuable the course is. At the same time, some academic software packages have adopted features from industrial software applications to close the gap between theory and practice. Among the different commercial features that have been adopted in technical institutions to configure and implement a control system in an academic environment are:
-Interactive design of controller and process parameters; Mathematical expressions or static plots are not enough to visualize the effect of a parameter in the design of a closed loop system. Interactive class demos are very important to illustrate the effect of the classical tuning parameters for PID controllers, as well as the adjustment of penalty weights applied to the objective functions in optimal control algorithms. Moreover, instructors should be capable of adjusting a variable as the simulation executes to determine its effect and illustrate its most desirable value to the classroom audience.
-Software/Hardware configuration should be friendly; In many cases the configuration of software on hardware that is manufactured by a different vendor brings data conflicts and user interface restrictions that limits the visual teaching and frustrates students in their effort to write comprehensive reports. Having a smooth transition between design and implementation indicates a straight forward configuration of software executed in standard hardware.
-There should be easy transfer of information to and from process and controller hardware; signals should travel without protocol conversion from the physical system to the controller, and viceversa. These signals include measured disturbances, controlled variables and manipulated variables. The more the number of conversions or devices between the controller and the process, the more the risk of adding unnecessary delays and signal saturation in the closed loop system. Such delays and lags are detrimental to the controller closed loop performance.
-The simulation and control programming language should provide tools for easy debugging; a great amount of time is spent when trying to determine the source of programming errors. Students learning a new subject get frustrated when they are not capable of running simple cases because of not knowing the reason of the failed execution. Manuals tend to be more self-contained, and error messages should properly describe the source of the problem. Features like breaking points, high-light execution and variable probes are a must.
-Code portions should be easy to fragment and reuse for later projects; the instructor may require the project to be finished in several stages. Therefore, the programming language should be flexible enough to be fragmented such that code portions can be reused in future assignments. Also, students may divide the work in several tasks or coding routines that could be written in separate files. Such a divide and conquer strategy is common in computer science applications, and it is getting popular in control courses. Different control strategies are implemented by replacing blocks of code made by different developers with a common programming interface.
-The user should remain in the same software framework during the different design stages; storing and loading information used in different software packages may required more effort from the student to learn different user interfaces and programming languages. Some parameters may have similar names among software packages, but these parameters could be used in different ways according to user manual instructions. A well-known example, the tuning of parameters used for PID controllers, could be applied in different ways depending on the control algorithm placed in practice.
-Affordable price and scalable when the application requires it};the same piece of code should be reusable for different hardware platforms. Therefore, software used in an initial prototype with inexpensive hardware should be compatible with the one implemented in sophisticated equipment. The programming code use for proof of concept in a lab can be brought to the actual industrial application without major modifications. In this manner slow and inexpensive academic equipment can be replaced by a full demonstration and fast execution hardware ready for industrial use.
The success of a control package in academia depends on how well the features enumerated above are implemented in academic environments. Software packages that brings all these features to educational institutions provide user-friendly software that communicates to hardware. Therefore, the same piece of programming code could be used for data acquisition, system identification, model creation and validation, model-based control design, closed-loop simulation and controller deployment on different hardware sites. A friendly user interface and interactive functionality are also crucial in the success of an educational programming environment.
In this work we present the desired educational features of a programming framework, facilitating the learning process and the instructor communication to students either in the classroom or in academic labs. There are few packages that provide these features. We focus our attention in using LabVIEW as an example of on one educational programming language that has made control design and simulation classes more friendly and practical in recent years.