how to find characteristic equation from state space model?

Hello community!
I want to find the characteristic equation from this state space model
Also, I want to find a single differential equation for the Vmc.
How to do that in matlab?

6 Comments

I try to run this but it appears error. Why?
syms B_m J_m K m_c r J_p B_1 Kt J_m
A=[-B_m/J_m -1/J_m 0;
K 0 -K/r;
0 1/(m_c*r+J_p/r) -B_1/(m_c+J_p/r^2)]
B = [Kt/J_m;
0;
0]
C = [0 0 0]
D = [0]
[b,a] = ss2tf(A,B,C,D)
The control system toolbox can never work with symbolic variables.
ss2tf does ss2zpk to find the poles. That is a process involving eig that can be followed symbolically to find symbolic poles.
Once it has the poles, it starts iteratively creating the transfer function. ss2tf uses poly() to try to find the characteristic polynomial. Unfortunately, symbolic support in poly() was removed a few years ago, and you are supposed to use charpoly(). But charpoly() requires square systems while you have a 3x1.
If you trace through the poly() code, most of the steps can be done symbolically with minor changes. However at the end it tries to probe whether the poles form complex conjugate pairs, which is something you can determine in the general symbolic case. But it looked to me as if there is a conjugate pair under the assumption that the inputs are all real valued. At least for the first step. I did not try to trace through what would happen on the second step.
So I think you might be able to form the transfer function if you go through enough steps with modified code for the characteristic polynomial and if you can assume real. It will probably be somewhat messy, and hard to make sense of. I do not know that you will be able to do anything useful with the result... but I think it might be workable.
I did that, but why tf is 0 0 0 0?
B_m=0.03;
J_m=0.0075;
K=8500;
r=10;
m_c=65;
J_p=0.0025;
B_1=15;
Kt=1;
A=[-B_m/J_m -1/J_m 0;
K 0 -K/r;
0 1/(m_c*r+J_p/r) -B_1/(m_c+J_p/r^2)]
B=[Kt/J_m;
0;
0]
C=[0 0 0]
D=[0]
charpoly(A)
ss2tf(A,B,C,D)
ss2zpk is documented as
% [Z,P,K] = SS2ZP(A,B,C,D,IU) calculates the transfer function in
% factored form:
%
% -1 (s-z1)(s-z2)...(s-zn)
% H(s) = C(sI-A) B + D = k ---------------------
% (s-p1)(s-p2)...(s-pn)
% of the system:
% .
% x = Ax + Bu
% y = Cx + Du
But your C and your D are both 0, and you can see that zero times something plus zero is going to be 0, so the zp are going to be 0 and the gain of the system is 0. That leads to an all-zero transfer function.

Sign in to comment.

Answers (0)

Asked:

on 17 Jun 2020

Commented:

on 18 Jun 2020

Community Treasure Hunt

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

Start Hunting!