声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3763|回复: 19

[综合] 求:高手帮忙画出附件中传递函数的幅频响应图,多谢!

[复制链接]
发表于 2006-9-7 16:11 | 显示全部楼层 |阅读模式

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

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

x
我已经试了两天了,还没有对,请高手指教一下,多谢!急需!!!
回复
分享到:

使用道具 举报

发表于 2006-9-7 19:57 | 显示全部楼层
L=19;
b=0.40651;
C= [-0.0097033        -0.024083        0.011667        0.03199        -0.0019712        0.013463        0.16639        0.32107        0.25735        0.0068313        -0.1513        -0.072642        0.067968        0.062798        -0.037318        -0.05813        0.010752        0.041062        -0.00097694        -0.026508];

A=1;
B=[1,-b];
H0=tf([1],[1]);
for i=1:1:L
    A=conv([-b,1],[A]);%%分子
    B=conv([1,-b],[B]);
    D=C(i)*sqrt(1-b*b);
    num=D*A;
    den=B;
    H=tf(num,den,0.1)%%Ts=0.1S离散系统 是否要 请试试
    HH=H+H0;
end
HH=HH-H0;
figure;
bode(H)
仅供参考,请批评指正!

评分

1

查看全部评分

 楼主| 发表于 2006-9-7 21:02 | 显示全部楼层
多谢,上面的tf,bode函数应该都是控制工具箱的吧,我也不知道这样对不对。我参考了您上面求出的分子分母系数,然后用了
b,a分别为分子分母幂次从高到低排列的系数。
[h,w]=freqz(b,a);
subplot(311);plot(w,abs(h));grid;
axis([0 3.5 0 1.5]);
subplot(312);plot(w,20*log10(abs(h)));grid;
axis([0 3.5 -200 100]);
subplot(313);plot(w,unwrap(angle(h)));grid;
axis([0 3.5 -4 200]);

运行后结果不理想,不知道是否应该用信号处理工具箱的函数进行编程?
发表于 2006-9-7 22:07 | 显示全部楼层
好像我理解错了,
按照我的思路的话,你给出的公式应该是S域的,你把你的公式转换到S域,再用我上面的思路,应该就可以了!
Bode应该可以啊,你就是求幅频响应吗!按我的程序运行后的图形,看起来是思路应该没有问题.
 楼主| 发表于 2006-9-8 10:11 | 显示全部楼层
非常感谢你的耐心回帖。我是想要z域的幅频响应图,其结果应该是跟附件中的差不多,麻烦帮忙看一下,多谢!

幅频图

幅频图
 楼主| 发表于 2006-9-8 10:15 | 显示全部楼层
我可以用什么函数直接求出传递函数分子分母的系数吗?看到你程序得到的分子分母系数(很想也这样求出我需要的分子分母系数)。在Z域是不是就不同了?因为我用了你给出程序里面的系数得出的图不对。我不知道是不是系数不对,麻烦了,谢谢!
发表于 2006-9-8 16:53 | 显示全部楼层
我今天好好想了下,感觉我那个程序应该是可以的!幅频响应可以用控制工具来做!
我认为:你好好看你的问题,可能问题本身有问题!同时,你的数据是不是再检验一下!
要不你把你的问题完整的贴出,或发个邮件,一起探讨!(2000cqs@163.com)
 楼主| 发表于 2006-9-8 18:06 | 显示全部楼层
你好,我将详细点的说明已发到你的邮箱,多谢指教!
发表于 2006-9-9 22:43 | 显示全部楼层
我用freqz(b,a);将系数编程求出的,就是分子分母都累加和形式!
图形如下:对否?

tu

tu
 楼主| 发表于 2006-9-11 09:32 | 显示全部楼层
你好:从图看应该是对的,能给我程序参考一下吗,多谢!
发表于 2006-9-11 14:33 | 显示全部楼层
哈哈,不给哦,花了我一个晚上,更是让我生气了是:简单方法没有试出来,只能用笨方法,所以这个东西不能见人的哦!
你好像也已经做出来了吧!
 楼主| 发表于 2006-9-11 14:58 | 显示全部楼层
我得出了一些系数但是得出的形式是元胞数组,我不会用里面的数据,能否指点下。
 楼主| 发表于 2006-9-11 17:18 | 显示全部楼层
我用自己求出的系数笨笨的代进去也没有得出好的结果

错图

错图
发表于 2006-9-11 18:49 | 显示全部楼层
对形式是元胞数组,可用这样的形式来读出num{1,1}
从你的图形上来看,我认为:你把某些项可能丢了,总共有20项累加,请注意!
还有:系数以Z的负次方递增,freqz(b,a);b,a值中的顺序别弄反了!
好运

评分

1

查看全部评分

 楼主| 发表于 2006-9-11 19:40 | 显示全部楼层
谢谢你的回复。

syms z;
[n,d]=numden(transfer1(19));
f1=maple('sort',n,z);
N=maple('degree',f1,z);
N=eval(N);
for j=0:N-1;
    temp=maple('coeff',f1,z,N-j);
    B{1,j+1}={temp};
end
celldisp(B)
f2=maple('sort',d,z);
D=maple('degree',f1,z);
D=eval(D);
for i=0:D-1;
    temp=maple('coeff',f2,z,D-i);
    A{1,i+1}={temp};
end
celldisp(A)


我利用上面的程序求的系数,不知道对不对。其中transfer是H(z)的表达式。结果是以Z的幂降次排序,我用得出的系数画出了上面的图,我也不知道问题在哪里?
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-12-2 19:25 , Processed in 0.071541 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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