tate-space models Several packages of tools for state-space design were created and reached maturity in the late 1970s. These packages were usually written in FORTRAN and made use of a question-and-answer interface. Some of the better packages made use of standard numerical libraries such as EISPACK and LINPACK, but many made use of home-grown algorithn One of the earliest standardization efforts was concerned with algorithms and there have been several attempts to create standard CACSD libraries. One of these, SLICOT [van den Boom et al., 1991], is still ongoing. But it has to be admitted that such efforts have had little success in the marketplace. The real break-through came with the development of the "matrix environments", which are discussed in the next section. Currently, although many research groups continue to develop specialist tools and packages in conventional languages such as FORTRAN, most CACSD tool-makers now use these matrix environments as a high-level language for creating 112.3 The State of the art in CacsD In this section we shall describe the matrix environments that have come to dominate cacsd. that is. the analysis, synthesis, and design of linear controllers for linear plants. We shall then move on to examine some of the requirements of CACSd which are less well served by the current generation of tools. Consolidation of CACSD As can be seen in Fig. 112. 1, the 1980s was a decade of consolidation during which CACSD technology matured Menu driven and Q&A dialogs were superseded by command languages. The matrix environment has become the de facto standard for CACSD. The reasons for this are due to the simplicity of the data structures and the interface model and the flexibility of the package. We illustrate these properties using MATLAB(MATrix LABoratory)[Moler, 1980], the original matrix environment. Originally designed as a teaching program for graduate students, giving interactive access to the linear algebra routines EISPACK and LINPACK, MATLAB was released into the public domain in around In MATLAB, matrices and matrix operations are entered into the computer in the straightforward fashion 112.2 This elegant treatment of linear algebra readily appealed to control scientists who realized that it was equal applicable to the solution of" modern control"problems based on linear state-space models(Fig. 112.3) >【vec,va1]=eig(a) 0.67170.9321-0.8981 val= URE 112.2 Entering and manipulating matrices in MATLAB. In this example, a matrix is defined and its eigenvectors e 2000 by CRC Press LLC
© 2000 by CRC Press LLC state-space models. Several packages of tools for state-space design were created and reached maturity in the late 1970s. These packages were usually written in FORTRAN and made use of a question-and-answer interface. Some of the better packages made use of standard numerical libraries such as EISPACK and LINPACK, but many made use of home-grown algorithms with sometimes dubious numerical properties. One of the earliest standardization efforts was concerned with algorithms and there have been several attempts to create standard CACSD libraries. One of these, SLICOT [van den Boom et al., 1991], is still ongoing. But it has to be admitted that such efforts have had little success in the marketplace. The real break-through came with the development of the “matrix environments”, which are discussed in the next section. Currently, although many research groups continue to develop specialist tools and packages in conventional languages such as FORTRAN, most CACSD tool-makers now use these matrix environments as a high-level language for creating “toolboxes” of tools. 112.3 The State of the Art in CACSD In this section we shall describe the matrix environments that have come to dominate CACSD, that is, the analysis, synthesis, and design of linear controllers for linear plants. We shall then move on to examine some of the requirements of CACSD which are less well served by the current generation of tools. Consolidation of CACSD As can be seen in Fig. 112.1, the 1980s was a decade of consolidation during which CACSD technology matured. Menu driven and Q&A dialogs were superseded by command languages. The matrix environment has become the de facto standard for CACSD. The reasons for this are due to the simplicity of the data structures and the interface model and the flexibility of the package. We illustrate these properties using MATLAB (MATrix LABoratory) [Moler, 1980], the original matrix environment. Originally designed as a teaching program for graduate students, giving interactive access to the linear algebra routines EISPACK and LINPACK, MATLAB was released into the public domain in around 1980. In MATLAB, matrices and matrix operations are entered into the computer in the straightforward fashion illustrated in Fig. 112.2. This elegant treatment of linear algebra readily appealed to control scientists who realized that it was equally applicable to the solution of “modern control” problems based on linear state-space models (Fig. 112.3). FIGURE 112.2 Entering and manipulating matrices in MATLAB. In this example, a matrix is defined and its eigenvectors and eigenvalues are determined
>>A=[0,1,0:0,0,1;2,3,4]; p⊥eg les 2,414 able all(poles 0) FIGURE 112.3 Using state-space matrices. a simple stability test showing the power of the matrix functions built-in to MATLAB. The Boolean functionall'returns the value TRUE (or 1)if all the elements of the argument are non-zero. The argument is itself a vector of Boolean values(that is, those values of the vector of the poles of the a matrix that are negative) By treating matrices as"first-class objects", MATLAB provides many such opportunities for avoiding loops and other control ructures required to do similar tasks in co langua s Returns the lability matrix [b, ab, a 2b s used as: gs ol(a, b) [ma, na] siz mb, nb]= error('Non-square A matrix) Seif ma error(' Unequal number of rows in A and B) gs =b: k =b: Igs, k] FIGURE 112.4 The extension of matlab by means of"macro"or M-files. Here is a routine for determining the control- lability of a state-space However, powerful though the basic"matrix calculator"capabilities of MAT- gs=control(A, B) LAB are, its real flexibility is due to its support of macro files. A macro file(M-file) in its simplest form, is just a collection of ordinary MATLAB commands which qs ar stored in a file. When called, such a"script "of commands is 0 it had been typed by the user. MATLABs real strength lies in its ability to use M files to create new functions. Such a function is defined in Fig. 112.4. Once defined in this way, the new function can be executed as if it was a part of the language (Fig.112) By creating a set of functions in this way, it is relatively easy to build up a FIGURE 112.5 Using a toolbox"of useful functions for a particular application domain. This is exactly user-defined function as an what happened shortly after the release original MATLAB. Entrepreneurs extension to MATLAB quickly realized that if they cleaned up the code, added control oriented data types and functions and some graphics capability, MATLAB could be resold as a proprietary CACSD package based mainly on the state-space methods in vogue in the U.S., several packages, such as MATRIXx and C, emerged and were a great success. e 2000 by CRC Press LLC
© 2000 by CRC Press LLC However, powerful though the basic “matrix calculator” capabilities of MATLAB are, its real flexibility is due to its support of macro files. A macro file (M-file), in its simplest form, is just a collection of ordinary MATLAB commands which ar stored in a file. When called, such a “script” of commands is executed just as if it had been typed by the user. MATLAB’s real strength lies in its ability to use M- files to create new functions. Such a function is defined in Fig. 112.4. Once defined in this way, the new function can be executed as if it was a part of the language (Fig. 112.5). By creating a set of functions in this way, it is relatively easy to build up a “toolbox” of useful functions for a particular application domain. This is exactly what happened shortly after the release of the original MATLAB. Entrepreneurs quickly realized that if they cleaned up the code, added control oriented data types and functions and some graphics capability, MATLAB could be resold as a proprietary CACSD package. So, based mainly on the state-space methods in vogue in the U.S., several packages, such as MATRIXx and CtrlC, emerged and were a great success. FIGURE 112.3 Using state-space matrices. A simple stability test showing the power of the matrix functions built-in to MATLAB. The Boolean function ‘all’ returns the value TRUE (or 1) if all the elements of the argument are non-zero. The argument is itself a vector of Boolean values (that is, those values of the vector of the poles of the A matrix that are negative). By treating matrices as “first-class objects”, MATLAB provides many such opportunities for avoiding loops and other control structures required to do similar tasks in conventional languages. FIGURE 112.4 The extension of MATLAB by means of “macro” or M-files. Here is a routine for determining the controllability of a state-space model. FIGURE 112.5 Using a user-defined function as an extension to MATLAB