Fixing parameters when estimation of transfer function

9 visualizzazioni (ultimi 30 giorni)
I am working on a closed loop control of a robotic arm. I have input data and output data and would like to find the transfer function. It is a MISO system and i am using tfest to find the transfer function. However, when I estimate the transfer function, I would like to put conditions on the denominator such that the denominators of all three transfer functions are the same. How do i fix two different parameters to be the same in the transfer function while estimation? this is my code.
num={[1],[2 3],[3 5 2 3]};
den={[1 2 3 0],[1 2 3 0],[1 2 3 0]};
sys_init=idtf(num,den);
sys=tfest(soliddrive,sys_init);
I couldnt specify that sys_init.structure(1,1).Denominator=sys_init.structure(1,2).Denominator while estimation. How can this be done?

Risposte (1)

Sebastian Castro
Sebastian Castro il 19 Giu 2017
Modificato: Sebastian Castro il 19 Giu 2017
There is a setpar function that lets you set whether or not the variables are free.
For example, to have only the first 3 parameters in your model be modifiable:
>> sys_init_mod = setpar(sys_init,'free',[zeros(16,1);ones(3,1)])
- Sebastian
  2 Commenti
Narayanan V Baradwaj
Narayanan V Baradwaj il 19 Giu 2017
Hi. This is to fix the variable to a fixed number. Is it possible to make the denominator of 3 transfer functions of a MISO system same? Because if I set it as fixed, it doesn't change the value
Sebastian Castro
Sebastian Castro il 19 Giu 2017
Oh... my bad, I don't think you can do that with tfest.
Only way I could think about that is to use the Optimization Toolbox functionality such as fmincon and write the constraint function in yourself...
- Sebastian

Accedi per commentare.

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by