Descriptor State space in Simulink

I have a simple Simulink model, looking like the following:
I want the sum (at the right) to be equal to zero, so I have the following equation:
Input*ss1 + Input*K*ss2 = 0
Input * (ss1 + K*ss2) = 0
ss1 + K*ss2 = 0
K = -inv(ss2)*ss1
Both ss1 and ss2 are linear state space with one input, and one input. However, when calculating K, I get a descriptor state space (a,b,c,d AND e), which I cannot (or do not know how to) enter in Simulink. When running the simulink model without the 'K.e', it does not add up to zero.
Can someone tell me how to calculate K, so I don't get the descriptor SS? Or how to use the descriptor SS in Simulink?
Regards,
Thijs

4 Comments

Thijs
Thijs on 10 Apr 2014
Edited: Thijs on 10 Apr 2014
In my real system, ss2 is my plant model, and ss1 is a disturbance acting on the system.
K would be the feedforward 'gain'.
So by taking 'K = -inv(ss2)*ss1', K would be the optimal feedforward gain, and the resulting output (after the sum) should be equal to zero.
The state-spaces are too big (100+ states) to use the function ss2tf. When I use this function, the coefficients in the tf become too large for MATLAB. That is the reason why I am using state spaces instead of transfer functions.
P.S. Just checked with simple TF's, and it does work then (sum is equal to 10^-15 = 0).
Anyone?
Anyone?
Is there noone that can help me on this one?

Sign in to comment.

 Accepted Answer

You can implement descriptor state space systems in Simulink using LTI System block from Control System Toolbox.

More Answers (1)

Fu Zhang
Fu Zhang on 27 Mar 2019
In 2018b, Simulink introduced descriptor state space block, which is a built-in block that support sparse parameter. Details can be found here : https://www.mathworks.com/help/simulink/slref/descriptorstatespace.html

Asked:

on 9 Apr 2014

Answered:

on 27 Mar 2019

Community Treasure Hunt

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

Start Hunting!