How can I find a transfer function for a MISO system when i have the inputs (Matrix), output (column vector) in a text file
Show older comments
Hallo everyone,
As a part of my thesis i have to find a transfer fubction for a MISO system. There are 4 inputs and one ouput, i have treid using 'tfestimate' command, but i am getting 4 transfer functions for the 4 inputs. What i actually want is a single transfer function which considers the 4 inputs as one.
Please do help me with this, thanks in advance
%%
Raw_data=dlmread('data.txt','',1,0); % 4 inputs and one output are stored in to Raw-data matrix from data.txt file
[Txy,F]=tfestimate(Raw_data(:,[2:5]),Raw_data(:,6),hann(800),400,NFTT,FS); %4 inputs are present in columns 2,3,4 &5. Output is in column 6
Results =abs(Txy); % I am getting a 4 column Results matrix with 4 transfer functions
%%
10 Comments
Jon
on 1 Jul 2019
It would be helpful if you could please attach your data file in order to better understand what is going on. Also, please use the CODE button on the Matlab Answer toolbar to insert your code. That way it can easily be copied, to try it out and it also comes out nicely formatted and colored as it would appear in the MATLAB editor. This make it more readable.
Abhinay Dornipati
on 2 Jul 2019
Jon
on 2 Jul 2019
Actually, I don't think there is anything wrong with your MATLAB code, it is more a conceptual misunderstanding that you have regarding Multi Input Single Output transfer functions. Given a system, as in your case that has 4 inputs and a single output, there will be 4 transfer functions, lets call them h11, h12, h13, h14. The first of these, h11, provides the response of the single output y, to input 1 when all of the other inputs are zero. The second, h12, provides the response of the single output y to input 2 when all the other inputs are zero, and so on. As the system is linear, the overall response of the output y when all of the outputs are present (non-zero) will be the sum of the individual responses. So if the input is a length 4 vector, [u1,u2,u3,u4]' we will have y = h11*u1 + h12*u2 + h13*u3 + h14*u4
Abhinay Dornipati
on 2 Jul 2019
If you have 4 different physical locations where the inputs are applied and 10 different physical locations where the responses are measured, then your system model will be a 10 row by 4 column matrix of individual transfer functions, lets call it H, where H(i,j) gives the response of output i to input j. Given a length 4 vector of inputs, u, and a length 10 vector of outputs y, you then have y = H*u (this is all in the frequency domain, so y and u are the Laplace transforms of your signals)
Abhinay Dornipati
on 2 Jul 2019
Jon
on 2 Jul 2019
In your application, are all of your inputs always going to be sinusoids at a single frequency, just with different, phase shifts, or was this only the situation for doing the system identification (transfer function estimation)?
Abhinay Dornipati
on 2 Jul 2019
Jon
on 2 Jul 2019
From my understanding of your system and application with general random inputs to all of the channels I do not think it is possible to further simplify it, and you will have to use the full 10 by 4 (40 individual) transfer functions.
Abhinay Dornipati
on 2 Jul 2019
Answers (0)
Categories
Find more on Get Started with 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!