MIMO Models MIMO Models You can use the same functions that apply to SISo systems to create transfer functions and zero/pole/gain models. This section begins with al o multiple-input, multiple-output(MIMO)models, including arbitrary MIM example of how to build a MIMO system. It then discusses how to build MIMc transfer functions by concatenating SiSo transfer functions and how to aco and manipulate individual SISO transfer functions contained in a MIMO Cess model MIMO Example: Jet Transport Aircraft This example shows how to build a MIMO model of a jet transport. Since the development of a physical model for a jet aircraft is lengthy, only the state-space equations are presented here. See any standard text in aviation for The jet model during cruise flight at MACH=0. 8 and H=40,000 ft is -0.0558 0.0802 0.0415 3.05000. 0.4650 0 B=[0.0073 0 0.1530 0.1430 0 Use the following commands to specify this state-space model as an LTI object t'beta''yawroll''phi) i nputs =t'rudder''aileron') 2-13
MIMO Models 2-13 MIMO Models You can use the same functions that apply to SISO systems to create multiple-input, multiple-output (MIMO) models, including arbitrary MIMO transfer functions and zero/pole/gain models. This section begins with an example of how to build a MIMO system. It then discusses how to build MIMO transfer functions by concatenating SISO transfer functions and how to access and manipulate individual SISO transfer functions contained in a MIMO model. MIMO Example: Jet Transport Aircraft This example shows how to build a MIMO model of a jet transport. Since the development of a physical model for a jet aircraft is lengthy, only the state-space equations are presented here. See any standard text in aviation for a more complete discussion of the physics behind aircraft flight. The jet model during cruise flight at MACH = 0.8 and H = 40,000 ft. is A = [-0.0558 -0.9968 0.0802 0.0415 0.5980 -0.1150 -0.0318 0 -3.0500 0.3880 -0.4650 0 0 0.0805 1.0000 0]; B = [ 0.0073 0 -0.4750 0.0077 0.1530 0.1430 0 0]; C = [0 1 0 0 0 0 0 1]; D = [0 0 0 0]; Use the following commands to specify this state-space model as an LTI object and attach names to the states, inputs, and outputs. states = {'beta' 'yaw' 'roll' 'phi'}; inputs = {'rudder' 'aileron'}; outputs = {'yaw rate' 'bank angle'};
2 Building Models sys_mi mo = SS(A, B, C, D, 'statename, states nputname, inputs. out putname, out puts) You can display the lti model by typing sys_mi mo ro 0.0558 0.9968 0.0802 0.0415 yau 0.598 -0.0318 roll 3.05 0.388 0.465 0 udder aileron beta 0.0073 0 0.475 0.0077 ol 0.153 0.143 bet a yaw yaw rate 0 bank angle rudder aileron 0 0 bank angle Conti nuous-ti me model The model has two inputs and two outputs. The units are radians for beta roll(roll rate). The rudder and aileron deflections are in degreef rate)and (sideslip angle)and phi(bank angle) and radians/sec for yaw (yaw 2-14
2 Building Models 2-14 sys_mimo = ss(A,B,C,D,'statename',states,... 'inputname',inputs,... 'outputname',outputs); You can display the LTI model by typing sys_mimo. sys_mimo a = beta yaw roll phi beta -0.0558 -0.9968 0.0802 0.0415 yaw 0.598 -0.115 -0.0318 0 roll -3.05 0.388 -0.465 0 phi 0 0.0805 1 0 b = rudder aileron beta 0.0073 0 yaw -0.475 0.0077 roll 0.153 0.143 phi 0 0 c = beta yaw roll phi yaw rate 0 1 0 0 bank angle 0 0 0 1 d = rudder aileron yaw rate 0 0 bank angle 0 0 Continuous-time model. The model has two inputs and two outputs. The units are radians for beta (sideslip angle) and phi (bank angle) and radians/sec for yaw (yaw rate) and roll (roll rate). The rudder and aileron deflections are in degrees
MIMO Models As in the siso case, use tf to derive the transfer function representation tf(sys_mi mo) Transfer functi on from input "rudder"to output 0.475s^3-0.2479s^2-0.1187s-0.05633 aw rate ^4+0.6358s^3+0.9389s^2+0.5116s+0.003674 0.1148s^2-0.2004s-1.373 bank angle s^4+0.6358s^3+0.9389s^2+0.5116s+0.003674 Transfer functi on from input "aileron"to output. 0.0077s^3-0.0005372s^2+0.008688s+0.004523 s^4+0.6358s^3+0.9389s^2+0.5116s+0.003674 0.1436s^2+0.02737s+0.1104 s^4+0.6358s^3+0.9389s^2+0.5116s+0.003674 Constructing MIMO Transfer Functions MIMO transfer functions are two-dimensional arrays of elementary SISo transfer functions. There are two ways to specify MIMo transfer function Concatenation of siso transfer function models Using tf with cell array arguments Concatenation of siso models Consider the following single-input, two-output transfer function You can specify H(s) by concatenation of its SISO entries. For instance, 2-15
MIMO Models 2-15 As in the SISO case, use tf to derive the transfer function representation. tf(sys_mimo) Transfer function from input "rudder" to output... -0.475 s^3 - 0.2479 s^2 - 0.1187 s - 0.05633 yaw rate: --------------------------------------------------- s^4 + 0.6358 s^3 + 0.9389 s^2 + 0.5116 s + 0.003674 0.1148 s^2 - 0.2004 s - 1.373 bank angle: --------------------------------------------------- s^4 + 0.6358 s^3 + 0.9389 s^2 + 0.5116 s + 0.003674 Transfer function from input "aileron" to output... 0.0077 s^3 - 0.0005372 s^2 + 0.008688 s + 0.004523 yaw rate: --------------------------------------------------- s^4 + 0.6358 s^3 + 0.9389 s^2 + 0.5116 s + 0.003674 0.1436 s^2 + 0.02737 s + 0.1104 bank angle: --------------------------------------------------- s^4 + 0.6358 s^3 + 0.9389 s^2 + 0.5116 s + 0.003674 Constructing MIMO Transfer Functions MIMO transfer functions are two-dimensional arrays of elementary SISO transfer functions. There are two ways to specify MIMO transfer function models: • Concatenation of SISO transfer function models • Using tf with cell array arguments Concatenation of SISO models Consider the following single-input, two-output transfer function. You can specify by concatenation of its SISO entries. For instance, H s( ) s – 1 s + 1 ----------- s + 2 s2 + + 4s 5 --------------------------- = H s( )
2 Building Models hl1=tf(I1-1],[11]); h21=tf(I12],[145]) ivalently s= tf('s' h21=(s+2)/(s^2+4*s+5); an be concatenated to form H(s) This syntax mimics standard matrix concatenation and tends to be easier and more readable for MIMO systems with many inputs and/or outputs. See"Model Interconnection Functions"in"Creating and Manipulating Models"online for more details on concatenation operations for LtI systems. Using the tf Function with Cell Arrays Alternatively, to define MiMo transfer functions using tf, you need two cell arrays(say, N and D)to represent the sets of numerator and denominator polynomials, respectively. See the"Structures and Cell Arrays"in MATLAB'S online documentation for more details on cell arrays For example, for the rational transfer matrix H(s), the two cell arrays N and d should contain the row-vector representations of the polynomial entries of D(S) You can specify this Mimo transfer matrix H()by typing n=t[1-1: [1 2]3:%Cell array for N(s) D=t[11: [1 4511;%Cell array for D(s) H= tf(N, D) The Control System Toolbox responds with Transfer functi on from input to output s+
2 Building Models 2-16 h11 = tf([1 -1],[1 1]); h21 = tf([1 2],[1 4 5]); or, equivalently, s = tf('s') h11 = (s-1)/(s+1); h21 = (s+2)/(s^2+4*s+5); can be concatenated to form . H = [h11; h21] This syntax mimics standard matrix concatenation and tends to be easier and more readable for MIMO systems with many inputs and/or outputs. See “Model Interconnection Functions” in “Creating and Manipulating Models” online for more details on concatenation operations for LTI systems. Using the tf Function with Cell Arrays Alternatively, to define MIMO transfer functions using tf, you need two cell arrays (say, N and D) to represent the sets of numerator and denominator polynomials, respectively. See the “Structures and Cell Arrays” in MATLAB’s online documentation for more details on cell arrays. For example, for the rational transfer matrix , the two cell arrays N and D should contain the row-vector representations of the polynomial entries of You can specify this MIMO transfer matrix by typing N = {[1 -1];[1 2]}; % Cell array for N(s) D = {[1 1];[1 4 5]}; % Cell array for D(s) H = tf(N,D) The Control System Toolbox responds with Transfer function from input to output... s - 1 #1: ----- s + 1 H s( ) H s( ) N s( ) s – 1 s + 2 = D s( ) s + 1 s2 + + 4s 5 = H s( )
MIMO Models Notice that both N and d have the same dimensions as H For a general MIMo transfer matrix H(s), the cell array entries Ni, j) and di, j should be ow-vector representations of the numerator and denominator of H,(s), the iith entry of the transfer matrix H(S) Accessing 1/o Pairs in MIMO Systems Once you have defined a MIMO system, you can access and manipulate I/O pairs by specifying input and output pairs of the system. For instance if sys_mi mo is a MIMO system with two inputs and three outputs, sys_mi mo(3, 1) extracts the subsystem mapping the first input to the third output Row indices select the outputs and column indices select the inputs. Similarly ys_mi mo (3, 1)= tf(l,[1 OD) defines the transfer function between the first input and third output as an integrator. 2-17
MIMO Models 2-17 s + 2 #2: ------------- s^2 + 4 s + 5 Notice that both N and D have the same dimensions as H. For a general MIMO transfer matrix , the cell array entries N{i,j} and D{i,j} should be row-vector representations of the numerator and denominator of , the entry of the transfer matrix . Accessing I/O Pairs in MIMO Systems Once you have defined a MIMO system, you can access and manipulate I/O pairs by specifying input and output pairs of the system. For instance, if sys_mimo is a MIMO system with two inputs and three outputs, sys_mimo(3,1) extracts the subsystem mapping the first input to the third output. Row indices select the outputs and column indices select the inputs. Similarly, sys_mimo(3,1) = tf(1,[1 0]) redefines the transfer function between the first input and third output as an integrator. H s( ) Hij(s) ijth H s( )