How can I find a transfer function for a MISO system when i have the inputs (Matrix), output (column vector) in a text file

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

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.
Hallo Jonathan, i have inserted the code and also attached the .txt file. Please look in to this and reply me if you need any other information
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
Thank you for the quick reply,as per my understanding, you are saying that only one of the 4 inputs are considered to be acting at a point of time and the transfer functions are individually calculated (h11,h12,h12,h14)´, and if the inputs are acting simlutaneously then the response or output can be found as, y = h11*u1 + h12*u2 + h13*u3 + h14*u4.
In my case, the inputs are 4 sine sweeps with a phase difference. They are excitations given to 4 points on the vehicle, the outputs are measured at several locations (10) on the vehicle body.My interest is to somehow combine these 4 inputs into one and find the transfer function between them and the outputs. So this way i should be getting 10 transfer functions, considering 4 inputs and one output at a time. Is this possible and is this a correct way of doing it.
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)
This is quite clear, i don't want to work with 40 transfer functions, that is why i am thinking a way to combine these 4 inputs into one, so that i can restrict myself to 10 transfer functions. Am i thinking in a right way, can i do this or it is wrong to combine the inputs. Plese throw some light on this aspect
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)?
The inputs are sine sweeps, which mean signals with increasing frequency over a certain time. As of now sine sweeps of constant amplitudes, but with phase diffierences are used to estimate the transfer function. Later the inputs are going to be random signals.
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.
ok, thank you.
please share me your Linkedin contact.
My profile name is "Abhinay Dornipati "

Sign in to comment.

Answers (0)

Categories

Products

Release

R2014b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!