Transfer Function Matrix for a MIMO System
Show older comments
So I have calculated the Transfer Functions for a MIMO system from its state-space model and the system configuration has 3 inputs and 2 outputs. So, I have a total of 6 transfer functions now. I need to concatenate/combine all the Transfer Functions into a single matrix in order to further obtain its Smith Form. But I am unable to figure out how I can combine all the transfer functions into a single matrix to work on it further. Can anybody please help me with it?
Answers (1)
Aman Banthia
on 13 Sep 2023
Hi Akshay,
I understand that you need to concatenate/combine all the Transfer Functions into a single matrix to further obtain its Smith Form.
To combine multiple transfer functions into a single matrix, you can use the concept of a transfer function matrix. Each element of the matrix represents a transfer function between a specific input and output. Here is how you can organize your transfer functions into a matrix:
Let us assume you have a MIMO system with 3 inputs and 2 outputs. You have calculated 6 transfer functions, denoted as G11, G12, G13, G21, G22, and G23. The subscripts represent the input-output relationship, where the first subscript represents the output, and the second subscript represents the input.
To combine these transfer functions into a matrix, you can create a transfer function matrix `G` with dimensions ` [number of outputs, number of inputs] `. In your case, the matrix `G` will have dimensions ` [2, 3]`.
Here is an example code snippet to illustrate the process:
% Define the transfer functions
G11 = tf([1], [1, 2]);
G12 = tf([2], [1, 3]);
G13 = tf([3], [1, 4]);
G21 = tf([4], [1, 5]);
G22 = tf([5], [1, 6]);
G23 = tf([6], [1, 7]);
% Combine the transfer functions into a matrix
G = [G11, G12, G13; G21, G22, G23];
In this example, we have created a transfer function matrix `G` by arranging the individual transfer functions into a 2x3 matrix. Each element of the matrix represents a transfer function between a specific output and input.
Once you have the transfer function matrix `G`, you can further manipulate it or apply operations like obtaining the Smith form or performing other analyses on the MIMO system.
Note: Make sure that the transfer functions you calculate are compatible and have the same input-output dimensions.
Please refer to the following MATLAB Documentation to know more about ‘tf’ function and Concatenating Matrices:
Hope the above solution helps you.
Best Regards,
Aman Banthia
6 Comments
@Aman Banthia, are you sure that the matrix in your example is the Smith form that @Akshay Vivek Panchwagh wants?
% Define the transfer functions
G11 = tf([1], [1, 2]);
G12 = tf([2], [1, 3]);
G13 = tf([3], [1, 4]);
G21 = tf([4], [1, 5]);
G22 = tf([5], [1, 6]);
G23 = tf([6], [1, 7]);
% Combine the transfer functions into a matrix
G = [G11, G12, G13; G21, G22, G23]
Paul
on 13 Sep 2023
Hi Sam,
Is Smith Form short for Smith-McMillan Form, or is Smith Form something else?
Here's a link to an example of Smith-McMillan Form, but the underlying smithForm function only works for square matrices (unless it's been updated) (link).
In any case, I think the OP was just asking for way to build a MIMO system from which the Smith (-McMillan?) Form could then be derived.
Hi Paul,
To be honest, I am not sure whether @Akshay Vivek Panchwagh (OP) was asking how to compute the Smith form or the Smith-McMillan form of the transfer-function matrix in MATLAB. Perhaps OP should clarify that. However, I could hardly find info about the Smith form topic in most undergraduate textbooks. Kemin Zhou's Robust and Optimal Control book (1996) covered this in Section 3.11, 'Multivariable System Poles and Zeros.'

Nevertheless, I think the transfer-function matrix could have been computed directly from the MIMO state-space system rather than performing the concatenation manually.
% MIMO system
A = [0 1 0 0; 0 0 1 0; 0 0 0 1; -1 -4 -6 -4];
B = [0 0 0; 1 0 0; 0 1 0; 0 0 1];
C = [1 0 0 0; 0 1 0 0];
D = 0;
sys = ss(A, B, C, D)
% Transfer-function matrix
G = tf(sys)
Paul
on 13 Sep 2023
The Smith form of a polynomial matrix is used to develop the Smith-McMillan form of a MIMO tranfser function matrix, as I showed in the link in my previous comment. "Linear Systems" by Kailath, which is what I think Zhou is referencing, is an excellent text that covers MIMO linear system theory (among other stuff).
Akshay Vivek Panchwagh
on 23 Sep 2023
Categories
Find more on Control System Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!