Identification of MISO / MIMO models based on transfer functions: poles multiply contained in resulting model
13 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Dear all,
I am attempting to identify a MIMO model (2 Inputs, 5 Outputs) using the System Identification Toolbox. For some reason the identification of state-space models does not give satisfactory results. I can however identify SISO transfer function models and even MISO transfer-functions quite well.
Now here is the snag: when I combine the 10 SISO models into a 5x2 transfer-matrix and use "pole", every single pole appears twice in the model. This also holds for the identification of 2 input / 1 output models using tfest. Every pole twice.
Looking at the state-space representation of the models, I get a block diagonal system-matrix where all of the main diagonal blocks are identical :-( so every pole IS represented twice.
That's definitely a bit of a bother, as I want to do the following:
1.) augment the system stability using one input and one output. 2.) use PI-controllers to control two of the outputs.
which does work in theory and practice, though not with the models obtained from the identification toolbox, as the poles of the different transfer-functions don't interact.
And considering the transfer-matrix derived from a state-space model: this gives G(s) = C*(s*I-A)^(-1)*B where the poles result from the inversion of (s*I-A) and are the same for all transfer-functions.
Is there a simple and / or elegant way to force the identification toolbox to give me a transfer-matrix that does not contain the same poles n-times each?
Thanks in advance,
best regards,
Marc
1 commentaire
Ryan G
le 14 Mai 2013
It sounds like your system is highly coupled and therefore you can't achieve satisfactory identification on a SISO basis. What methods are you using to obtain your model using sys ID? What functions/processes are you using to obtain the MIMO sys id?
Réponses (3)
Rajiv Singh
le 15 Mai 2013
The repeated poles are probably a result of concatenation; do pole(ss(zpk(rss(2,2,2)))) to check this phenomenon. You can use SMINREAL, MINREAL or BALRED to perform a reduction to eliminate pole-zero cancellations.
You can then even run some iterations on the reduced model (using TFEST or SSEST) to fine tune the left over coefficients of the MIMO system.
0 commentaires
Marc
le 15 Mai 2013
Modifié(e) : Marc
le 15 Mai 2013
1 commentaire
Rajiv Singh
le 15 Mai 2013
The poles could duplicate for vertical concatenations too: try sys = rss(2); sys2 = [sys; sys]; pole(sys2)
Reducing order using BALRED should always work for stable systems since you would be picking the reduced order yourself.
Aside: What kind of data do you use for estimation? If it is time domain signals, you cannot decompose a multi-input estimation into several single-input estimations.
Voir également
Catégories
En savoir plus sur Transfer Function Models dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!