输入为传递函数系数(a,b);输出为能控能观型状态方程(A B C
D)
%**********************************
% 程序;线性系统理论第一章编程作业一
% 姓名:yuanyang
% 时间:2013.9.13
%**********************************
function [A,B,C,D]=ab2ABCD(a,b)
len_a=length(a); %a=[bm,bm-1,...,b1,b0]
m=len_a-1;
len_b=length(b); %b=[an-1,...,a1,a0]
n=len_b;
A1=zeros(n-1,1);
A2=eye(n-1);
A=[A1 A2];
fb=fliplr(b); %对b向量做水平翻转
A(n,:)=-fb(:) %输出A
if m
k=zeros(1,n-1);
B=[k,1];
B=B' %输出B
fa=fliplr(a);
mn=n-m-1;
MN=zeros(1,mn);
C=[fa
MN] %输出C
D=[] %输出D
end
if m==n %依据算法一中m=n的情形得出状态空间描述
k=zeros(1,n-1);
B=[k,1];
B=B'