The ProgZos application serves as a tool for design of state-space controllers for SISO systems via gain scheduling (the method is also known as extended linearization). The design of parametric linear controller is performed via pole placement. There are two versions of the application - a GUI version and a text-based version.
Symbolic expressions for f(x), g(x), h(x) defining the state-space description of the nonlinear system to be controlled i.e. the system to which the application should design a suitable gain-scheduled controller. The convention for writing mathematical operations is the same as the one used by MATLAB's Symbolic Math Toolbox. State variables have to be denoted as x1, x2, ..., xN. Modifying of any of these fields causes deletion of previously calculated results.
Vector of roots of the characteristic polynomial of the closed-loop system. Based on these roots a parametric gain-scheduled linear controller to the system is designed via pole placement technique. Modification of this field causes deletion of previously calculated results.
This setting determines which process value (i.e. real measurable process variable) should be used as the scheduling variable; in case of input scheduling the desired value w is used, in case of output scheduling system output y is used. Mixed scheduling means that some weighted average of these two process variables is used i.e. m*w+(1-m)*y where 0 <= m <= 1. Alternatively, a fixed operating point can be specified instead of the scheduling variable, which corresponds to linear state-space controller without gain scheduling. Modification of this field causes deletion of previously calculated results.
Clicking this button starts the calculation of the controller i.e. the evaluation of system equilibrium points and the calculation of the control law u = u(w,x).
Clicking this button resets the whole form i.e. deletes all contents of the form.
Clicking this button opens the Simulink simulation Gain Scheduling for SISO systems that lets the user judge the performance of designed gain-scheduled state-space controller (for details see below). Parameters of the blocks used in the simulation are taken from the ProgZos application via symbolic variables F, G, H (state-space description), n (system order) and u (control law).
Clicking this button closes all windows opened by the application and exits the program.
Clicking the Help button opens a HTML browser and displays in it this file.
This field contains equations determining the equilibrium points of the system i.e. the points where f(x) + g(x)u = 0. Every equation expresses one element of the states vector x or control action u as a function of a single parameter (scheduling variable).
The result of gain-scheduling control design - control algorithm to be performed by a state-space controller. By clicking the pretty button next to this field, the control law equation can be printed in MATLAB Command Window in a more user-friendly fashion i.e. in a format that resembles type-set mathematics (for more information type help pretty in MATLAB Command Window).
Text-based version of the ProgZos application can be found in \TextRozhr subdirectory. It is run from MATLAB Command Window by typing progzos. From the operational point of view, this version allows user to do everything that is possible to do with GUI version, besides, unlike the GUI version, it is able to cope with non-numeric parameters (symbols other than x) in the expressions f(x), g(x), h(x). Moreover, it displays intermediate data of the controller design e.g. matrices A, B, C, D corresponding to the linearization of the nonlinear system in the neighbourhood of chosen (variable, non-fixed) operating point. Usage example:
Gain Scheduling control for SISO systems ---------------------------------------- . Nonlinear system: (1) x = f(x,u) y = h(x,u) . (2) x = f(x) + g(x) u y = h(x) Choose one of the options: 2 System order: 2 Specify parameters' identifiers (separated by spaces), if there are any: b1 b2 b3 S1 System matrix function: f(x) = [-b1*sqrt(x1); b2*sqrt(x1)-b3*sqrt(x2)] Input matrix function: g(x) = [1/S1; 0] Output matrix function: h(x) = x2 . System linearization: /|x = A /|x + B /|u /|y = C /|x + D /|u A = [ b1 ] [- 1/2 ----- 0 ] [ 1/2 ] [ x1 ] [ ] [ b2 b3 ] [ 1/2 ----- - 1/2 -----] [ 1/2 1/2] [ x1 x2 ] B = [ 1 ] [----] [ S1 ] [ ] [ 0 ] C = [0 1] D = 0 System equilibrium points: u = b1*(b3^2*x2/b2^2)^(1/2)*S1, x1 = b3^2*x2/b2^2 Desired poles of the closed-loop system: [-2 -2] Controller for the system linearization: /|u = f0 /|w - K /|x f0 = 1/2 S1 b3 x2 8 ----------- 2 b2 K = [ 2 1/2 [ S1 (b3 + b1 b2 - 8 b3 x2 ) [- 1/2 ----------------------------- , [ 1/2 [ x2 b3 2 1/2 ] b3 S1 (b3 - 8 b3 x2 + 16 x2)] 1/2 --------------------------------] 1/2 2 ] x2 b2 ] Gain Scheduling type: (1) no scheduling (fixed operating point) (2) input scheduling (w) (3) output scheduling (y) (4) mixed scheduling (m*w+(1-m)*y) Selected scheduling type: 2 Control action: u = 2 2 2 3 1/2 2 4 1/2 S1 (b1 w b3 b2 + b3 x1 b2 + b1 b2 x1 - 8 w b3 x1 b2 - b3 x2 3 1/2 2 2 2 / 1/2 2 + 8 b3 w x2 - 16 b3 w x2 + 16 b3 w ) / (w b3 b2 ) /
The ProgZos application lets user evaluate the performance of designed control loop (by means of simulation) immediately after the control law is calculated. The simulation scheme employed requires only very little user intervention before it is able to be run - parameters of the blocks Controlled system (except for initial values of state variables) and State-space GS controller are taken from the ProgZos application via F, G, H and u symbolic variables.
See demo Gain-scheduling control of a SISO system