System Identification Toolbox with Multiple Input Variables and one Output Variable

Hi Matlab community
Is there a way to conduct a system identification with multiple input parameters and one output parameter?
Thanks in advance

 Accepted Answer

If by ‘parameter’ you mean inputs and outputs respectively, yes.
See the iddata section on Input Arguments, then define the system appropriately using ssest or any other estimation procedure you want to use.

14 Comments

One more question regarding the ssest: when I apply the function I get a fit of 100% display with my given data but when I use the compare command I get a horrible fit of hardly no match between the data. Why is that?
I would have to have the data and your code to respond appropriately.
It may be that since the system is optimising for more than one input with one output, that the input you are using with compare may not have the best overall system estimate. (I usually model SISO systems, so I would have to have more information about a MISO system.)
The order of the system could be another reason, so experiment with that. One way to determine it is to take the Fourier transforms of the input and output (fft), and construct the transfer function by dividing the Fourier transform of the output by the fourier transform of the inputs. Plot the one-sided imaginary part as a function of frequency. The number of peaks (singularities) will be the number of poles, characteristically defining the system order. It may require tweaking by ±1 or so to get the best fit, since there could be a pole at infinity that will not show up on the imaginary part of the transfer fucntion plot. It will also tell you something about the system single response to the two inputs.
Hi!
I am new to Matlab and am having the same problem....
I have a system that three inputs (two flow inputs + pressure) affect my output (pressure) and I would like to use the System Identification Tool (Ident) to estimate this model. So far I have only been able to use this tool with one input.
I am sorry, but I am just getting started with Matlab and could not understand the answer from @Star Strider. Could you explain it again for a beginner?
The idea would be to declare a variable as a matrix, including all entries as columns of this matrix, and then I would be able to export to Ident as an input?
Thank you!
The documentation explains it much better than I ever could. See the documentation I linked to. Be certain your data correspond to the requirements for iddata.
I prefer state space representations (ssest) because they are generally more robust, however use any estimation function you want.
Thank you for your help @Star Strider!
I read the link again and I think I got it.
I did the tests as below, using your indication of ssest: Code.PNG.
I got the following result: Result.PNG (for above 3rd order, Matlab is showing error as "unstable system).
I still couldn't get the expected precision, but it was already an advance of 4% with only one input...
Thanks!
Hi! Sorry to bother you again... I'm a little lost with some control concepts and I'm not able to find an answer to a question... maybe you can help me then....
I would like to find the parameters of a PID controller (Kp, Ki, Kd) from a transfer function. Do you know any method/equation for quick calculation of these parameters?
This is the transfer function:
Thanks so much
Could I do it simply like this? ...
Ki = 72.4 / 639.2
Kd = 72.4 x 639.2
Kp = 72.4
Not really. I do not do much with PID controllers, and have not done anything with them for a long time.
It may be best for you to post this as a new Question.
You could use picture.
And could you please open a new question if you have a request.

Sign in to comment.

More Answers (0)

Categories

Community Treasure Hunt

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

Start Hunting!