Identification of MISO / MIMO models based on transfer functions: poles multiply contained in resulting model
9 次查看(过去 30 天)
显示 更早的评论
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 个评论
Ryan G
2013-5-14
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?
回答(3 个)
Rajiv Singh
2013-5-15
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 个评论
Marc
2013-5-15
编辑:Marc
2013-5-15
1 个评论
Rajiv Singh
2013-5-15
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.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Transfer Function Models 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!