# Finding the zeros for a state space model

Finding the zeros for a state space model is easy. Just convert the SS to TF and then find the roots of numerators from the transfer function.

But it's can be done this way too:

$$C\operatorname{adj}(sI-A)B +D\det(sI-A) = 0$$

My question is if there is an algorithm to solve this in MATLAB? I Know that there is a MATLAB command named zero and tzero. But I don't want to use that.

• Fort a MIMO system the right hand side of your equation should not have to be all zeros, but in general a zero can be defined as for which $s$ the expression of the left hand side loses rank. Sep 30 '17 at 17:10
• What is the formula for that? Sep 30 '17 at 17:29
• Formula for what? With my previous comment I tried to make you aware of the fact that the equation in your question might not be solvable in the MIMO case. Sep 30 '17 at 18:33
• Yes I Know that. My formula is only for SISO case. You mean that if I have a matrix M = [(sI-A) B; C D] and then a do a for loop with large s as initial value and decreese s. Mean while the loop is running. I check the rank of matrix M. If I notice that the matrix M has step down one rank. I have found a zero. Right ? Sep 30 '17 at 18:39
• You can use the formula in your question, but you would have to reformulate it slightly to also make it applicable in the MIMO case. Namely a zero can be defined as a value for $s$ such that the rank of the expression on the left hand side of your equation loses rank. Sep 30 '17 at 23:16

Z = eig ([A B; C D] , [eye (size (A, 1)) B*0; C*0 D*0])