1 # Created by Octave 3.6.2, Mon Jun 25 21:47:37 2012 UTC <root@t61>
13 # name: <cell-element>
17 Frequency-weighted coprime factorization controller reduction.
22 # name: <cell-element>
26 Frequency-weighted coprime factorization controller reduction.
30 # name: <cell-element>
37 # name: <cell-element>
41 -- Function File: SYS = BMWengine ()
42 -- Function File: SYS = BMWengine ("SCALED")
43 -- Function File: SYS = BMWengine ("UNSCALED")
44 Model of the BMW 4-cylinder engine at ETH Zurich's control
47 Drosselklappenstellung alpha_DK = 10.3 Grad
48 Saugrohrdruck p_s = 0.48 bar
49 Motordrehzahl n = 860 U/min
50 Lambda-Messwert lambda = 1.000
51 Relativer Wandfilminhalt nu = 1
54 U_1 Sollsignal Drosselklappenstellung [Grad]
55 U_2 Relative Einspritzmenge [-]
56 U_3 Zuendzeitpunkt [Grad KW]
57 M_L Lastdrehmoment [Nm]
60 X_1 Drosselklappenstellung [Grad]
61 X_2 Saugrohrdruck [bar]
62 X_3 Motordrehzahl [U/min]
63 X_4 Messwert Lamba-Sonde [-]
64 X_5 Relativer Wandfilminhalt [-]
67 Y_1 Motordrehzahl [U/min]
68 Y_2 Messwert Lambda-Sonde [-]
72 U_2N, X_4N, X_5N, Y_2N 0.05
80 # name: <cell-element>
84 Model of the BMW 4-cylinder engine at ETH Zurich's control laboratory.
88 # name: <cell-element>
95 # name: <cell-element>
99 -- Function File: SYS = Boeing707 ()
100 Creates a linearized state-space model of a Boeing 707-321 aircraft
101 at V=80 m/s (M = 0.26, GA0 = -3 deg, ALPHA0 = 4 deg, KAPPA = 50
104 System inputs: (1) thrust and (2) elevator angle.
106 System outputs: (1) airspeed and (2) pitch angle.
108 *Reference*: R. Brockhaus: `Flugregelung' (Flight Control),
114 # name: <cell-element>
118 Creates a linearized state-space model of a Boeing 707-321 aircraft at
123 # name: <cell-element>
130 # name: <cell-element>
134 Robust control of a mass-damper-spring system. Type `which MDSSystem'
135 to locate, `edit MDSSystem' to open and simply `MDSSystem' to run the
141 # name: <cell-element>
145 Robust control of a mass-damper-spring system.
149 # name: <cell-element>
156 # name: <cell-element>
160 Frequency-weighted controller reduction.
165 # name: <cell-element>
169 Frequency-weighted controller reduction.
173 # name: <cell-element>
180 # name: <cell-element>
184 -- Function File: SYS = WestlandLynx ()
185 Model of the Westland Lynx Helicopter about hover.
187 main rotor collective
190 tail rotor collective
193 pitch attitude theta [rad]
194 roll attitude phi [rad]
195 roll rate (body-axis) p [rad/s]
196 pitch rate (body-axis) q [rad/s]
198 forward velocity v_x [ft/s]
199 lateral velocity v_y [ft/s]
200 vertical velocity v_z [ft/s]
203 heave velocity H_dot [ft/s]
204 pitch attitude theta [rad]
205 roll attitude phi [rad]
206 heading rate psi_dot [rad/s]
211 Skogestad, S. and Postlethwaite I.
212 Multivariable Feedback Control: Analysis and Design
215 http://www.nt.ntnu.no/users/skoge/book/2nd_edition/matlab_m/matfiles.html
220 # name: <cell-element>
224 Model of the Westland Lynx Helicopter about hover.
228 # name: <cell-element>
235 # name: <cell-element>
239 -- Function File: P = augw (G, W1, W2, W3)
240 Extend plant for stacked S/KS/T problem. Subsequently, the robust
241 control problem can be solved by h2syn or hinfsyn.
248 LTI model of performance weight. Bounds the largest singular
249 values of sensitivity S. Model must be empty `[]', SISO or
253 LTI model to penalize large control inputs. Bounds the
254 largest singular values of KS. Model must be empty `[]',
255 SISO or of appropriate size.
258 LTI model of robustness and noise sensitivity weight. Bounds
259 the largest singular values of complementary sensitivity T.
260 Model must be empty `[]', SISO or of appropriate size.
262 All inputs must be proper/realizable. Scalars, vectors and
263 matrices are possible instead of LTI models.
267 State-space model of augmented plant.
271 | W1 | -W1*G | z1 = W1 r - W1 G u
273 P = | 0 | W3*G | z3 = W3 G u
275 | I | -G | e = r - G u
278 +---------------------------------------->| W1 |----->
281 | +---------------------->| W2 |----->
283 r + e | +--------+ u | +--------+ y +------+ z3
284 ----->(+)---+-->| K(s) |----+-->| G(s) |----+---->| W3 |----->
285 ^ - +--------+ +--------+ | +------+
287 +----------------------------------------+
290 | |-----> z1 (p1x1) z1 = W1 e
291 r (px1) ----->| P(s) |-----> z2 (p2x1) z2 = W2 u
292 | |-----> z3 (p3x1) z3 = W3 y
293 u (mx1) ----->| |-----> e (px1) e = r - y
307 Skogestad, S. and Postlethwaite I.
308 Multivariable Feedback Control: Analysis and Design
311 Chapter 3.8: General Control Problem Formulation
313 See also: h2syn, hinfsyn, mixsyn
319 # name: <cell-element>
323 Extend plant for stacked S/KS/T problem.
327 # name: <cell-element>
334 # name: <cell-element>
338 -- Function File: [MAG, PHA, W] = bode (SYS)
339 -- Function File: [MAG, PHA, W] = bode (SYS, W)
340 Bode diagram of frequency response. If no output arguments are
341 given, the response is printed on the screen.
345 LTI system. Must be a single-input and single-output (SISO)
349 Optional vector of frequency values. If W is not specified,
350 it is calculated by the zeros and poles of the system.
351 Alternatively, the cell `{wmin, wmax}' specifies a frequency
352 range, where WMIN and WMAX denote minimum and maximum
353 frequencies in rad/s.
357 Vector of magnitude. Has length of frequency vector W.
360 Vector of phase. Has length of frequency vector W.
363 Vector of frequency values used.
365 See also: nichols, nyquist, sigma
371 # name: <cell-element>
375 Bode diagram of frequency response.
379 # name: <cell-element>
386 # name: <cell-element>
390 -- Function File: [MAG, W] = bodemag (SYS)
391 -- Function File: [MAG, W] = bodemag (SYS, W)
392 Bode magnitude diagram of frequency response. If no output
393 arguments are given, the response is printed on the screen.
397 LTI system. Must be a single-input and single-output (SISO)
401 Optional vector of frequency values. If W is not specified,
402 it is calculated by the zeros and poles of the system.
403 Alternatively, the cell `{wmin, wmax}' specifies a frequency
404 range, where WMIN and WMAX denote minimum and maximum
405 frequencies in rad/s.
409 Vector of magnitude. Has length of frequency vector W.
412 Vector of frequency values used.
414 See also: bode, nichols, nyquist, sigma
420 # name: <cell-element>
424 Bode magnitude diagram of frequency response.
428 # name: <cell-element>
435 # name: <cell-element>
439 -- Function File: [GR, INFO] = bstmodred (G, ...)
440 -- Function File: [GR, INFO] = bstmodred (G, NR, ...)
441 -- Function File: [GR, INFO] = bstmodred (G, OPT, ...)
442 -- Function File: [GR, INFO] = bstmodred (G, NR, OPT, ...)
443 Model order reduction by Balanced Stochastic Truncation (BST)
444 method. The aim of model reduction is to find an LTI system GR of
445 order NR (nr < n) such that the input-output behaviour of GR
446 approximates the one from original system G.
448 BST is a relative error method which tries to minimize
455 LTI model to be reduced.
458 The desired order of the resulting reduced order system GR.
459 If not specified, NR is chosen automatically according to the
460 description of key 'ORDER'.
463 Optional pairs of keys and values. `"key1", value1, "key2",
467 Optional struct with keys as field names. Struct OPT can be
468 created directly or by command `options'. `opt.key1 =
469 value1, opt.key2 = value2'.
473 Reduced order state-space model.
476 Struct containing additional information.
478 The order of the original system G.
481 The order of the ALPHA-stable subsystem of the original
485 The Hankel singular values of the phase system
486 corresponding to the ALPHA-stable part of the original
487 system G. The NS Hankel singular values are ordered
491 The order of the ALPHA-unstable subsystem of both the
492 original system G and the reduced-order system GR.
495 The order of the obtained reduced order system GR.
497 *Option Keys and Values*
499 The desired order of the resulting reduced order system GR.
500 If not specified, NR is the sum of NU and the number of
501 Hankel singular values greater than `MAX(TOL1,NS*EPS)'; NR
502 can be further reduced to ensure that `HSV(NR-NU) >
506 Approximation method for the H-infinity norm. Valid values
507 corresponding to this key are:
509 Use the square-root Balance & Truncate method.
512 Use the balancing-free square-root Balance & Truncate
513 method. Default method.
516 Use the square-root Singular Perturbation Approximation
520 Use the balancing-free square-root Singular Perturbation
521 Approximation method.
524 Specifies the ALPHA-stability boundary for the eigenvalues of
525 the state dynamics matrix G.A. For a continuous-time system,
526 ALPHA <= 0 is the boundary value for the real parts of
527 eigenvalues, while for a discrete-time system, 0 <= ALPHA <=
528 1 represents the boundary value for the moduli of eigenvalues.
529 The ALPHA-stability domain does not include the boundary.
530 Default value is 0 for continuous-time systems and 1 for
531 discrete-time systems.
534 Use `[G, beta*I]' as new system G to combine absolute and
535 relative error methods. BETA > 0 specifies the
536 absolute/relative error weighting parameter. A large
537 positive value of BETA favours the minimization of the
538 absolute approximation error, while a small value of BETA is
539 appropriate for the minimization of the relative error. BETA
540 = 0 means a pure relative error method and can be used only
541 if rank(G.D) = rows(G.D) which means that the feedthrough
542 matrice must not be rank-deficient. Default value is 0.
545 If 'ORDER' is not specified, TOL1 contains the tolerance for
546 determining the order of reduced system. For model
547 reduction, the recommended value of TOL1 lies in the interval
548 [0.00001, 0.001]. TOL1 < 1. If TOL1 <= 0 on entry, the used
549 default value is TOL1 = NS*EPS, where NS is the number of
550 ALPHA-stable eigenvalues of A and EPS is the machine
551 precision. If 'ORDER' is specified, the value of TOL1 is
555 The tolerance for determining the order of a minimal
556 realization of the phase system (see METHOD) corresponding to
557 the ALPHA-stable part of the given system. The recommended
558 value is TOL2 = NS*EPS. TOL2 <= TOL1 < 1. This value is
559 used by default if 'TOL2' is not specified or if TOL2 <= 0 on
563 Boolean indicating whether equilibration (scaling) should be
564 performed on system G prior to order reduction. Default
565 value is true if `G.scaled == false' and false if `G.scaled
566 == true'. Note that for MIMO models, proper scaling of both
567 inputs and outputs is of utmost importance. The input and
568 output scaling can *not* be done by the equilibration option
569 or the `prescale' command because these functions perform
570 state transformations only. Furthermore, signals should not
571 be scaled simply to a certain range. For all inputs (or
572 outputs), a certain change should be of the same importance
575 BST is often suitable to perform model reduction in order to obtain
576 low order design models for controller synthesis.
578 Approximation Properties:
579 * Guaranteed stability of reduced models
581 * Approximates simultaneously gain and phase
583 * Preserves non-minimum phase zeros
585 * Guaranteed a priori error bound
588 Uses SLICOT AB09HD by courtesy of NICONET e.V.
589 (http://www.slicot.org)
594 # name: <cell-element>
598 Model order reduction by Balanced Stochastic Truncation (BST) method.
602 # name: <cell-element>
609 # name: <cell-element>
613 -- Function File: [KR, INFO] = btaconred (G, K, ...)
614 -- Function File: [KR, INFO] = btaconred (G, K, NCR, ...)
615 -- Function File: [KR, INFO] = btaconred (G, K, OPT, ...)
616 -- Function File: [KR, INFO] = btaconred (G, K, NCR, OPT, ...)
617 Controller reduction by frequency-weighted Balanced Truncation
618 Approximation (BTA). Given a plant G and a stabilizing controller
619 K, determine a reduced order controller KR such that the
620 closed-loop system is stable and closed-loop performance is
623 The algorithm tries to minimize the frequency-weighted error
626 where V and W denote output and input weightings.
630 LTI model of the plant. It has m inputs, p outputs and n
634 LTI model of the controller. It has p inputs, m outputs and
638 The desired order of the resulting reduced order controller
639 KR. If not specified, NCR is chosen automatically according
640 to the description of key 'ORDER'.
643 Optional pairs of keys and values. `"key1", value1, "key2",
647 Optional struct with keys as field names. Struct OPT can be
648 created directly or by command `options'. `opt.key1 =
649 value1, opt.key2 = value2'.
653 State-space model of reduced order controller.
656 Struct containing additional information.
658 The order of the obtained reduced order controller KR.
661 The order of the alpha-stable part of original
665 The Hankel singular values of the alpha-stable part of K.
666 The NCS Hankel singular values are ordered decreasingly.
668 *Option Keys and Values*
670 The desired order of the resulting reduced order controller
671 KR. If not specified, NCR is chosen automatically such that
672 states with Hankel singular values INFO.HSVC > TOL1 are
676 Order reduction approach to be used as follows:
678 Use the square-root Balance & Truncate method.
681 Use the balancing-free square-root Balance & Truncate
682 method. Default method.
685 Specifies the type of frequency-weighting as follows:
687 No weightings are used (V = I, W = I).
690 Use stability enforcing left (output) weighting
692 V = (I-G*K) *G , W = I
695 Use stability enforcing right (input) weighting
697 V = I , W = (I-G*K) *G
699 'BOTH', 'PERFORMANCE'
700 Use stability and performance enforcing weightings
702 V = (I-G*K) *G , W = (I-G*K)
706 Specifies whether K is a positive or negative feedback
709 Use positive feedback controller. Default value.
712 Use negative feedback controller.
715 Specifies the ALPHA-stability boundary for the eigenvalues of
716 the state dynamics matrix K.A. For a continuous-time
717 controller, ALPHA <= 0 is the boundary value for the real
718 parts of eigenvalues, while for a discrete-time controller, 0
719 <= ALPHA <= 1 represents the boundary value for the moduli of
720 eigenvalues. The ALPHA-stability domain does not include the
721 boundary. Default value is 0 for continuous-time controllers
722 and 1 for discrete-time controllers.
725 If 'ORDER' is not specified, TOL1 contains the tolerance for
726 determining the order of the reduced controller. For model
727 reduction, the recommended value of TOL1 is c*info.hsvc(1),
728 where c lies in the interval [0.00001, 0.001]. Default value
729 is info.ncs*eps*info.hsvc(1). If 'ORDER' is specified, the
730 value of TOL1 is ignored.
733 The tolerance for determining the order of a minimal
734 realization of the ALPHA-stable part of the given controller.
735 TOL2 <= TOL1. If not specified, ncs*eps*info.hsvc(1) is
739 Specifies the choice of frequency-weighted controllability
742 Choice corresponding to standard Enns' method [1].
746 Choice corresponding to the stability enhanced modified
750 Specifies the choice of frequency-weighted observability
753 Choice corresponding to standard Enns' method [1].
757 Choice corresponding to the stability enhanced modified
761 Boolean indicating whether equilibration (scaling) should be
762 performed on G and K prior to order reduction. Default value
763 is false if both `G.scaled == true, K.scaled == true' and
764 true otherwise. Note that for MIMO models, proper scaling of
765 both inputs and outputs is of utmost importance. The input
766 and output scaling can *not* be done by the equilibration
767 option or the `prescale' command because these functions
768 perform state transformations only. Furthermore, signals
769 should not be scaled simply to a certain range. For all
770 inputs (or outputs), a certain change should be of the same
771 importance for the model.
774 Uses SLICOT SB16AD by courtesy of NICONET e.V.
775 (http://www.slicot.org)
780 # name: <cell-element>
784 Controller reduction by frequency-weighted Balanced Truncation
789 # name: <cell-element>
796 # name: <cell-element>
800 -- Function File: [GR, INFO] = btamodred (G, ...)
801 -- Function File: [GR, INFO] = btamodred (G, NR, ...)
802 -- Function File: [GR, INFO] = btamodred (G, OPT, ...)
803 -- Function File: [GR, INFO] = btamodred (G, NR, OPT, ...)
804 Model order reduction by frequency weighted Balanced Truncation
805 Approximation (BTA) method. The aim of model reduction is to find
806 an LTI system GR of order NR (nr < n) such that the input-output
807 behaviour of GR approximates the one from original system G.
809 BTA is an absolute error method which tries to minimize
815 where V and W denote output and input weightings.
819 LTI model to be reduced.
822 The desired order of the resulting reduced order system GR.
823 If not specified, NR is chosen automatically according to the
824 description of key 'ORDER'.
827 Optional pairs of keys and values. `"key1", value1, "key2",
831 Optional struct with keys as field names. Struct OPT can be
832 created directly or by command `options'. `opt.key1 =
833 value1, opt.key2 = value2'.
837 Reduced order state-space model.
840 Struct containing additional information.
842 The order of the original system G.
845 The order of the ALPHA-stable subsystem of the original
849 The Hankel singular values of the ALPHA-stable part of
850 the original system G, ordered decreasingly.
853 The order of the ALPHA-unstable subsystem of both the
854 original system G and the reduced-order system GR.
857 The order of the obtained reduced order system GR.
859 *Option Keys and Values*
861 The desired order of the resulting reduced order system GR.
862 If not specified, NR is chosen automatically such that states
863 with Hankel singular values INFO.HSV > TOL1 are retained.
866 LTI model of the left/output frequency weighting V. Default
867 value is an identity matrix.
870 LTI model of the right/input frequency weighting W. Default
871 value is an identity matrix.
874 Approximation method for the L-infinity norm to be used as
877 Use the square-root Balance & Truncate method.
880 Use the balancing-free square-root Balance & Truncate
881 method. Default method.
884 Specifies the ALPHA-stability boundary for the eigenvalues of
885 the state dynamics matrix G.A. For a continuous-time system,
886 ALPHA <= 0 is the boundary value for the real parts of
887 eigenvalues, while for a discrete-time system, 0 <= ALPHA <=
888 1 represents the boundary value for the moduli of eigenvalues.
889 The ALPHA-stability domain does not include the boundary.
890 Default value is 0 for continuous-time systems and 1 for
891 discrete-time systems.
894 If 'ORDER' is not specified, TOL1 contains the tolerance for
895 determining the order of the reduced model. For model
896 reduction, the recommended value of TOL1 is c*info.hsv(1),
897 where c lies in the interval [0.00001, 0.001]. Default value
898 is info.ns*eps*info.hsv(1). If 'ORDER' is specified, the
899 value of TOL1 is ignored.
902 The tolerance for determining the order of a minimal
903 realization of the ALPHA-stable part of the given model.
904 TOL2 <= TOL1. If not specified, ns*eps*info.hsv(1) is chosen.
907 Specifies the choice of frequency-weighted controllability
910 Choice corresponding to a combination method [4] of the
911 approaches of Enns [1] and Lin-Chiu [2,3]. Default
915 Choice corresponding to the stability enhanced modified
916 combination method of [4].
919 Specifies the choice of frequency-weighted observability
922 Choice corresponding to a combination method [4] of the
923 approaches of Enns [1] and Lin-Chiu [2,3]. Default
927 Choice corresponding to the stability enhanced modified
928 combination method of [4].
931 Combination method parameter for defining the
932 frequency-weighted controllability Grammian. abs(alphac) <=
933 1. If alphac = 0, the choice of Grammian corresponds to the
934 method of Enns [1], while if alphac = 1, the choice of
935 Grammian corresponds to the method of Lin and Chiu [2,3].
939 Combination method parameter for defining the
940 frequency-weighted observability Grammian. abs(alphao) <= 1.
941 If alphao = 0, the choice of Grammian corresponds to the
942 method of Enns [1], while if alphao = 1, the choice of
943 Grammian corresponds to the method of Lin and Chiu [2,3].
947 Boolean indicating whether equilibration (scaling) should be
948 performed on system G prior to order reduction. This is done
949 by state transformations. Default value is true if `G.scaled
950 == false' and false if `G.scaled == true'. Note that for
951 MIMO models, proper scaling of both inputs and outputs is of
952 utmost importance. The input and output scaling can *not* be
953 done by the equilibration option or the `prescale' command
954 because these functions perform state transformations only.
955 Furthermore, signals should not be scaled simply to a certain
956 range. For all inputs (or outputs), a certain change should
957 be of the same importance for the model.
959 Approximation Properties:
960 * Guaranteed stability of reduced models
962 * Lower guaranteed error bound
964 * Guaranteed a priori error bound
967 [1] Enns, D. Model reduction with balanced realizations: An error
968 bound and a frequency weighted generalization. Proc. 23-th CDC,
969 Las Vegas, pp. 127-132, 1984.
971 [2] Lin, C.-A. and Chiu, T.-Y. Model reduction via
972 frequency-weighted balanced realization. Control Theory and
973 Advanced Technology, vol. 8, pp. 341-351, 1992.
975 [3] Sreeram, V., Anderson, B.D.O and Madievski, A.G. New results
976 on frequency weighted balanced reduction technique. Proc. ACC,
977 Seattle, Washington, pp. 4004-4009, 1995.
979 [4] Varga, A. and Anderson, B.D.O. Square-root balancing-free
980 methods for the frequency-weighted balancing related model
981 reduction. (report in preparation)
984 Uses SLICOT AB09ID by courtesy of NICONET e.V.
985 (http://www.slicot.org)
990 # name: <cell-element>
994 Model order reduction by frequency weighted Balanced Truncation
999 # name: <cell-element>
1006 # name: <cell-element>
1010 -- Function File: [X, L, G] = care (A, B, Q, R)
1011 -- Function File: [X, L, G] = care (A, B, Q, R, S)
1012 -- Function File: [X, L, G] = care (A, B, Q, R, [], E)
1013 -- Function File: [X, L, G] = care (A, B, Q, R, S, E)
1014 Solve continuous-time algebraic Riccati equation (ARE).
1018 Real matrix (n-by-n).
1021 Real matrix (n-by-m).
1024 Real matrix (n-by-n).
1027 Real matrix (m-by-m).
1030 Optional real matrix (n-by-m). If S is not specified, a zero
1034 Optional descriptor matrix (n-by-n). If E is not specified,
1035 an identity matrix is assumed.
1039 Unique stabilizing solution of the continuous-time Riccati
1043 Closed-loop poles (n-by-1).
1046 Corresponding gain matrix (m-by-n).
1050 A'X + XA - XB R B'X + Q = 0
1053 A'X + XA - (XB + S) R (B'X + S') + Q = 0
1064 A'XE + E'XA - E'XB R B'XE + Q = 0
1067 A'XE + E'XA - (E'XB + S) R (B'XE + S') + Q = 0
1075 L = eig (A - B*G, E)
1078 Uses SLICOT SB02OD and SG02AD by courtesy of NICONET e.V.
1079 (http://www.slicot.org)
1081 See also: dare, lqr, dlqr, kalman
1087 # name: <cell-element>
1091 Solve continuous-time algebraic Riccati equation (ARE).
1095 # name: <cell-element>
1102 # name: <cell-element>
1106 -- Function File: [KR, INFO] = cfconred (G, F, L, ...)
1107 -- Function File: [KR, INFO] = cfconred (G, F, L, NCR, ...)
1108 -- Function File: [KR, INFO] = cfconred (G, F, L, OPT, ...)
1109 -- Function File: [KR, INFO] = cfconred (G, F, L, NCR, OPT, ...)
1110 Reduction of state-feedback-observer based controller by coprime
1111 factorization (CF). Given a plant G, state feedback gain F and
1112 full observer gain L, determine a reduced order controller KR.
1116 LTI model of the open-loop plant (A,B,C,D). It has m inputs,
1117 p outputs and n states.
1120 Stabilizing state feedback matrix (m-by-n).
1123 Stabilizing observer gain matrix (n-by-p).
1126 The desired order of the resulting reduced order controller
1127 KR. If not specified, NCR is chosen automatically according
1128 to the description of key 'ORDER'.
1131 Optional pairs of keys and values. `"key1", value1, "key2",
1135 Optional struct with keys as field names. Struct OPT can be
1136 created directly or by command `options'. `opt.key1 =
1137 value1, opt.key2 = value2'.
1141 State-space model of reduced order controller.
1144 Struct containing additional information.
1146 The Hankel singular values of the extended system?!?.
1147 The N Hankel singular values are ordered decreasingly.
1150 The order of the obtained reduced order controller KR.
1152 *Option Keys and Values*
1154 The desired order of the resulting reduced order controller
1155 KR. If not specified, NCR is chosen automatically such that
1156 states with Hankel singular values INFO.HSV > TOL1 are
1160 Order reduction approach to be used as follows:
1162 Use the square-root Balance & Truncate method.
1165 Use the balancing-free square-root Balance & Truncate
1166 method. Default method.
1169 Use the square-root Singular Perturbation Approximation
1173 Use the balancing-free square-root Singular Perturbation
1174 Approximation method.
1177 Specifies whether left or right coprime factorization is to
1180 Use left coprime factorization. Default method.
1183 Use right coprime factorization.
1186 Specifies whether F and L are fed back positively or
1189 A+BK and A+LC are both Hurwitz matrices.
1192 A-BK and A-LC are both Hurwitz matrices. Default value.
1195 If 'ORDER' is not specified, TOL1 contains the tolerance for
1196 determining the order of the reduced system. For model
1197 reduction, the recommended value of TOL1 is c*info.hsv(1),
1198 where c lies in the interval [0.00001, 0.001]. Default value
1199 is n*eps*info.hsv(1). If 'ORDER' is specified, the value of
1203 The tolerance for determining the order of a minimal
1204 realization of the coprime factorization controller. TOL2 <=
1205 TOL1. If not specified, n*eps*info.hsv(1) is chosen.
1208 Boolean indicating whether equilibration (scaling) should be
1209 performed on system G prior to order reduction. Default
1210 value is true if `G.scaled == false' and false if `G.scaled
1211 == true'. Note that for MIMO models, proper scaling of both
1212 inputs and outputs is of utmost importance. The input and
1213 output scaling can *not* be done by the equilibration option
1214 or the `prescale' command because these functions perform
1215 state transformations only. Furthermore, signals should not
1216 be scaled simply to a certain range. For all inputs (or
1217 outputs), a certain change should be of the same importance
1221 Uses SLICOT SB16BD by courtesy of NICONET e.V.
1222 (http://www.slicot.org)
1227 # name: <cell-element>
1231 Reduction of state-feedback-observer based controller by coprime
1236 # name: <cell-element>
1243 # name: <cell-element>
1247 -- Function File: [P, Q] = covar (SYS, W)
1248 Return the steady-state covariance.
1255 Intensity of Gaussian white noise inputs which drive SYS.
1264 See also: lyap, dlyap
1270 # name: <cell-element>
1274 Return the steady-state covariance.
1278 # name: <cell-element>
1285 # name: <cell-element>
1289 -- Function File: CO = ctrb (SYS)
1290 -- Function File: CO = ctrb (A, B)
1291 Return controllability matrix.
1298 State transition matrix (n-by-n).
1301 Input matrix (n-by-m).
1305 Controllability matrix.
1309 Co = [ B AB A B ... A B ]
1314 # name: <cell-element>
1318 Return controllability matrix.
1322 # name: <cell-element>
1329 # name: <cell-element>
1333 -- Function File: [SYSBAR, T, K] = ctrbf (SYS)
1334 -- Function File: [SYSBAR, T, K] = ctrbf (SYS, TOL)
1335 -- Function File: [ABAR, BBAR, CBAR, T, K] = ctrbf (A, B, C)
1336 -- Function File: [ABAR, BBAR, CBAR, T, K] = ctrbf (A, B, C, TOL)
1337 If Co=ctrb(A,B) has rank r <= n = SIZE(A,1), then there is a
1338 similarity transformation Tc such that Tc = [t1 t2] where t1 is
1339 the controllable subspace and t2 is orthogonal to t1
1341 Abar = Tc \ A * Tc , Bbar = Tc \ B , Cbar = C * Tc
1343 and the transformed system has the form
1346 Abar = |----------|, Bbar = | ---|, Cbar = [Cc | Cnc].
1349 where (Ac,Bc) is controllable, and Cc(sI-Ac)^(-1)Bc =
1350 C(sI-A)^(-1)B. and the system is stabilizable if Anc has no
1351 eigenvalues in the right half plane. The last output K is a vector
1352 of length n containing the number of controllable states.
1357 # name: <cell-element>
1361 If Co=ctrb(A,B) has rank r <= n = SIZE(A,1), then there is a similarity
1366 # name: <cell-element>
1373 # name: <cell-element>
1377 -- Function File: [X, L, G] = dare (A, B, Q, R)
1378 -- Function File: [X, L, G] = dare (A, B, Q, R, S)
1379 -- Function File: [X, L, G] = dare (A, B, Q, R, [], E)
1380 -- Function File: [X, L, G] = dare (A, B, Q, R, S, E)
1381 Solve discrete-time algebraic Riccati equation (ARE).
1385 Real matrix (n-by-n).
1388 Real matrix (n-by-m).
1391 Real matrix (n-by-n).
1394 Real matrix (m-by-m).
1397 Optional real matrix (n-by-m). If S is not specified, a zero
1401 Optional descriptor matrix (n-by-n). If E is not specified,
1402 an identity matrix is assumed.
1406 Unique stabilizing solution of the discrete-time Riccati
1410 Closed-loop poles (n-by-1).
1413 Corresponding gain matrix (m-by-n).
1417 A'XA - X - A'XB (B'XB + R) B'XA + Q = 0
1420 A'XA - X - (A'XB + S) (B'XB + R) (B'XA + S') + Q = 0
1426 G = (B'XB + R) (B'XA + S')
1431 A'XA - E'XE - A'XB (B'XB + R) B'XA + Q = 0
1434 A'XA - E'XE - (A'XB + S) (B'XB + R) (B'XA + S') + Q = 0
1440 G = (B'XB + R) (B'XA + S')
1442 L = eig (A - B*G, E)
1445 Uses SLICOT SB02OD and SG02AD by courtesy of NICONET e.V.
1446 (http://www.slicot.org)
1448 See also: care, lqr, dlqr, kalman
1454 # name: <cell-element>
1458 Solve discrete-time algebraic Riccati equation (ARE).
1462 # name: <cell-element>
1469 # name: <cell-element>
1473 -- Function File: [M, P, Z, E] = dlqe (A, G, C, Q, R)
1474 -- Function File: [M, P, Z, E] = dlqe (A, G, C, Q, R, S)
1475 -- Function File: [M, P, Z, E] = dlqe (A, [], C, Q, R)
1476 -- Function File: [M, P, Z, E] = dlqe (A, [], C, Q, R, S)
1477 Kalman filter for discrete-time systems.
1479 x[k] = Ax[k] + Bu[k] + Gw[k] (State equation)
1480 y[k] = Cx[k] + Du[k] + v[k] (Measurement Equation)
1481 E(w) = 0, E(v) = 0, cov(w) = Q, cov(v) = R, cov(w,v) = S
1485 State transition matrix of discrete-time system (n-by-n).
1488 Process noise matrix of discrete-time system (n-by-g). If G
1489 is empty `[]', an identity matrix is assumed.
1492 Measurement matrix of discrete-time system (p-by-n).
1495 Process noise covariance matrix (g-by-g).
1498 Measurement noise covariance matrix (p-by-p).
1501 Optional cross term covariance matrix (g-by-p), s = cov(w,v).
1502 If S is empty `[]' or not specified, a zero matrix is assumed.
1506 Kalman filter gain matrix (n-by-p).
1509 Unique stabilizing solution of the discrete-time Riccati
1510 equation (n-by-n). Symmetric matrix.
1513 Error covariance (n-by-n), cov(x(k|k)-x)
1516 Closed-loop poles (n-by-1).
1519 x[k|k] = x[k|k-1] + M(y[k] - Cx[k|k-1] - Du[k])
1521 x[k+1|k] = Ax[k|k] + Bu[k] for S=0
1523 x[k+1|k] = Ax[k|k] + Bu[k] + G*S*(C*P*C' + R)^-1*(y[k] - C*x[k|k-1]) for non-zero S
1526 E = eig(A - A*M*C) for S=0
1528 E = eig(A - A*M*C - G*S*(C*P*C' + Rv)^-1*C) for non-zero S
1530 See also: dare, care, dlqr, lqr, lqe
1536 # name: <cell-element>
1540 Kalman filter for discrete-time systems.
1544 # name: <cell-element>
1551 # name: <cell-element>
1555 -- Function File: [G, X, L] = dlqr (SYS, Q, R)
1556 -- Function File: [G, X, L] = dlqr (SYS, Q, R, S)
1557 -- Function File: [G, X, L] = dlqr (A, B, Q, R)
1558 -- Function File: [G, X, L] = dlqr (A, B, Q, R, S)
1559 -- Function File: [G, X, L] = dlqr (A, B, Q, R, [], E)
1560 -- Function File: [G, X, L] = dlqr (A, B, Q, R, S, E)
1561 Linear-quadratic regulator for discrete-time systems.
1565 Continuous or discrete-time LTI model (p-by-m, n states).
1568 State transition matrix of discrete-time system (n-by-n).
1571 Input matrix of discrete-time system (n-by-m).
1574 State weighting matrix (n-by-n).
1577 Input weighting matrix (m-by-m).
1580 Optional cross term matrix (n-by-m). If S is not specified,
1581 a zero matrix is assumed.
1584 Optional descriptor matrix (n-by-n). If E is not specified,
1585 an identity matrix is assumed.
1589 State feedback matrix (m-by-n).
1592 Unique stabilizing solution of the discrete-time Riccati
1596 Closed-loop poles (n-by-1).
1599 x[k+1] = A x[k] + B u[k], x[0] = x0
1602 J(x0) = SUM (x' Q x + u' R u + 2 x' S u)
1607 See also: dare, care, lqr
1613 # name: <cell-element>
1617 Linear-quadratic regulator for discrete-time systems.
1621 # name: <cell-element>
1628 # name: <cell-element>
1632 -- Function File: X = dlyap (A, B)
1633 -- Function File: X = dlyap (A, B, C)
1634 -- Function File: X = dlyap (A, B, [], E)
1635 Solve discrete-time Lyapunov or Sylvester equations.
1638 AXA' - X + B = 0 (Lyapunov Equation)
1640 AXB' - X + C = 0 (Sylvester Equation)
1642 AXA' - EXE' + B = 0 (Generalized Lyapunov Equation)
1645 Uses SLICOT SB03MD, SB04QD and SG03AD by courtesy of NICONET e.V.
1646 (http://www.slicot.org)
1648 See also: dlyapchol, lyap, lyapchol
1654 # name: <cell-element>
1658 Solve discrete-time Lyapunov or Sylvester equations.
1662 # name: <cell-element>
1669 # name: <cell-element>
1673 -- Function File: U = dlyapchol (A, B)
1674 -- Function File: U = dlyapchol (A, B, E)
1675 Compute Cholesky factor of discrete-time Lyapunov equations.
1678 A U' U A' - U' U + B B' = 0 (Lyapunov Equation)
1680 A U' U A' - E U' U E' + B B' = 0 (Generalized Lyapunov Equation)
1683 Uses SLICOT SB03OD and SG03BD by courtesy of NICONET e.V.
1684 (http://www.slicot.org)
1686 See also: dlyap, lyap, lyapchol
1692 # name: <cell-element>
1696 Compute Cholesky factor of discrete-time Lyapunov equations.
1700 # name: <cell-element>
1707 # name: <cell-element>
1711 -- Function File: SYS = dss (SYS)
1712 -- Function File: SYS = dss (D)
1713 -- Function File: SYS = dss (A, B, C, D, E, ...)
1714 -- Function File: SYS = dss (A, B, C, D, E, TSAM, ...)
1715 Create or convert to descriptor state-space model.
1719 LTI model to be converted to state-space.
1722 State transition matrix (n-by-n).
1725 Input matrix (n-by-m).
1728 Measurement matrix (p-by-n).
1731 Feedthrough matrix (p-by-m).
1734 Descriptor matrix (n-by-n).
1737 Sampling time in seconds. If TSAM is not specified, a
1738 continuous-time model is assumed.
1741 Optional pairs of properties and values. Type `set (dss)'
1742 for more information.
1746 Descriptor state-space model.
1759 # name: <cell-element>
1763 Create or convert to descriptor state-space model.
1767 # name: <cell-element>
1774 # name: <cell-element>
1778 -- Function File: EST = estim (SYS, L)
1779 -- Function File: EST = estim (SYS, L, SENSORS, KNOWN)
1780 Return state estimator for a given estimator gain.
1787 State feedback matrix.
1790 Indices of measured output signals y from SYS. If omitted,
1791 all outputs are measured.
1794 Indices of known input signals u (deterministic) to SYS. All
1795 other inputs to SYS are assumed stochastic. If argument
1796 KNOWN is omitted, no inputs u are known.
1800 State-space model of estimator.
1802 See also: kalman, place
1808 # name: <cell-element>
1812 Return state estimator for a given estimator gain.
1816 # name: <cell-element>
1823 # name: <cell-element>
1827 -- Function File: SYS = filt (NUM, DEN, ...)
1828 -- Function File: SYS = filt (NUM, DEN, TSAM, ...)
1829 Create discrete-time transfer function model from data in DSP
1834 Numerator or cell of numerators. Each numerator must be a
1835 row vector containing the coefficients of the polynomial in
1836 ascending powers of z^-1. num{i,j} contains the numerator
1837 polynomial from input j to output i. In the SISO case, a
1838 single vector is accepted as well.
1841 Denominator or cell of denominators. Each denominator must
1842 be a row vector containing the coefficients of the polynomial
1843 in ascending powers of z^-1. den{i,j} contains the
1844 denominator polynomial from input j to output i. In the SISO
1845 case, a single vector is accepted as well.
1848 Sampling time in seconds. If TSAM is not specified, default
1849 value -1 (unspecified) is taken.
1852 Optional pairs of properties and values. Type `set (filt)'
1853 for more information.
1857 Discrete-time transfer function model.
1861 H(z^-1) = -------------------
1864 octave:1> H = filt ([0, 3], [1, 4, 2])
1866 Transfer function 'H' from input 'u1' to output ...
1869 y1: -------------------
1872 Sampling time: unspecified
1873 Discrete-time model.
1881 # name: <cell-element>
1885 Create discrete-time transfer function model from data in DSP format.
1889 # name: <cell-element>
1896 # name: <cell-element>
1900 -- Function File: [SYS, N] = fitfrd (DAT, N)
1901 -- Function File: [SYS, N] = fitfrd (DAT, N, FLAG)
1902 Fit frequency response data with a state-space system. If
1903 requested, the returned system is stable and minimum-phase.
1907 LTI model containing frequency response data of a SISO system.
1910 The desired order of the system to be fitted. `n <=
1914 The flag controls whether the returned system is stable and
1917 The system zeros and poles are not constrained. Default
1921 The system zeros and poles will have negative real parts
1922 in the continuous-time case, or moduli less than 1 in
1923 the discrete-time case.
1927 State-space model of order N, fitted to frequency response
1931 The order of the obtained system. The value of N could only
1932 be modified if inputs `n > 0' and `flag = 1'.
1935 Uses SLICOT SB10YD by courtesy of NICONET e.V.
1936 (http://www.slicot.org)
1941 # name: <cell-element>
1945 Fit frequency response data with a state-space system.
1949 # name: <cell-element>
1956 # name: <cell-element>
1960 -- Function File: [KR, INFO] = fwcfconred (G, F, L, ...)
1961 -- Function File: [KR, INFO] = fwcfconred (G, F, L, NCR, ...)
1962 -- Function File: [KR, INFO] = fwcfconred (G, F, L, OPT, ...)
1963 -- Function File: [KR, INFO] = fwcfconred (G, F, L, NCR, OPT, ...)
1964 Reduction of state-feedback-observer based controller by
1965 frequency-weighted coprime factorization (FW CF). Given a plant
1966 G, state feedback gain F and full observer gain L, determine a
1967 reduced order controller KR by using stability enforcing frequency
1972 LTI model of the open-loop plant (A,B,C,D). It has m inputs,
1973 p outputs and n states.
1976 Stabilizing state feedback matrix (m-by-n).
1979 Stabilizing observer gain matrix (n-by-p).
1982 The desired order of the resulting reduced order controller
1983 KR. If not specified, NCR is chosen automatically according
1984 to the description of key 'ORDER'.
1987 Optional pairs of keys and values. `"key1", value1, "key2",
1991 Optional struct with keys as field names. Struct OPT can be
1992 created directly or by command `options'. `opt.key1 =
1993 value1, opt.key2 = value2'.
1997 State-space model of reduced order controller.
2000 Struct containing additional information.
2002 The Hankel singular values of the extended system?!?.
2003 The N Hankel singular values are ordered decreasingly.
2006 The order of the obtained reduced order controller KR.
2008 *Option Keys and Values*
2010 The desired order of the resulting reduced order controller
2011 KR. If not specified, NCR is chosen automatically such that
2012 states with Hankel singular values INFO.HSV > TOL1 are
2016 Order reduction approach to be used as follows:
2018 Use the square-root Balance & Truncate method.
2021 Use the balancing-free square-root Balance & Truncate
2022 method. Default method.
2025 Specifies whether left or right coprime factorization is to
2028 Use left coprime factorization.
2031 Use right coprime factorization. Default method.
2034 Specifies whether F and L are fed back positively or
2037 A+BK and A+LC are both Hurwitz matrices.
2040 A-BK and A-LC are both Hurwitz matrices. Default value.
2043 If 'ORDER' is not specified, TOL1 contains the tolerance for
2044 determining the order of the reduced system. For model
2045 reduction, the recommended value of TOL1 is c*info.hsv(1),
2046 where c lies in the interval [0.00001, 0.001]. Default value
2047 is n*eps*info.hsv(1). If 'ORDER' is specified, the value of
2051 Uses SLICOT SB16CD by courtesy of NICONET e.V.
2052 (http://www.slicot.org)
2057 # name: <cell-element>
2061 Reduction of state-feedback-observer based controller by
2062 frequency-weighted copr
2066 # name: <cell-element>
2073 # name: <cell-element>
2077 -- Function File: [U, T] = gensig (SIGTYPE, TAU)
2078 -- Function File: [U, T] = gensig (SIGTYPE, TAU, TFINAL)
2079 -- Function File: [U, T] = gensig (SIGTYPE, TAU, TFINAL, TSAM)
2080 Generate periodic signal. Useful in combination with lsim.
2096 Duration of one period in seconds.
2099 Optional duration of the signal in seconds. Default duration
2103 Optional sampling time in seconds. Default spacing is tau/64.
2107 Vector of signal values.
2110 Time vector of the signal.
2118 # name: <cell-element>
2122 Generate periodic signal.
2126 # name: <cell-element>
2133 # name: <cell-element>
2137 -- Function File: W = gram (SYS, MODE)
2138 -- Function File: WC = gram (A, B)
2139 `gram (SYS, "c")' returns the controllability gramian of the
2140 (continuous- or discrete-time) system SYS. `gram (SYS, "o")'
2141 returns the observability gramian of the (continuous- or
2142 discrete-time) system SYS. `gram (A, B)' returns the
2143 controllability gramian WC of the continuous-time system dx/dt = a
2144 x + b u; i.e., WC satisfies a Wc + m Wc' + b b' = 0.
2150 # name: <cell-element>
2154 `gram (SYS, "c")' returns the controllability gramian of the
2159 # name: <cell-element>
2166 # name: <cell-element>
2170 -- Function File: [K, N, GAMMA, RCOND] = h2syn (P, NMEAS, NCON)
2171 H-2 control synthesis for LTI plant.
2175 Generalized plant. Must be a proper/realizable LTI model.
2178 Number of measured outputs v. The last NMEAS outputs of P
2179 are connected to the inputs of controller K. The remaining
2180 outputs z (indices 1 to p-nmeas) are used to calculate the
2184 Number of controlled inputs u. The last NCON inputs of P are
2185 connected to the outputs of controller K. The remaining
2186 inputs w (indices 1 to m-ncon) are excited by a harmonic test
2191 State-space model of the H-2 optimal controller.
2194 State-space model of the lower LFT of P and K.
2200 Vector RCOND contains estimates of the reciprocal condition
2201 numbers of the matrices which are to be inverted and
2202 estimates of the reciprocal condition numbers of the Riccati
2203 equations which have to be solved during the computation of
2204 the controller K. For details, see the description of the
2205 corresponding SLICOT algorithm.
2209 gamma = min||N(K)|| N = lft (P, K)
2219 +-----| K(s) |<----+
2223 w ----->| N(s) |-----> z
2227 Uses SLICOT SB10HD and SB10ED by courtesy of NICONET e.V.
2228 (http://www.slicot.org)
2230 See also: augw, lqr, dlqr, kalman
2236 # name: <cell-element>
2240 H-2 control synthesis for LTI plant.
2244 # name: <cell-element>
2251 # name: <cell-element>
2255 -- Function File: [K, N, GAMMA, RCOND] = hinfsyn (P, NMEAS, NCON)
2256 -- Function File: [K, N, GAMMA, RCOND] = hinfsyn (P, NMEAS, NCON, GMAX)
2257 H-infinity control synthesis for LTI plant.
2261 Generalized plant. Must be a proper/realizable LTI model.
2264 Number of measured outputs v. The last NMEAS outputs of P
2265 are connected to the inputs of controller K. The remaining
2266 outputs z (indices 1 to p-nmeas) are used to calculate the
2270 Number of controlled inputs u. The last NCON inputs of P are
2271 connected to the outputs of controller K. The remaining
2272 inputs w (indices 1 to m-ncon) are excited by a harmonic test
2276 The maximum value of the H-infinity norm of N. It is assumed
2277 that GMAX is sufficiently large so that the controller is
2282 State-space model of the H-infinity (sub-)optimal controller.
2285 State-space model of the lower LFT of P and K.
2288 L-infinity norm of N.
2291 Vector RCOND contains estimates of the reciprocal condition
2292 numbers of the matrices which are to be inverted and
2293 estimates of the reciprocal condition numbers of the Riccati
2294 equations which have to be solved during the computation of
2295 the controller K. For details, see the description of the
2296 corresponding SLICOT algorithm.
2300 gamma = min||N(K)|| N = lft (P, K)
2310 +-----| K(s) |<----+
2314 w ----->| N(s) |-----> z
2318 Uses SLICOT SB10FD and SB10DD by courtesy of NICONET e.V.
2319 (http://www.slicot.org)
2321 See also: augw, mixsyn
2327 # name: <cell-element>
2331 H-infinity control synthesis for LTI plant.
2335 # name: <cell-element>
2342 # name: <cell-element>
2346 -- Function File: [GR, INFO] = hnamodred (G, ...)
2347 -- Function File: [GR, INFO] = hnamodred (G, NR, ...)
2348 -- Function File: [GR, INFO] = hnamodred (G, OPT, ...)
2349 -- Function File: [GR, INFO] = hnamodred (G, NR, OPT, ...)
2350 Model order reduction by frequency weighted optimal Hankel-norm
2351 (HNA) method. The aim of model reduction is to find an LTI system
2352 GR of order NR (nr < n) such that the input-output behaviour of GR
2353 approximates the one from original system G.
2355 HNA is an absolute error method which tries to minimize
2359 ||V (G-Gr) W|| = min
2361 where V and W denote output and input weightings.
2365 LTI model to be reduced.
2368 The desired order of the resulting reduced order system GR.
2369 If not specified, NR is chosen automatically according to the
2370 description of key "ORDER".
2373 Optional pairs of keys and values. `"key1", value1, "key2",
2377 Optional struct with keys as field names. Struct OPT can be
2378 created directly or by command `options'. `opt.key1 =
2379 value1, opt.key2 = value2'.
2383 Reduced order state-space model.
2386 Struct containing additional information.
2388 The order of the original system G.
2391 The order of the ALPHA-stable subsystem of the original
2395 The Hankel singular values corresponding to the
2396 projection `op(V)*G1*op(W)', where G1 denotes the
2397 ALPHA-stable part of the original system G. The NS
2398 Hankel singular values are ordered decreasingly.
2401 The order of the ALPHA-unstable subsystem of both the
2402 original system G and the reduced-order system GR.
2405 The order of the obtained reduced order system GR.
2407 *Option Keys and Values*
2409 The desired order of the resulting reduced order system GR.
2410 If not specified, NR is the sum of INFO.NU and the number of
2411 Hankel singular values greater than `max(tol1,
2412 ns*eps*info.hsv(1)';
2415 Specifies the computational approach to be used. Valid
2416 values corresponding to this key are:
2418 Use the inverse free descriptor system approach.
2421 Use the inversion based standard approach.
2424 Switch automatically to the inverse free descriptor
2425 approach in case of badly conditioned feedthrough
2426 matrices in V or W. Default method.
2429 LTI model of the left/output frequency weighting. The
2430 weighting must be antistable.
2431 || V (G-Gr) . || = min
2435 LTI model of the right/input frequency weighting. The
2436 weighting must be antistable.
2437 || . (G-Gr) W || = min
2441 LTI model of the left/output frequency weighting. The
2442 weighting must have only antistable zeros.
2443 || inv(V) (G-Gr) . || = min
2446 'RIGHT-INV', 'INV-W'
2447 LTI model of the right/input frequency weighting. The
2448 weighting must have only antistable zeros.
2449 || . (G-Gr) inv(W) || = min
2452 'LEFT-CONJ', 'CONJ-V'
2453 LTI model of the left/output frequency weighting. The
2454 weighting must be stable.
2455 || V (G-Gr) . || = min
2458 'RIGHT-CONJ', 'CONJ-W'
2459 LTI model of the right/input frequency weighting. The
2460 weighting must be stable.
2461 || . (G-Gr) W || = min
2464 'LEFT-CONJ-INV', 'CONJ-INV-V'
2465 LTI model of the left/output frequency weighting. The
2466 weighting must be minimum-phase.
2467 || V (G-Gr) . || = min
2470 'RIGHT-CONJ-INV', 'CONJ-INV-W'
2471 LTI model of the right/input frequency weighting. The
2472 weighting must be minimum-phase.
2473 || . (G-Gr) W || = min
2477 Specifies the ALPHA-stability boundary for the eigenvalues of
2478 the state dynamics matrix G.A. For a continuous-time system,
2479 ALPHA <= 0 is the boundary value for the real parts of
2480 eigenvalues, while for a discrete-time system, 0 <= ALPHA <=
2481 1 represents the boundary value for the moduli of eigenvalues.
2482 The ALPHA-stability domain does not include the boundary.
2483 Default value is 0 for continuous-time systems and 1 for
2484 discrete-time systems.
2487 If 'ORDER' is not specified, TOL1 contains the tolerance for
2488 determining the order of the reduced model. For model
2489 reduction, the recommended value of TOL1 is c*info.hsv(1),
2490 where c lies in the interval [0.00001, 0.001]. TOL1 < 1. If
2491 'ORDER' is specified, the value of TOL1 is ignored.
2494 The tolerance for determining the order of a minimal
2495 realization of the ALPHA-stable part of the given model.
2496 TOL2 <= TOL1 < 1. If not specified, ns*eps*info.hsv(1) is
2500 Boolean indicating whether equilibration (scaling) should be
2501 performed on system G prior to order reduction. Default
2502 value is true if `G.scaled == false' and false if `G.scaled
2503 == true'. Note that for MIMO models, proper scaling of both
2504 inputs and outputs is of utmost importance. The input and
2505 output scaling can *not* be done by the equilibration option
2506 or the `prescale' command because these functions perform
2507 state transformations only. Furthermore, signals should not
2508 be scaled simply to a certain range. For all inputs (or
2509 outputs), a certain change should be of the same importance
2512 Approximation Properties:
2513 * Guaranteed stability of reduced models
2515 * Lower guaranteed error bound
2517 * Guaranteed a priori error bound
2520 Uses SLICOT AB09JD by courtesy of NICONET e.V.
2521 (http://www.slicot.org)
2526 # name: <cell-element>
2530 Model order reduction by frequency weighted optimal Hankel-norm (HNA)
2535 # name: <cell-element>
2542 # name: <cell-element>
2546 -- Function File: HSV = hsvd (SYS)
2547 -- Function File: HSV = hsvd (SYS, "OFFSET", OFFSET)
2548 -- Function File: HSV = hsvd (SYS, "ALPHA", ALPHA)
2549 Hankel singular values of the stable part of an LTI model. If no
2550 output arguments are given, the Hankel singular values are
2551 displayed in a plot.
2554 Uses SLICOT AB13AD by courtesy of NICONET e.V.
2555 (http://www.slicot.org)
2560 # name: <cell-element>
2564 Hankel singular values of the stable part of an LTI model.
2568 # name: <cell-element>
2575 # name: <cell-element>
2579 -- Function File: [Y, T, X] = impulse (SYS)
2580 -- Function File: [Y, T, X] = impulse (SYS, T)
2581 -- Function File: [Y, T, X] = impulse (SYS, TFINAL)
2582 -- Function File: [Y, T, X] = impulse (SYS, TFINAL, DT)
2583 Impulse response of LTI system. If no output arguments are given,
2584 the response is printed on the screen.
2591 Time vector. Should be evenly spaced. If not specified, it
2592 is calculated by the poles of the system to reflect
2593 adequately the response transients.
2596 Optional simulation horizon. If not specified, it is
2597 calculated by the poles of the system to reflect adequately
2598 the response transients.
2601 Optional sampling time. Be sure to choose it small enough to
2602 capture transient phenomena. If not specified, it is
2603 calculated by the poles of the system.
2607 Output response array. Has as many rows as time samples
2608 (length of t) and as many columns as outputs.
2614 State trajectories array. Has `length (t)' rows and as many
2617 See also: initial, lsim, step
2623 # name: <cell-element>
2627 Impulse response of LTI system.
2631 # name: <cell-element>
2638 # name: <cell-element>
2642 -- Function File: [Y, T, X] = initial (SYS, X0)
2643 -- Function File: [Y, T, X] = initial (SYS, X0, T)
2644 -- Function File: [Y, T, X] = initial (SYS, X0, TFINAL)
2645 -- Function File: [Y, T, X] = initial (SYS, X0, TFINAL, DT)
2646 Initial condition response of state-space model. If no output
2647 arguments are given, the response is printed on the screen.
2654 Vector of initial conditions for each state.
2657 Optional time vector. Should be evenly spaced. If not
2658 specified, it is calculated by the poles of the system to
2659 reflect adequately the response transients.
2662 Optional simulation horizon. If not specified, it is
2663 calculated by the poles of the system to reflect adequately
2664 the response transients.
2667 Optional sampling time. Be sure to choose it small enough to
2668 capture transient phenomena. If not specified, it is
2669 calculated by the poles of the system.
2673 Output response array. Has as many rows as time samples
2674 (length of t) and as many columns as outputs.
2680 State trajectories array. Has `length (t)' rows and as many
2685 Continuous Time: x = A x , y = C x , x(0) = x0
2687 Discrete Time: x[k+1] = A x[k] , y[k] = C x[k] , x[0] = x0
2689 See also: impulse, lsim, step
2695 # name: <cell-element>
2699 Initial condition response of state-space model.
2703 # name: <cell-element>
2710 # name: <cell-element>
2714 -- Function File: [BOOL, NCON] = isctrb (SYS)
2715 -- Function File: [BOOL, NCON] = isctrb (SYS, TOL)
2716 -- Function File: [BOOL, NCON] = isctrb (A, B)
2717 -- Function File: [BOOL, NCON] = isctrb (A, B, E)
2718 -- Function File: [BOOL, NCON] = isctrb (A, B, [], TOL)
2719 -- Function File: [BOOL, NCON] = isctrb (A, B, E, TOL)
2720 Logical check for system controllability. For numerical reasons,
2721 `isctrb (sys)' should be used instead of `rank (ctrb (sys))'.
2725 LTI model. Descriptor state-space models are possible.
2728 State transition matrix.
2734 Descriptor matrix. If E is empty `[]' or not specified, an
2735 identity matrix is assumed.
2738 Optional roundoff parameter. Default value is 0.
2742 System is not controllable.
2745 System is controllable.
2748 Number of controllable states.
2751 Uses SLICOT AB01OD and TG01HD by courtesy of NICONET e.V.
2752 (http://www.slicot.org)
2760 # name: <cell-element>
2764 Logical check for system controllability.
2768 # name: <cell-element>
2775 # name: <cell-element>
2779 -- Function File: BOOL = isdetectable (SYS)
2780 -- Function File: BOOL = isdetectable (SYS, TOL)
2781 -- Function File: BOOL = isdetectable (A, C)
2782 -- Function File: BOOL = isdetectable (A, C, E)
2783 -- Function File: BOOL = isdetectable (A, C, [], TOL)
2784 -- Function File: BOOL = isdetectable (A, C, E, TOL)
2785 -- Function File: BOOL = isdetectable (A, C, [], [], DFLG)
2786 -- Function File: BOOL = isdetectable (A, C, E, [], DFLG)
2787 -- Function File: BOOL = isdetectable (A, C, [], TOL, DFLG)
2788 -- Function File: BOOL = isdetectable (A, C, E, TOL, DFLG)
2789 Logical test for system detectability. All unstable modes must be
2790 observable or all unobservable states must be stable.
2797 State transition matrix.
2803 Descriptor matrix. If E is empty `[]' or not specified, an
2804 identity matrix is assumed.
2807 Optional tolerance for stability. Default value is 0.
2810 Matrices (A, C) are part of a continuous-time system.
2814 Matrices (A, C) are part of a discrete-time system.
2818 System is not detectable.
2821 System is detectable.
2824 Uses SLICOT AB01OD and TG01HD by courtesy of NICONET e.V.
2825 (http://www.slicot.org) See `isstabilizable' for description of
2826 computational method.
2828 See also: isstabilizable, isstable, isctrb, isobsv
2834 # name: <cell-element>
2838 Logical test for system detectability.
2842 # name: <cell-element>
2849 # name: <cell-element>
2853 -- Function File: [BOOL, NOBS] = isobsv (SYS)
2854 -- Function File: [BOOL, NOBS] = isobsv (SYS, TOL)
2855 -- Function File: [BOOL, NOBS] = isobsv (A, C)
2856 -- Function File: [BOOL, NOBS] = isobsv (A, C, E)
2857 -- Function File: [BOOL, NOBS] = isobsv (A, C, [], TOL)
2858 -- Function File: [BOOL, NOBS] = isobsv (A, C, E, TOL)
2859 Logical check for system observability. For numerical reasons,
2860 `isobsv (sys)' should be used instead of `rank (obsv (sys))'.
2864 LTI model. Descriptor state-space models are possible.
2867 State transition matrix.
2873 Descriptor matrix. If E is empty `[]' or not specified, an
2874 identity matrix is assumed.
2877 Optional roundoff parameter. Default value is 0.
2881 System is not observable.
2884 System is observable.
2887 Number of observable states.
2890 Uses SLICOT AB01OD and TG01HD by courtesy of NICONET e.V.
2891 (http://www.slicot.org)
2899 # name: <cell-element>
2903 Logical check for system observability.
2907 # name: <cell-element>
2914 # name: <cell-element>
2918 -- Function File: BOOL = issample (TS)
2919 -- Function File: BOOL = issample (TS, FLG)
2920 Return true if TS is a valid sampling time.
2924 Alleged sampling time to be tested.
2927 Accept real scalars TS > 0. Default Value.
2930 Accept real scalars TS >= 0.
2933 Accept real scalars TS > 0 and TS == -1.
2936 Accept real scalars TS >= 0 and TS == -1.
2939 Accept real scalars TS >= 0, TS == -1 and TS == -2.
2943 True if conditions are met and false otherwise.
2949 # name: <cell-element>
2953 Return true if TS is a valid sampling time.
2957 # name: <cell-element>
2964 # name: <cell-element>
2968 -- Function File: BOOL = isstabilizable (SYS)
2969 -- Function File: BOOL = isstabilizable (SYS, TOL)
2970 -- Function File: BOOL = isstabilizable (A, B)
2971 -- Function File: BOOL = isstabilizable (A, B, E)
2972 -- Function File: BOOL = isstabilizable (A, B, [], TOL)
2973 -- Function File: BOOL = isstabilizable (A, B, E, TOL)
2974 -- Function File: BOOL = isstabilizable (A, B, [], [], DFLG)
2975 -- Function File: BOOL = isstabilizable (A, B, E, [], DFLG)
2976 -- Function File: BOOL = isstabilizable (A, B, [], TOL, DFLG)
2977 -- Function File: BOOL = isstabilizable (A, B, E, TOL, DFLG)
2978 Logical check for system stabilizability. All unstable modes must
2979 be controllable or all uncontrollable states must be stable.
2986 State transition matrix.
2992 Descriptor matrix. If E is empty `[]' or not specified, an
2993 identity matrix is assumed.
2996 Optional tolerance for stability. Default value is 0.
2999 Matrices (A, B) are part of a continuous-time system.
3003 Matrices (A, B) are part of a discrete-time system.
3007 System is not stabilizable.
3010 System is stabilizable.
3013 Uses SLICOT AB01OD and TG01HD by courtesy of NICONET e.V.
3014 (http://www.slicot.org)
3015 * Calculate staircase form (SLICOT AB01OD)
3016 * Extract unobservable part of state transition matrix
3017 * Calculate eigenvalues of unobservable part
3019 real (ev) < -tol*(1 + abs (ev)) continuous-time
3020 abs (ev) < 1 - tol discrete-time
3022 See also: isdetectable, isstable, isctrb, isobsv
3028 # name: <cell-element>
3032 Logical check for system stabilizability.
3036 # name: <cell-element>
3043 # name: <cell-element>
3047 -- Function File: [EST, G, X] = kalman (SYS, Q, R)
3048 -- Function File: [EST, G, X] = kalman (SYS, Q, R, S)
3049 -- Function File: [EST, G, X] = kalman (SYS, Q, R, [], SENSORS, KNOWN)
3050 -- Function File: [EST, G, X] = kalman (SYS, Q, R, S, SENSORS, KNOWN)
3051 Design Kalman estimator for LTI systems.
3055 Nominal plant model.
3058 Covariance of white process noise.
3061 Covariance of white measurement noise.
3064 Optional cross term covariance. Default value is 0.
3067 Indices of measured output signals y from SYS. If omitted,
3068 all outputs are measured.
3071 Indices of known input signals u (deterministic) to SYS. All
3072 other inputs to SYS are assumed stochastic. If argument
3073 KNOWN is omitted, no inputs u are known.
3077 State-space model of the Kalman estimator.
3083 Solution of the Riccati equation.
3087 +---------------------------->| |-------> y
3088 | +-------+ + y | est | ^
3089 u ----+--->| |----->(+)------>| |-------> x
3090 | sys | ^ + +-------+
3094 Q = cov (w, w') R = cov (v, v') S = cov (w, v')
3096 See also: care, dare, estim, lqr
3102 # name: <cell-element>
3106 Design Kalman estimator for LTI systems.
3110 # name: <cell-element>
3117 # name: <cell-element>
3121 -- Function File: [L, P, E] = lqe (SYS, Q, R)
3122 -- Function File: [L, P, E] = lqe (SYS, Q, R, S)
3123 -- Function File: [L, P, E] = lqe (A, G, C, Q, R)
3124 -- Function File: [L, P, E] = lqe (A, G, C, Q, R, S)
3125 -- Function File: [L, P, E] = lqe (A, [], C, Q, R)
3126 -- Function File: [L, P, E] = lqe (A, [], C, Q, R, S)
3127 Kalman filter for continuous-time systems.
3130 x = Ax + Bu + Gw (State equation)
3131 y = Cx + Du + v (Measurement Equation)
3132 E(w) = 0, E(v) = 0, cov(w) = Q, cov(v) = R, cov(w,v) = S
3136 Continuous or discrete-time LTI model (p-by-m, n states).
3139 State transition matrix of continuous-time system (n-by-n).
3142 Process noise matrix of continuous-time system (n-by-g). If
3143 G is empty `[]', an identity matrix is assumed.
3146 Measurement matrix of continuous-time system (p-by-n).
3149 Process noise covariance matrix (g-by-g).
3152 Measurement noise covariance matrix (p-by-p).
3155 Optional cross term covariance matrix (g-by-p), s = cov(w,v).
3156 If S is empty `[]' or not specified, a zero matrix is assumed.
3160 Kalman filter gain matrix (n-by-p).
3163 Unique stabilizing solution of the continuous-time Riccati
3164 equation (n-by-n). Symmetric matrix. If SYS is a
3165 discrete-time model, the solution of the corresponding
3166 discrete-time Riccati equation is returned.
3169 Closed-loop poles (n-by-1).
3173 x = Ax + Bu + L(y - Cx -Du)
3177 See also: dare, care, dlqr, lqr, dlqe
3183 # name: <cell-element>
3187 Kalman filter for continuous-time systems.
3191 # name: <cell-element>
3198 # name: <cell-element>
3202 -- Function File: [G, X, L] = lqr (SYS, Q, R)
3203 -- Function File: [G, X, L] = lqr (SYS, Q, R, S)
3204 -- Function File: [G, X, L] = lqr (A, B, Q, R)
3205 -- Function File: [G, X, L] = lqr (A, B, Q, R, S)
3206 -- Function File: [G, X, L] = lqr (A, B, Q, R, [], E)
3207 -- Function File: [G, X, L] = lqr (A, B, Q, R, S, E)
3208 Linear-quadratic regulator.
3212 Continuous or discrete-time LTI model (p-by-m, n states).
3215 State transition matrix of continuous-time system (n-by-n).
3218 Input matrix of continuous-time system (n-by-m).
3221 State weighting matrix (n-by-n).
3224 Input weighting matrix (m-by-m).
3227 Optional cross term matrix (n-by-m). If S is not specified,
3228 a zero matrix is assumed.
3231 Optional descriptor matrix (n-by-n). If E is not specified,
3232 an identity matrix is assumed.
3236 State feedback matrix (m-by-n).
3239 Unique stabilizing solution of the continuous-time Riccati
3243 Closed-loop poles (n-by-1).
3247 x = A x + B u, x(0) = x0
3250 J(x0) = INT (x' Q x + u' R u + 2 x' S u) dt
3255 See also: care, dare, dlqr
3261 # name: <cell-element>
3265 Linear-quadratic regulator.
3269 # name: <cell-element>
3276 # name: <cell-element>
3280 -- Function File: [Y, T, X] = lsim (SYS, U)
3281 -- Function File: [Y, T, X] = lsim (SYS, U, T)
3282 -- Function File: [Y, T, X] = lsim (SYS, U, T, X0)
3283 -- Function File: [Y, T, X] = lsim (SYS, U, T, [], METHOD)
3284 -- Function File: [Y, T, X] = lsim (SYS, U, T, X0, METHOD)
3285 Simulate LTI model response to arbitrary inputs. If no output
3286 arguments are given, the system response is plotted on the screen.
3290 LTI model. System must be proper, i.e. it must not have more
3294 Vector or array of input signal. Needs `length(t)' rows and
3295 as many columns as there are inputs. If SYS is a
3296 single-input system, row vectors U of length `length(t)' are
3300 Time vector. Should be evenly spaced. If SYS is a
3301 continuous-time system and T is a real scalar, SYS is
3302 discretized with sampling time `tsam = t/(rows(u)-1)'. If
3303 SYS is a discrete-time system and T is not specified, vector
3304 T is assumed to be `0 : tsam : tsam*(rows(u)-1)'.
3307 Vector of initial conditions for each state. If not
3308 specified, a zero vector is assumed.
3311 Discretization method for continuous-time models. Default
3312 value is zoh (zero-order hold). All methods from `c2d' are
3317 Output response array. Has as many rows as time samples
3318 (length of t) and as many columns as outputs.
3321 Time row vector. It is always evenly spaced.
3324 State trajectories array. Has `length (t)' rows and as many
3327 See also: impulse, initial, step
3333 # name: <cell-element>
3337 Simulate LTI model response to arbitrary inputs.
3341 # name: <cell-element>
3348 # name: <cell-element>
3352 -- Function File: test ltimodels
3353 -- Function File: ltimodels
3354 -- Function File: ltimodels (SYSTYPE)
3355 Test suite and help for LTI models.
3360 # name: <cell-element>
3364 Test suite and help for LTI models.
3368 # name: <cell-element>
3375 # name: <cell-element>
3379 -- Function File: X = lyap (A, B)
3380 -- Function File: X = lyap (A, B, C)
3381 -- Function File: X = lyap (A, B, [], E)
3382 Solve continuous-time Lyapunov or Sylvester equations.
3385 AX + XA' + B = 0 (Lyapunov Equation)
3387 AX + XB + C = 0 (Sylvester Equation)
3389 AXE' + EXA' + B = 0 (Generalized Lyapunov Equation)
3392 Uses SLICOT SB03MD, SB04MD and SG03AD by courtesy of NICONET e.V.
3393 (http://www.slicot.org)
3395 See also: lyapchol, dlyap, dlyapchol
3401 # name: <cell-element>
3405 Solve continuous-time Lyapunov or Sylvester equations.
3409 # name: <cell-element>
3416 # name: <cell-element>
3420 -- Function File: U = lyapchol (A, B)
3421 -- Function File: U = lyapchol (A, B, E)
3422 Compute Cholesky factor of continuous-time Lyapunov equations.
3425 A U' U + U' U A' + B B' = 0 (Lyapunov Equation)
3427 A U' U E' + E U' U A' + B B' = 0 (Generalized Lyapunov Equation)
3430 Uses SLICOT SB03OD and SG03BD by courtesy of NICONET e.V.
3431 (http://www.slicot.org)
3433 See also: lyap, dlyap, dlyapchol
3439 # name: <cell-element>
3443 Compute Cholesky factor of continuous-time Lyapunov equations.
3447 # name: <cell-element>
3454 # name: <cell-element>
3458 -- Function File: [GAMMA, PHI, W_GAMMA, W_PHI] = margin (SYS)
3459 -- Function File: [GAMMA, PHI, W_GAMMA, W_PHI] = margin (SYS, TOL)
3460 Gain and phase margin of a system. If no output arguments are
3461 given, both gain and phase margin are plotted on a bode diagram.
3462 Otherwise, the margins and their corresponding frequencies are
3463 computed and returned.
3467 LTI model. Must be a single-input and single-output (SISO)
3471 Imaginary parts below TOL are assumed to be zero. If not
3472 specified, default value `sqrt (eps)' is taken.
3476 Gain margin (as gain, not dBs).
3479 Phase margin (in degrees).
3482 Frequency for the gain margin (in rad/s).
3485 Frequency for the phase margin (in rad/s).
3491 L(jw) = L(jw) BTW: L(jw) = L(-jw) = conj (L(jw))
3497 num(jw) den(-jw) = num(-jw) den(jw)
3499 imag (num(jw) den(-jw)) = 0
3500 imag (num(-jw) den(jw)) = 0
3504 |L(jw)| = |-------| = 1
3510 ------- * -------- = 1
3513 num(jw) num(-jw) - den(jw) den(-jw) = 0
3515 real (num(jw) num(-jw) - den(jw) den(-jw)) = 0
3520 L(z) = L(1/z) BTW: z = e --> w = -----
3526 num(z) den(1/z) - num(1/z) den(z) = 0
3530 |L(z)| = |------| = 1
3536 ------ * -------- = 1
3539 num(z) num(1/z) - den(z) den(1/z) = 0
3541 PS: How to get L(1/z)
3543 p(z) = a z + b z + c z + d z + e
3546 p(1/z) = a z + b z + c z + d z + e
3549 = z ( a + b z + c z + d z + e z )
3552 = ( e z + d z + c z + b z + a ) / ( z )
3560 # name: <cell-element>
3564 Gain and phase margin of a system.
3568 # name: <cell-element>
3575 # name: <cell-element>
3579 -- Function File: [K, N, GAMMA, RCOND] = mixsyn (G, W1, W2, W3, ...)
3580 Solve stacked S/KS/T H-infinity problem. Bound the largest
3581 singular values of S (for performance), K S (to penalize large
3582 inputs) and T (for robustness and to avoid sensitivity to noise).
3583 In other words, the inputs r are excited by a harmonic test signal.
3584 Then the algorithm tries to find a controller K which minimizes
3585 the H-infinity norm calculated from the outputs z.
3592 LTI model of performance weight. Bounds the largest singular
3593 values of sensitivity S. Model must be empty `[]', SISO or
3594 of appropriate size.
3597 LTI model to penalize large control inputs. Bounds the
3598 largest singular values of KS. Model must be empty `[]',
3599 SISO or of appropriate size.
3602 LTI model of robustness and noise sensitivity weight. Bounds
3603 the largest singular values of complementary sensitivity T.
3604 Model must be empty `[]', SISO or of appropriate size.
3607 Optional arguments of `hinfsyn'. Type `help hinfsyn' for
3610 All inputs must be proper/realizable. Scalars, vectors and
3611 matrices are possible instead of LTI models.
3615 State-space model of the H-infinity (sub-)optimal controller.
3618 State-space model of the lower LFT of P and K.
3621 L-infinity norm of N.
3624 Vector RCOND contains estimates of the reciprocal condition
3625 numbers of the matrices which are to be inverted and
3626 estimates of the reciprocal condition numbers of the Riccati
3627 equations which have to be solved during the computation of
3628 the controller K. For details, see the description of the
3629 corresponding SLICOT algorithm.
3634 gamma = min||N(K)|| N = | W2 K S | = lft (P, K)
3638 +---------------------------------------->| W1 |----->
3641 | +---------------------->| W2 |----->
3643 r + e | +--------+ u | +--------+ y +------+ z3
3644 ----->(+)---+-->| K(s) |----+-->| G(s) |----+---->| W3 |----->
3645 ^ - +--------+ +--------+ | +------+
3647 +----------------------------------------+
3650 | |-----> z1 (p1x1) z1 = W1 e
3651 r (px1) ----->| P(s) |-----> z2 (p2x1) z2 = W2 u
3652 | |-----> z3 (p3x1) z3 = W3 y
3653 u (mx1) ----->| |-----> e (px1) e = r - y
3663 +-----| K(s) |<----+
3667 r ----->| N(s) |-----> z
3670 Extended Plant: P = augw (G, W1, W2, W3)
3671 Controller: K = mixsyn (G, W1, W2, W3)
3672 Entire System: N = lft (P, K)
3673 Open Loop: L = G * K
3674 Closed Loop: T = feedback (L)
3677 Skogestad, S. and Postlethwaite I.
3678 Multivariable Feedback Control: Analysis and Design
3681 Chapter 3.8: General Control Problem Formulation
3684 Relies on commands `augw' and `hinfsyn', which use SLICOT SB10FD
3685 and SB10DD by courtesy of NICONET e.V. (http://www.slicot.org)
3687 See also: hinfsyn, augw
3693 # name: <cell-element>
3697 Solve stacked S/KS/T H-infinity problem.
3701 # name: <cell-element>
3708 # name: <cell-element>
3712 -- Function File: [K, N, GAMMA, INFO] = ncfsyn (G, W1, W2, FACTOR)
3713 Loop shaping H-infinity synthesis. Compute positive feedback
3714 controller using the McFarlane/Glover normalized coprime factor
3715 (NCF) loop shaping design procedure.
3722 LTI model of precompensator. Model must be SISO or of
3723 appropriate size. An identity matrix is taken if W1 is not
3724 specified or if an empty model `[]' is passed.
3727 LTI model of postcompensator. Model must be SISO or of
3728 appropriate size. An identity matrix is taken if W2 is not
3729 specified or if an empty model `[]' is passed.
3732 `factor = 1' implies that an optimal controller is required.
3733 `factor > 1' implies that a suboptimal controller is required,
3734 achieving a performance that is FACTOR times less than
3735 optimal. Default value is 1.
3739 State-space model of the H-infinity loop-shaping controller.
3742 State-space model of the closed loop depicted below.
3745 L-infinity norm of N. `gamma = norm (N, inf)'.
3748 Structure containing additional information.
3751 Nugap robustness. `emax = inv (gamma)'.
3754 Shaped plant. `Gs = W2 * G * W1'.
3757 Controller for shaped plant. `Ks = ncfsyn (Gs)'.
3760 Estimates of the reciprocal condition numbers of the Riccati
3761 equations and a few other things. For details, see the
3762 description of the corresponding SLICOT algorithm.
3764 *Block Diagram of N*
3768 w1 + | +--------+ | +--------+
3769 ----->(+)---+-->| Ks |----+--->(+)---->| Gs |----+
3770 ^ + +--------+ ^ +--------+ |
3773 +-------------------------------------------------+
3776 Uses SLICOT SB10ID, SB10KD and SB10ZD by courtesy of NICONET e.V.
3777 (http://www.slicot.org)
3782 # name: <cell-element>
3786 Loop shaping H-infinity synthesis.
3790 # name: <cell-element>
3797 # name: <cell-element>
3801 -- Function File: [MAG, PHA, W] = nichols (SYS)
3802 -- Function File: [MAG, PHA, W] = nichols (SYS, W)
3803 Nichols chart of frequency response. If no output arguments are
3804 given, the response is printed on the screen.
3808 LTI system. Must be a single-input and single-output (SISO)
3812 Optional vector of frequency values. If W is not specified,
3813 it is calculated by the zeros and poles of the system.
3814 Alternatively, the cell `{wmin, wmax}' specifies a frequency
3815 range, where WMIN and WMAX denote minimum and maximum
3816 frequencies in rad/s.
3820 Vector of magnitude. Has length of frequency vector W.
3823 Vector of phase. Has length of frequency vector W.
3826 Vector of frequency values used.
3828 See also: bode, nyquist, sigma
3834 # name: <cell-element>
3838 Nichols chart of frequency response.
3842 # name: <cell-element>
3849 # name: <cell-element>
3853 -- Function File: [RE, IM, W] = nyquist (SYS)
3854 -- Function File: [RE, IM, W] = nyquist (SYS, W)
3855 Nyquist diagram of frequency response. If no output arguments are
3856 given, the response is printed on the screen.
3860 LTI system. Must be a single-input and single-output (SISO)
3864 Optional vector of frequency values. If W is not specified,
3865 it is calculated by the zeros and poles of the system.
3866 Alternatively, the cell `{wmin, wmax}' specifies a frequency
3867 range, where WMIN and WMAX denote minimum and maximum
3868 frequencies in rad/s.
3872 Vector of real parts. Has length of frequency vector W.
3875 Vector of imaginary parts. Has length of frequency vector W.
3878 Vector of frequency values used.
3880 See also: bode, nichols, sigma
3886 # name: <cell-element>
3890 Nyquist diagram of frequency response.
3894 # name: <cell-element>
3901 # name: <cell-element>
3905 -- Function File: OB = obsv (SYS)
3906 -- Function File: OB = obsv (A, C)
3907 Return observability matrix.
3914 State transition matrix (n-by-n).
3917 Measurement matrix (p-by-n).
3921 Observability matrix.
3933 # name: <cell-element>
3937 Return observability matrix.
3941 # name: <cell-element>
3948 # name: <cell-element>
3952 -- Function File: [SYSBAR, T, K] = obsvf (SYS)
3953 -- Function File: [SYSBAR, T, K] = obsvf (SYS, TOL)
3954 -- Function File: [ABAR, BBAR, CBAR, T, K] = obsvf (A, B, C)
3955 -- Function File: [ABAR, BBAR, CBAR, T, K] = obsvf (A, B, C, TOL)
3956 If Ob=obsv(A,C) has rank r <= n = SIZE(A,1), then there is a
3957 similarity transformation Tc such that To = [t1;t2] where t1 is c
3958 and t2 is orthogonal to t1
3960 Abar = To \ A * To , Bbar = To \ B , Cbar = C * To
3962 and the transformed system has the form
3965 Abar = |----------|, Bbar = | --- |, Cbar = [Co | 0 ].
3968 where (Ao,Bo) is observable, and Co(sI-Ao)^(-1)Bo = C(sI-A)^(-1)B.
3969 And system is detectable if Ano has no eigenvalues in the right
3970 half plane. The last output K is a vector of length n containing
3971 the number of observable states.
3976 # name: <cell-element>
3980 If Ob=obsv(A,C) has rank r <= n = SIZE(A,1), then there is a similarity
3985 # name: <cell-element>
3992 # name: <cell-element>
3996 Numerical optimization of a PID controller using an objective function.
3997 The objective function is located in the file `optiPIDfun'. Type
3998 `which optiPID' to locate, `edit optiPID' to open and simply `optiPID'
3999 to run the example file.
4004 # name: <cell-element>
4008 Numerical optimization of a PID controller using an objective function.
4012 # name: <cell-element>
4019 # name: <cell-element>
4023 ===============================================================================
4024 optiPIDctrl Lukas Reichlin February 2012
4025 ===============================================================================
4026 Return PID controller with roll-off for given parameters Kp, Ti and Td.
4027 ===============================================================================
4031 # name: <cell-element>
4035 ===============================================================================
4039 # name: <cell-element>
4046 # name: <cell-element>
4050 ===============================================================================
4051 optiPIDfun Lukas Reichlin July 2009
4052 ===============================================================================
4054 Reference: Guzzella, L. (2007) Analysis and Synthesis of SISO Control Systems.
4055 vdf Hochschulverlag, Zurich
4056 ===============================================================================
4060 # name: <cell-element>
4064 ===============================================================================
4068 # name: <cell-element>
4075 # name: <cell-element>
4079 -- Function File: OPT = options ("KEY1", VALUE1, "KEY2", VALUE2, ...)
4080 Create options struct OPT from a number of key and value pairs.
4081 For use with order reduction commands.
4085 The name of the property.
4088 The value of the property.
4092 Struct with fields for each key.
4095 octave:1> opt = options ("method", "spa", "tol", 1e-6)
4098 scalar structure containing the fields:
4103 octave:2> save filename opt
4104 octave:3> # save the struct 'opt' to file 'filename' for later use
4105 octave:4> load filename
4106 octave:5> # load struct 'opt' from file 'filename'
4112 # name: <cell-element>
4116 Create options struct OPT from a number of key and value pairs.
4120 # name: <cell-element>
4127 # name: <cell-element>
4131 -- Function File: F = place (SYS, P)
4132 -- Function File: F = place (A, B, P)
4133 -- Function File: [F, INFO] = place (SYS, P, ALPHA)
4134 -- Function File: [F, INFO] = place (A, B, P, ALPHA)
4135 Pole assignment for a given matrix pair (A,B) such that `p = eig
4136 (A-B*F)'. If parameter ALPHA is specified, poles with real parts
4137 (continuous-time) or moduli (discrete-time) below ALPHA are left
4145 State transition matrix (n-by-n) of a continuous-time system.
4148 Input matrix (n-by-m) of a continuous-time system.
4151 Desired eigenvalues of the closed-loop system state-matrix
4152 A-B*F. `length (p) <= rows (A)'.
4155 Specifies the maximum admissible value, either for real parts
4156 or for moduli, of the eigenvalues of A which will not be
4157 modified by the eigenvalue assignment algorithm. `alpha >=
4158 0' for discrete-time systems.
4162 State feedback gain matrix.
4165 Structure containing additional information.
4168 The number of fixed poles, i.e. eigenvalues of A having real
4169 parts less than ALPHA, or moduli less than ALPHA. These
4170 eigenvalues are not modified by `place'.
4173 The number of assigned eigenvalues. `nap = n-nfp-nup'.
4176 The number of uncontrollable eigenvalues detected by the
4177 eigenvalue assignment algorithm.
4180 The orthogonal matrix Z reduces the closed-loop system state
4181 matrix `A + B*F' to upper real Schur form. Note the positive
4185 Place is also suitable to design estimator gains:
4186 L = place (A.', C.', p).'
4187 L = place (sys.', p).' # useful for discrete-time systems
4190 Uses SLICOT SB01BD by courtesy of NICONET e.V.
4191 (http://www.slicot.org)
4196 # name: <cell-element>
4200 Pole assignment for a given matrix pair (A,B) such that `p = eig
4205 # name: <cell-element>
4212 # name: <cell-element>
4216 -- Function File: pzmap (SYS)
4217 -- Function File: [P, Z] = pzmap (SYS)
4218 Plot the poles and zeros of an LTI system in the complex plane.
4219 If no output arguments are given, the result is plotted on the
4220 screen. Otherwise, the poles and zeros are computed and returned.
4231 Transmission zeros of SYS.
4236 # name: <cell-element>
4240 Plot the poles and zeros of an LTI system in the complex plane.
4244 # name: <cell-element>
4251 # name: <cell-element>
4255 -- Function File: rlocus (SYS)
4256 -- Function File: [RLDATA, K] = rlocus (SYS, INCREMENT, MIN_K, MAX_K)
4257 Display root locus plot of the specified SISO system.
4261 LTI model. Must be a single-input and single-output (SISO)
4271 The increment used in computing gain values.
4275 Data points plotted: in column 1 real values, in column 2 the
4279 Gains for real axis break points.
4282 u + +---+ +------+ y
4283 ------>(+)----->| k |----->| SISO |-------+------->
4284 ^ - +---+ +------+ |
4286 +---------------------------------+
4291 # name: <cell-element>
4295 Display root locus plot of the specified SISO system.
4299 # name: <cell-element>
4306 # name: <cell-element>
4310 -- Function File: [SV, W] = sigma (SYS)
4311 -- Function File: [SV, W] = sigma (SYS, W)
4312 -- Function File: [SV, W] = sigma (SYS, [], PTYPE)
4313 -- Function File: [SV, W] = sigma (SYS, W, PTYPE)
4314 Singular values of frequency response. If no output arguments are
4315 given, the singular value plot is printed on the screen;
4319 LTI system. Multiple inputs and/or outputs (MIMO systems)
4320 make practical sense.
4323 Optional vector of frequency values. If W is not specified,
4324 it is calculated by the zeros and poles of the system.
4325 Alternatively, the cell `{wmin, wmax}' specifies a frequency
4326 range, where WMIN and WMAX denote minimum and maximum
4327 frequencies in rad/s.
4330 Singular values of the frequency response H of system SYS.
4334 Singular values of the frequency response `inv(H)'; i.e.
4338 Singular values of the frequency response `I + H'; i.e.
4339 inversed sensitivity (or return difference) if `H = P * C'.
4342 Singular values of the frequency response `I + inv(H)'; i.e.
4343 inversed complementary sensitivity if `H = P * C'.
4347 Array of singular values. For a system with m inputs and p
4348 outputs, the array sv has `min (m, p)' rows and as many
4349 columns as frequency points `length (w)'. The singular
4350 values at the frequency `w(k)' are given by `sv(:,k)'.
4353 Vector of frequency values used.
4355 See also: bodemag, svd
4361 # name: <cell-element>
4365 Singular values of frequency response.
4369 # name: <cell-element>
4376 # name: <cell-element>
4380 -- Function File: [KR, INFO] = spaconred (G, K, ...)
4381 -- Function File: [KR, INFO] = spaconred (G, K, NCR, ...)
4382 -- Function File: [KR, INFO] = spaconred (G, K, OPT, ...)
4383 -- Function File: [KR, INFO] = spaconred (G, K, NCR, OPT, ...)
4384 Controller reduction by frequency-weighted Singular Perturbation
4385 Approximation (SPA). Given a plant G and a stabilizing controller
4386 K, determine a reduced order controller KR such that the
4387 closed-loop system is stable and closed-loop performance is
4390 The algorithm tries to minimize the frequency-weighted error
4391 ||V (K-Kr) W|| = min
4393 where V and W denote output and input weightings.
4397 LTI model of the plant. It has m inputs, p outputs and n
4401 LTI model of the controller. It has p inputs, m outputs and
4405 The desired order of the resulting reduced order controller
4406 KR. If not specified, NCR is chosen automatically according
4407 to the description of key 'ORDER'.
4410 Optional pairs of keys and values. `"key1", value1, "key2",
4414 Optional struct with keys as field names. Struct OPT can be
4415 created directly or by command `options'. `opt.key1 =
4416 value1, opt.key2 = value2'.
4420 State-space model of reduced order controller.
4423 Struct containing additional information.
4425 The order of the obtained reduced order controller KR.
4428 The order of the alpha-stable part of original
4432 The Hankel singular values of the alpha-stable part of K.
4433 The NCS Hankel singular values are ordered decreasingly.
4435 *Option Keys and Values*
4437 The desired order of the resulting reduced order controller
4438 KR. If not specified, NCR is chosen automatically such that
4439 states with Hankel singular values INFO.HSVC > TOL1 are
4443 Order reduction approach to be used as follows:
4445 Use the square-root Singular Perturbation Approximation
4449 Use the balancing-free square-root Singular Perturbation
4450 Approximation method. Default method.
4453 Specifies the type of frequency-weighting as follows:
4455 No weightings are used (V = I, W = I).
4458 Use stability enforcing left (output) weighting
4460 V = (I-G*K) *G , W = I
4463 Use stability enforcing right (input) weighting
4465 V = I , W = (I-G*K) *G
4467 'BOTH', 'PERFORMANCE'
4468 Use stability and performance enforcing weightings
4470 V = (I-G*K) *G , W = (I-G*K)
4474 Specifies whether K is a positive or negative feedback
4477 Use positive feedback controller. Default value.
4480 Use negative feedback controller.
4483 Specifies the ALPHA-stability boundary for the eigenvalues of
4484 the state dynamics matrix K.A. For a continuous-time
4485 controller, ALPHA <= 0 is the boundary value for the real
4486 parts of eigenvalues, while for a discrete-time controller, 0
4487 <= ALPHA <= 1 represents the boundary value for the moduli of
4488 eigenvalues. The ALPHA-stability domain does not include the
4489 boundary. Default value is 0 for continuous-time controllers
4490 and 1 for discrete-time controllers.
4493 If 'ORDER' is not specified, TOL1 contains the tolerance for
4494 determining the order of the reduced controller. For model
4495 reduction, the recommended value of TOL1 is c*info.hsvc(1),
4496 where c lies in the interval [0.00001, 0.001]. Default value
4497 is info.ncs*eps*info.hsvc(1). If 'ORDER' is specified, the
4498 value of TOL1 is ignored.
4501 The tolerance for determining the order of a minimal
4502 realization of the ALPHA-stable part of the given controller.
4503 TOL2 <= TOL1. If not specified, ncs*eps*info.hsvc(1) is
4507 Specifies the choice of frequency-weighted controllability
4508 Grammian as follows:
4510 Choice corresponding to standard Enns' method [1].
4514 Choice corresponding to the stability enhanced modified
4515 Enns' method of [2].
4518 Specifies the choice of frequency-weighted observability
4519 Grammian as follows:
4521 Choice corresponding to standard Enns' method [1].
4525 Choice corresponding to the stability enhanced modified
4526 Enns' method of [2].
4529 Boolean indicating whether equilibration (scaling) should be
4530 performed on G and K prior to order reduction. Default value
4531 is false if both `G.scaled == true, K.scaled == true' and
4532 true otherwise. Note that for MIMO models, proper scaling of
4533 both inputs and outputs is of utmost importance. The input
4534 and output scaling can *not* be done by the equilibration
4535 option or the `prescale' command because these functions
4536 perform state transformations only. Furthermore, signals
4537 should not be scaled simply to a certain range. For all
4538 inputs (or outputs), a certain change should be of the same
4539 importance for the model.
4542 Uses SLICOT SB16AD by courtesy of NICONET e.V.
4543 (http://www.slicot.org)
4548 # name: <cell-element>
4552 Controller reduction by frequency-weighted Singular Perturbation
4557 # name: <cell-element>
4564 # name: <cell-element>
4568 -- Function File: [GR, INFO] = spamodred (G, ...)
4569 -- Function File: [GR, INFO] = spamodred (G, NR, ...)
4570 -- Function File: [GR, INFO] = spamodred (G, OPT, ...)
4571 -- Function File: [GR, INFO] = spamodred (G, NR, OPT, ...)
4572 Model order reduction by frequency weighted Singular Perturbation
4573 Approximation (SPA). The aim of model reduction is to find an LTI
4574 system GR of order NR (nr < n) such that the input-output
4575 behaviour of GR approximates the one from original system G.
4577 SPA is an absolute error method which tries to minimize
4581 ||V (G-Gr) W|| = min
4583 where V and W denote output and input weightings.
4587 LTI model to be reduced.
4590 The desired order of the resulting reduced order system GR.
4591 If not specified, NR is chosen automatically according to the
4592 description of key 'ORDER'.
4595 Optional pairs of keys and values. `"key1", value1, "key2",
4599 Optional struct with keys as field names. Struct OPT can be
4600 created directly or by command `options'. `opt.key1 =
4601 value1, opt.key2 = value2'.
4605 Reduced order state-space model.
4608 Struct containing additional information.
4610 The order of the original system G.
4613 The order of the ALPHA-stable subsystem of the original
4617 The Hankel singular values of the ALPHA-stable part of
4618 the original system G, ordered decreasingly.
4621 The order of the ALPHA-unstable subsystem of both the
4622 original system G and the reduced-order system GR.
4625 The order of the obtained reduced order system GR.
4627 *Option Keys and Values*
4629 The desired order of the resulting reduced order system GR.
4630 If not specified, NR is chosen automatically such that states
4631 with Hankel singular values INFO.HSV > TOL1 are retained.
4634 LTI model of the left/output frequency weighting V. Default
4635 value is an identity matrix.
4638 LTI model of the right/input frequency weighting W. Default
4639 value is an identity matrix.
4642 Approximation method for the L-infinity norm to be used as
4645 Use the square-root Singular Perturbation Approximation
4649 Use the balancing-free square-root Singular Perturbation
4650 Approximation method. Default method.
4653 Specifies the ALPHA-stability boundary for the eigenvalues of
4654 the state dynamics matrix G.A. For a continuous-time system,
4655 ALPHA <= 0 is the boundary value for the real parts of
4656 eigenvalues, while for a discrete-time system, 0 <= ALPHA <=
4657 1 represents the boundary value for the moduli of eigenvalues.
4658 The ALPHA-stability domain does not include the boundary.
4659 Default value is 0 for continuous-time systems and 1 for
4660 discrete-time systems.
4663 If 'ORDER' is not specified, TOL1 contains the tolerance for
4664 determining the order of the reduced model. For model
4665 reduction, the recommended value of TOL1 is c*info.hsv(1),
4666 where c lies in the interval [0.00001, 0.001]. Default value
4667 is info.ns*eps*info.hsv(1). If 'ORDER' is specified, the
4668 value of TOL1 is ignored.
4671 The tolerance for determining the order of a minimal
4672 realization of the ALPHA-stable part of the given model.
4673 TOL2 <= TOL1. If not specified, ns*eps*info.hsv(1) is chosen.
4676 Specifies the choice of frequency-weighted controllability
4677 Grammian as follows:
4679 Choice corresponding to a combination method [4] of the
4680 approaches of Enns [1] and Lin-Chiu [2,3]. Default
4684 Choice corresponding to the stability enhanced modified
4685 combination method of [4].
4688 Specifies the choice of frequency-weighted observability
4689 Grammian as follows:
4691 Choice corresponding to a combination method [4] of the
4692 approaches of Enns [1] and Lin-Chiu [2,3]. Default
4696 Choice corresponding to the stability enhanced modified
4697 combination method of [4].
4700 Combination method parameter for defining the
4701 frequency-weighted controllability Grammian. abs(alphac) <=
4702 1. If alphac = 0, the choice of Grammian corresponds to the
4703 method of Enns [1], while if alphac = 1, the choice of
4704 Grammian corresponds to the method of Lin and Chiu [2,3].
4708 Combination method parameter for defining the
4709 frequency-weighted observability Grammian. abs(alphao) <= 1.
4710 If alphao = 0, the choice of Grammian corresponds to the
4711 method of Enns [1], while if alphao = 1, the choice of
4712 Grammian corresponds to the method of Lin and Chiu [2,3].
4716 Boolean indicating whether equilibration (scaling) should be
4717 performed on system G prior to order reduction. Default
4718 value is true if `G.scaled == false' and false if `G.scaled
4719 == true'. Note that for MIMO models, proper scaling of both
4720 inputs and outputs is of utmost importance. The input and
4721 output scaling can *not* be done by the equilibration option
4722 or the `prescale' command because these functions perform
4723 state transformations only. Furthermore, signals should not
4724 be scaled simply to a certain range. For all inputs (or
4725 outputs), a certain change should be of the same importance
4729 [1] Enns, D. Model reduction with balanced realizations: An error
4730 bound and a frequency weighted generalization. Proc. 23-th CDC,
4731 Las Vegas, pp. 127-132, 1984.
4733 [2] Lin, C.-A. and Chiu, T.-Y. Model reduction via
4734 frequency-weighted balanced realization. Control Theory and
4735 Advanced Technology, vol. 8, pp. 341-351, 1992.
4737 [3] Sreeram, V., Anderson, B.D.O and Madievski, A.G. New results
4738 on frequency weighted balanced reduction technique. Proc. ACC,
4739 Seattle, Washington, pp. 4004-4009, 1995.
4741 [4] Varga, A. and Anderson, B.D.O. Square-root balancing-free
4742 methods for the frequency-weighted balancing related model
4743 reduction. (report in preparation)
4746 Uses SLICOT AB09ID by courtesy of NICONET e.V.
4747 (http://www.slicot.org)
4752 # name: <cell-element>
4756 Model order reduction by frequency weighted Singular Perturbation
4761 # name: <cell-element>
4768 # name: <cell-element>
4772 -- Function File: [Y, T, X] = step (SYS)
4773 -- Function File: [Y, T, X] = step (SYS, T)
4774 -- Function File: [Y, T, X] = step (SYS, TFINAL)
4775 -- Function File: [Y, T, X] = step (SYS, TFINAL, DT)
4776 Step response of LTI system. If no output arguments are given,
4777 the response is printed on the screen.
4784 Time vector. Should be evenly spaced. If not specified, it
4785 is calculated by the poles of the system to reflect
4786 adequately the response transients.
4789 Optional simulation horizon. If not specified, it is
4790 calculated by the poles of the system to reflect adequately
4791 the response transients.
4794 Optional sampling time. Be sure to choose it small enough to
4795 capture transient phenomena. If not specified, it is
4796 calculated by the poles of the system.
4800 Output response array. Has as many rows as time samples
4801 (length of t) and as many columns as outputs.
4807 State trajectories array. Has `length (t)' rows and as many
4810 See also: impulse, initial, lsim
4816 # name: <cell-element>
4820 Step response of LTI system.
4824 # name: <cell-element>
4831 # name: <cell-element>
4835 -- Function File: STRVEC = strseq (STR, IDX)
4836 Return a cell vector of indexed strings by appending the indices
4837 IDX to the string STR.
4839 strseq ("x", 1:3) = {"x1"; "x2"; "x3"}
4840 strseq ("u", [1, 2, 5]) = {"u1"; "u2"; "u5"}
4845 # name: <cell-element>
4849 Return a cell vector of indexed strings by appending the indices IDX to
4854 # name: <cell-element>
4861 # name: <cell-element>
4865 -- Script File: test_control
4866 Execute all available tests at once. The Octave control package
4867 is based on the SLICOT (http://www.slicot.org) library. SLICOT
4868 needs a LAPACK library which is also a prerequisite for Octave
4869 itself. In case of failing test, it is highly recommended to use
4870 Netlib's reference LAPACK (http://www.netlib.org/lapack/) for
4871 building Octave. Using ATLAS may lead to sign changes in some
4872 entries in the state-space matrices. In general, these sign
4873 changes are not 'wrong' and can be regarded as the result of state
4874 transformations. Such state transformations (but not input/output
4875 transformations) have no influence on the input-output behaviour
4876 of the system. For better numerics, the control package uses such
4877 transformations by default when calculating the frequency
4878 responses and a few other things. However, arguments like the
4879 Hankel singular Values (HSV) must not change. Differing HSVs and
4880 failing algorithms are known for using Framework Accelerate from
4886 # name: <cell-element>
4890 Execute all available tests at once.
4894 # name: <cell-element>
4901 # name: <cell-element>
4905 -- Function File: STR = tfpoly2str (P)
4906 -- Function File: STR = tfpoly2str (P, TFVAR)
4907 Return the string of a polynomial with string TFVAR as variable.
4912 # name: <cell-element>
4916 Return the string of a polynomial with string TFVAR as variable.
4920 # name: <cell-element>
4927 # name: <cell-element>
4931 Return (pxm) cell of tfpoly([1]). For internal use only.
4936 # name: <cell-element>
4940 Return (pxm) cell of tfpoly([1]).
4944 # name: <cell-element>
4951 # name: <cell-element>
4955 Return (pxm) cell of tfpoly([0]). For internal use only.
4960 # name: <cell-element>
4964 Return (pxm) cell of tfpoly([0]).
4968 # name: <cell-element>
4975 # name: <cell-element>
4979 -- Function File: S = zpk ("S")
4980 -- Function File: Z = zpk ("Z", TSAM)
4981 -- Function File: SYS = zpk (SYS)
4982 -- Function File: SYS = zpk (K)
4983 -- Function File: SYS = zpk (Z, P, K, ...)
4984 -- Function File: SYS = zpk (Z, P, K, TSAM, ...)
4985 -- Function File: SYS = zpk (Z, P, K, TSAM, ...)
4986 Create transfer function model from zero-pole-gain data. This is
4987 just a stop-gap compatibility wrapper since zpk models are not yet
4992 LTI model to be converted to transfer function.
4995 Cell of vectors containing the zeros for each channel.
4996 z{i,j} contains the zeros from input j to output i. In the
4997 SISO case, a single vector is accepted as well.
5000 Cell of vectors containing the poles for each channel.
5001 p{i,j} contains the poles from input j to output i. In the
5002 SISO case, a single vector is accepted as well.
5005 Matrix containing the gains for each channel. k(i,j)
5006 contains the gain from input j to output i.
5009 Sampling time in seconds. If TSAM is not specified, a
5010 continuous-time model is assumed.
5013 Optional pairs of properties and values. Type `set (tf)' for
5018 Transfer function model.
5020 See also: tf, ss, dss, frd
5026 # name: <cell-element>
5030 Create transfer function model from zero-pole-gain data.