Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 试图从下面的离散系统中找到一个传递函数_Matlab - Fatal编程技术网

Matlab 试图从下面的离散系统中找到一个传递函数

Matlab 试图从下面的离散系统中找到一个传递函数,matlab,Matlab,我正在尝试用Matlab解决下面的系统。该系统是一个离散系统。我需要转换成一个状态空间模型系统,来提取4个矩阵。然后求传递函数 y(k+2) + 4y(k+1) + 5y(k)= u(k+2)+2u(k+1)+u(k). 我用手解决了这个问题,找到了四个矩阵: A=[0,1:-5,-4] B=[-2;4] C=[1,0,0] D=[1] 我的问题是,当我尝试运行下面的代码时,出现了以下错误: 使用ss2tf时出错(第26行) A和C矩阵的列数必须相同 no1中的错误(第5行) 我的Matl

我正在尝试用Matlab解决下面的系统。该系统是一个离散系统。我需要转换成一个状态空间模型系统,来提取4个矩阵。然后求传递函数

y(k+2) + 4y(k+1) + 5y(k)= u(k+2)+2u(k+1)+u(k). 
我用手解决了这个问题,找到了四个矩阵:

A=[0,1:-5,-4]
B=[-2;4]
C=[1,0,0]
D=[1]
我的问题是,当我尝试运行下面的代码时,出现了以下错误:

使用ss2tf时出错(第26行) A和C矩阵的列数必须相同

no1中的错误(第5行)

我的Matlab代码:

A=[0,1;-5,-4];
B=[-2;4];
C=[1,0,0];
D=[1];
[N1,D1]=ss2tf(A,B,C,D,1);
H=tf(N1,D1)

我希望得到一个传递函数

不要忘记,您正在处理一个离散时间系统(将
1
作为第三个参数添加到
ss2tf
)。如果您按照注释中已经注意到的那样更正
C
矩阵,则以下代码将执行您想要的操作:

A=[0,1;-5,-4];
B=[-2;4];
C=[1,0];
D=1;
[N1,D1]=ss2tf(A,B,C,D);
H=tf(N1,D1,1)

如错误消息所示,
A
C
必须具有相同的列数。您的矩阵
A
的大小为2x2,而您的矩阵
C
的大小为1x3,因此存在错误。您在手工求解和计算矩阵时显然犯了错误。@am304非常感谢您,先生
A=[0,1;-5,-4];
B=[-2;4];
C=[1,0,0];
D=[1];
[N1,D1]=ss2tf(A,B,C,D,1);
H=tf(N1,D1)
H =

  z^2 + 2 z + 1
  -------------
  z^2 + 4 z + 5