Owning Palette: Solvers VIs
Requires: Control Design and Simulation Module
Calculates the symmetric positive definite, or stabilizing, matrix X that solves the following continuous algebraic Riccati equation (CARE).
A'.X + X.A – [X.B + N].inv(R).[X.B + N]' + Q = 0
|algorithm specifies the type of algorithm to use to solve the equation.
If you select Automatic, this VI first solves the equation using a Schur algorithm. Then, if the residual number is greater than 1, this VI solves the equation again using an eigenvalues algorithm. This VI returns the solution whose residual number is smallest.
|A specifies an n x n state matrix, where n is the number of states.|
|B specifies an n x m input matrix, where m is the number of inputs.|
|Q is an n x n matrix specifying the state weight matrix. Q must be symmetric and positive semi-definite.|
|R is an m x m matrix specifying the input weight matrix. R must be symmetric and positive definite. The default is an identity matrix of appropriate dimensions.|
|error in describes error conditions that occur before this node runs. This input provides standard error in functionality.|
|N is an n x m matrix specifying the state-input cross weight matrix. The value of N must be such that the matrix (Q–N.inv(R).N') is positive semi-definite. The default value of N is an empty matrix of appropriate dimensions.|
|Riccati Solution (X) returns the solution to the algebraic Riccati equation.|
|Gain (K) returns the gain matrix K such that K = inv(R).(B'X+N').|
|Closed-Loop Eigenvalues returns the eigenvalues of the matrix (A–BK). These eigenvalues are the closed-loop pole locations.|
|Residuals returns the absolute residual of the Riccati Solution (X). This VI substitutes the solution X into (A'.X + X.A–[X.B+N].inv(R).[X.B+N]' + Q) and applies the 1-norm, the largest absolute column sum of this equation.|
|error out contains error information. This output provides standard error out functionality.|