声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1257|回复: 4

[综合讨论] 传递函数变换问题

[复制链接]
发表于 2009-7-8 20:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
怎么把一个高阶的传递函数变成好多二阶项和一阶项相乘的形式?
回复
分享到:

使用道具 举报

发表于 2009-7-8 23:16 | 显示全部楼层
factor ?
zpkdata ?
发表于 2009-7-9 07:38 | 显示全部楼层

有一个函数可以把传递函数的直接形式变为二阶项和一阶项的串联形式:
function [b0, B, A]=dir2cas(b,a);
%
b0=b(1); b=b/b0;
a0=a(1); a=a/a0;
b0=b0/a0;
%
M=length(b); N=length(a);
if N>M
   b=[b zeros(1,N-M)];
elseif M>N
   a=[a zeros(1,M-N)]; N=M;
end
%
K=floor(N/2); B=zeros(K,3); A=zeros(K,3);
if K*2==N;
   b=[b 0];
   a=[a 0];
end
%
broots=cplxpair(roots(b));
aroots=cplxpair(roots(a));
for i=1:2:2*K
   Brow=broots(i:1:i+1,:);
   Brow=real(poly(Brow));
   B(fix(i+1)/2,:)=Brow;
   Arow=aroots(i:1:i+1,:);
   Arow=real(poly(Arow));
   A(fix(i+1)/2,:)=Arow;
end
 楼主| 发表于 2009-7-9 21:15 | 显示全部楼层

回复 板凳 songzy41 的帖子

我需要的是让MATLAB显示结果的时候就直接能显示出来一阶二阶串联的形式,是不是可以在设置里面改的?
 楼主| 发表于 2009-7-9 23:24 | 显示全部楼层
我知道了  直接打zpk(G)就可以了
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-14 18:12 , Processed in 0.059877 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表