Control Systems/MIMO Systems
{{#invoke:TScope|shiftLeft|BookCat/core|1 |namespace = |pagename =Control Systems/MIMO Systems |fullpagename=Control Systems/MIMO Systems |sortkey = }}
Multi-Input, Multi-Output
Systems with more than one input and/or more than one output are known as Multi-Input Multi-Output systems, or they are frequently known by the abbreviation MIMO. This is in contrast to systems that have only a single input and a single output (SISO), like we have been discussing previously.
State-Space Representation
MIMO systems that are lumped and linear can be described easily with state-space equations. To represent multiple inputs we expand the input u(t) into a vector U(t) with the desired number of inputs. Likewise, to represent a system with multiple outputs, we expand y(t) into Y(t), which is a vector of all the outputs. For this method to work, the outputs must be linearly dependent on the input vector and the state vector.
- 解析失败 (带SVG或PNG备选的MathML(建议用于现代的浏览器和辅助工具):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle X'(t) = AX(t) + BU(t)}
- 解析失败 (带SVG或PNG备选的MathML(建议用于现代的浏览器和辅助工具):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle Y(t) = CX(t) + DU(t)}
Example: Two Inputs and Two Outputs
Let's say that we have two outputs, y1 and y2, and two inputs, u1 and u2. These are related in our system through the following system of differential equations:
- 解析失败 (带SVG或PNG备选的MathML(建议用于现代的浏览器和辅助工具):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle y_1'' + a_1y_1' + a_0(y_1 + y_2) = u_1(t)}
- 解析失败 (带SVG或PNG备选的MathML(建议用于现代的浏览器和辅助工具):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle y_2' + a_2(y_2 - y_1) = u_2(t)}
now, we can assign our state variables as such, and produce our first-order differential equations:
- 解析失败 (带SVG或PNG备选的MathML(建议用于现代的浏览器和辅助工具):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle x_1 = y_1}
- 解析失败 (带SVG或PNG备选的MathML(建议用于现代的浏览器和辅助工具):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle x_4 = y_2}
- 解析失败 (带SVG或PNG备选的MathML(建议用于现代的浏览器和辅助工具):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle x_1' = y_1' = x_2}
- 解析失败 (带SVG或PNG备选的MathML(建议用于现代的浏览器和辅助工具):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle x_2' = - a_1x_2 - a_0(x_1 + x_4) + u_1(t)}
- 解析失败 (带SVG或PNG备选的MathML(建议用于现代的浏览器和辅助工具):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle x_4' = - a_2(x_4 - x_1) + u_2(t)}
And finally we can assemble our state space equations:
- 解析失败 (带SVG或PNG备选的MathML(建议用于现代的浏览器和辅助工具):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle x' = \begin{bmatrix} 0 & 1 & 0 & 0 \\ -a_0 & -a_1 & 0 & -a_0 \\ 0 & 0 & 0 & 1 \\ a_2 & 0 & 0 & -a_2 \end{bmatrix} x + \begin{bmatrix} 0 & 0 \\ 1 & 0 \\ 0 & 0 \\ 0 & 1 \end{bmatrix} \begin{bmatrix} u_1 \\ u_2 \end{bmatrix}}
- 解析失败 (带SVG或PNG备选的MathML(建议用于现代的浏览器和辅助工具):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle \begin{bmatrix} y_1 \\ y_2 \end{bmatrix} = \begin{bmatrix} 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix} x(t)}
Transfer Function Matrix
If the system is LTI and Lumped, we can take the Laplace Transform of the state-space equations, as follows:
- 解析失败 (带SVG或PNG备选的MathML(建议用于现代的浏览器和辅助工具):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle \mathcal{L}[X'(t)] = \mathcal{L}[AX(t)] + \mathcal{L}[BU(t)]}
- 解析失败 (带SVG或PNG备选的MathML(建议用于现代的浏览器和辅助工具):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle \mathcal{L}[Y(t)] = \mathcal{L}[CX(t)] + \mathcal{L}[DU(t)]}
Which gives us the result:
- 解析失败 (带SVG或PNG备选的MathML(建议用于现代的浏览器和辅助工具):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle s\mathbf{X}(s) - X(0) = A\mathbf{X}(s) + B\mathbf{U}(s)}
- 解析失败 (带SVG或PNG备选的MathML(建议用于现代的浏览器和辅助工具):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle \mathbf{Y}(s) = C\mathbf{X}(s) + D\mathbf{U}(s)}
Where X(0) is the initial conditions of the system state vector in the time domain. If the system is relaxed, we can ignore this term, but for completeness we will continue the derivation with it.
We can separate out the variables in the state equation as follows:
- 解析失败 (带SVG或PNG备选的MathML(建议用于现代的浏览器和辅助工具):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle s\mathbf{X}(s) - A\mathbf{X}(s) = X(0) + B\mathbf{U}(s)}
Then factor out an X(s):
- 解析失败 (带SVG或PNG备选的MathML(建议用于现代的浏览器和辅助工具):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle \mathbf[sI - A]{X}(s) = X(0) + B\mathbf{U}(s)}
And then we can multiply both sides by the inverse of [sI - A] to give us our state equation:
- 解析失败 (带SVG或PNG备选的MathML(建议用于现代的浏览器和辅助工具):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle \mathbf{X}(s) = [sI - A]^{-1}X(0) + [sI - A]^{-1}B\mathbf{U}(s)}
Now, if we plug in this value for X(s) into our output equation, above, we get a more complicated equation:
- 解析失败 (带SVG或PNG备选的MathML(建议用于现代的浏览器和辅助工具):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle \mathbf{Y}(s) = C([sI - A]^{-1}X(0) + [sI - A]^{-1}B\mathbf{U}(s)) + D\mathbf{U}(s)}
And we can distribute the matrix C to give us our answer:
- 解析失败 (带SVG或PNG备选的MathML(建议用于现代的浏览器和辅助工具):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle \mathbf{Y}(s) = C[sI - A]^{-1}X(0) + C[sI - A]^{-1}B\mathbf{U}(s) + D\mathbf{U}(s)}
Now, if the system is relaxed, and therefore X(0) is 0, the first term of this equation becomes 0. In this case, we can factor out a U(s) from the remaining two terms:
- 解析失败 (带SVG或PNG备选的MathML(建议用于现代的浏览器和辅助工具):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle \mathbf{Y}(s) = (C[sI - A]^{-1}B + D)\mathbf{U}(s)}
We can make the following substitution to obtain the Transfer Function Matrix, or more simply, the Transfer Matrix, H(s):
[Transfer Matrix]
- 解析失败 (带SVG或PNG备选的MathML(建议用于现代的浏览器和辅助工具):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle C[sI - A]^{-1}B + D = \mathbf{H}(s)}
And rewrite our output equation in terms of the transfer matrix as follows:
[Transfer Matrix Description]
- 解析失败 (带SVG或PNG备选的MathML(建议用于现代的浏览器和辅助工具):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle \mathbf{Y}(s) = \mathbf{H}(s)\mathbf{U}(s)}
If Y(s) and X(s) are 1 × 1 vectors (a SISO system), then we have our external description:
- 解析失败 (带SVG或PNG备选的MathML(建议用于现代的浏览器和辅助工具):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle Y(s) = H(s)X(s)}
Now, since X(s) = X(s), and Y(s) = Y(s), then H(s) must be equal to H(s). These are simply two different ways to describe the same exact equation, the same exact system.
Dimensions
If our system has q inputs, and r outputs, our transfer function matrix will be an r × q matrix.
Relation to Transfer Function
For SISO systems, the Transfer Function matrix will reduce to the transfer function as would be obtained by taking the Laplace transform of the system response equation.
For MIMO systems, with n inputs and m outputs, the transfer function matrix will contain n × m transfer functions, where each entry is the transfer function relationship between each individual input, and each individual output.
Through this derivation of the transfer function matrix, we have shown the equivalency between the Laplace methods and the State-Space method for representing systems. Also, we have shown how the Laplace method can be generalized to account for MIMO systems. Through the rest of this explanation, we will use the Laplace and State Space methods interchangeably, opting to use one or the other where appropriate.
Zero-State and Zero-Input
If we have our complete system response equation from above:
- 解析失败 (带SVG或PNG备选的MathML(建议用于现代的浏览器和辅助工具):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle \mathbf{Y}(s) = C[sI - A]^{-1}\mathbf{x}(0) + (C[sI - A]^{-1}B + D)\mathbf{U}(s)}
We can separate this into two separate parts:
- 解析失败 (带SVG或PNG备选的MathML(建议用于现代的浏览器和辅助工具):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle C[sI - A]^{-1}X(0)} The Zero-Input Response.
- 解析失败 (带SVG或PNG备选的MathML(建议用于现代的浏览器和辅助工具):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle (C[sI - A]^{-1}B + D)\mathbf{U}(s)} The Zero-State Response.
These are named because if there is no input to the system (zero-input), then the output is the response of the system to the initial system state. If there is no state to the system, then the output is the response of the system to the system input. The complete response is the sum of the system with no input, and the input with no state.
Discrete MIMO Systems
In the discrete case, we end up with similar equations, except that the X(0) initial conditions term is preceded by an additional z variable:
- 解析失败 (带SVG或PNG备选的MathML(建议用于现代的浏览器和辅助工具):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle \mathbf{X}(z) = [zI - A]^{-1}zX(0) + [zI - A]^{-1}B\mathbf{U}(z)}
- 解析失败 (带SVG或PNG备选的MathML(建议用于现代的浏览器和辅助工具):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle \mathbf{Y}(z) = C[zI - A]^{-1}zX(0) + C[zI - A]^{-1}B\mathbf{U}(z) + D\mathbf{U}(z)}
If X(0) is zero, that term drops out, and we can derive a Transfer Function Matrix in the Z domain as well:
- 解析失败 (带SVG或PNG备选的MathML(建议用于现代的浏览器和辅助工具):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle \mathbf{Y}(z) = (C[zI - A]^{-1}B + D)\mathbf{U}(z)}
[Transfer Matrix]
- 解析失败 (带SVG或PNG备选的MathML(建议用于现代的浏览器和辅助工具):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle C[zI - A]^{-1}B + D = \mathbf{H}(z)}
[Transfer Matrix Description]
- 解析失败 (带SVG或PNG备选的MathML(建议用于现代的浏览器和辅助工具):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle \mathbf{Y}(z) = \mathbf{H}(z)\mathbf{U}(z)}
Example: Pulse Response
For digital systems, it is frequently a good idea to write the pulse response equation, from the state-space equations:
- 解析失败 (带SVG或PNG备选的MathML(建议用于现代的浏览器和辅助工具):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle x[k + 1] = Ax[k] + Bu[k]}
- 解析失败 (带SVG或PNG备选的MathML(建议用于现代的浏览器和辅助工具):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle y[k] = Cx[k] + Du[k]}
We can combine these two equations into a single difference equation using the coefficient matrices A, B, C, and D. To do this, we find the ratio of the system output vector, Y[n], to the system input vector, U[n]:
- 解析失败 (带SVG或PNG备选的MathML(建议用于现代的浏览器和辅助工具):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle \frac{Y(z)}{U(z)} = H(z) = C(zI - A)^{-1}B + D}
So the system response to a digital system can be derived from the pulse response equation by:
- 解析失败 (带SVG或PNG备选的MathML(建议用于现代的浏览器和辅助工具):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle Y(z) = H(z)U(z)}
And we can set U(z) to a step input through the following Z transform:
- 解析失败 (带SVG或PNG备选的MathML(建议用于现代的浏览器和辅助工具):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle u(t) \Leftrightarrow U(z) = \frac{z}{z - 1}}
Plugging this into our pulse response we get our step response:
- 解析失败 (带SVG或PNG备选的MathML(建议用于现代的浏览器和辅助工具):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle Y(z) = (C(zI - A)^{-1}B + D)\left(\frac{z}{z-1}\right)}
- 解析失败 (带SVG或PNG备选的MathML(建议用于现代的浏览器和辅助工具):从服务器“https://wikimedia.org/api/rest_v1/”返回无效的响应(“Math extension cannot connect to Restbase.”):): {\displaystyle \mathbf{Y}(z) = \mathbf{H}(z)\left(\frac{z}{z-1}\right)}
Controller Design
The controller design for MIMO systems is more extensive and thus more complicated than for SISO system. Ackermann's formula, the typical full state feedback design for SISO system, could not be used for MIMO systems because the additional inputs lead to an overdetermined system. This means, in case of MIMO systems, the feedback matrix K is not unique.
Approaches for the controller design are stated in Section Eigenvalue Assignment for MIMO Systems.