图像缩略图

有渐近线的波德图

版本1.2.0.2(3.41 KB)通过 特隆德·安德烈森
有渐近线的波德图

197下载

更新2020年9月22日

查看许可证

函数asymp()对应于bode(),但它也绘制了幅度和相位图的渐近线。相位渐近线仅是水平和垂直的。
asymp()只接受SISO传递函数。
如果传输功能也有一个延时,延时被忽略
求相位渐近线。
asymp()可以以两种方式被称为仅asymp(h)中,或asymp(H,WMIN,WMAX)。

引用作为

Trond安德森(2020)。有渐近线的波德图(//www.tatmou.com/matlabcentral/fileexchange/10183-bode- plot-with-渐近线),MATLAB中央文件交换。检索

意见及评分(45

特隆德·安德烈森

克丽丝霍夫曼。尝试更新版本,希望错误被修复。谢谢!

克里斯·霍夫曼

在某些情况下,相位计算不正确。用asymp和bode检测MySys = tf([1 00],[1 20 100]);对于asymp,这个阶段从-180开始,对于Matlab的波德,这个阶段从180开始。

Shaidul Ekram

如何添加这个文件到MATLAB软件?

内特城堡

工作得很好。我遇到的唯一问题是,当我把它放在子图中时,它没有正确地显示。

安迪常

托马斯·潘多尔菲

Punyaphad Dachanabhirom

乔恩Walderhaug

特隆德·安德烈森

对不起,刚才看到你的更正。同样的,当频率为1 rad/s时,asymp(.)和bode(.)都给出了amp = 0dB。

对不起,我的意思是1弧度/秒,必须有0 dB增益

这是我测试的传递函数为:

num = -999.9000 e - 003;
穴= [9.9990 e + e - 009 1.0000 000 0.0000 e + 000];
H = TF(NUM,书房);
asymp(H,2 * PI * 1E-3,62.8319e + 009);

这是一个视频表示当我最大化该图中,x轴刻度标签不对应于正确的值(0弧度/秒必须具有0 dB增益)

https://youtu.be/1Dm0kcWD6pQ

特隆德·安德烈森

我是这个节目的作者。你能告诉我你用了哪个传递函数导致x轴标错了吗?那我自己检查一下。

真棒功能,伯德图的学习非常有用,非常感谢,但是在2017年MatLab中时,一个人影是在图窗口中的x轴刻度标签不符合实际的位置打开实时编辑。

亚历山德罗Ballio

真棒!

石石

何塞普GUASCH

何塞普GUASCH

很有用!!!

非常好用,谢谢。

特隆德·安德烈森

从尚塔尔·穆勒重新错误信息:
如果H(S)= NUM​​(S)/旦(S),传递函数必须有度(NUM)<=度(DEN),即是适当的或严格正确。

罗伯特·斯坦格尔

建议改进:添加了网格线。查找MATLAB的“bode.m”所有呼叫,并添加“网格”。

罗伯特·斯坦格尔

自动完成错误:“asymptotic.m”应该是“asymp.m”。

尚塔尔MULLER

太棒了!
但我不明白为什么功能无法情节:
H1 = 1 + s / 10
H2 = 1 s / 10
wheareas有S无PB有:
H7 = (10 * s ^ 2 + 5 * s + 10) / (1 + s / 10)
我认为有一个约束d°(den)< d°(num),但H7工作。
无论如何,感谢您的功能等,也许对你有所帮助。

尼科Sjursen

Ed特区

布丽特妮张伯伦

Ostheer

良好的工作,谢谢

特隆德·安德烈森

我是这个函数的作者。它同样适用于其他评论者给出的反例。

目的Dulay

拉斐尔Crepaldi

马科斯·冈萨雷斯

Yngve

渐近线并不在此带阻滤波器角度工作:

>> H = TF([1 0 4000 * 16000],[1 + 4000 4000 16000 * 16000])

传递函数:
秒2 + 6.4e007
-----------------------
s^2 + 20000 s + 6.4e007

> > asymp (H)

(也许是因为在带阻频率的突然180度相移)

除此之外,这个节目很精彩

罗伯特·斯坦格尔

这个简单的测试是行不通的:
F11 = -1.2794;
F12 = -7.9856;
F22 = -1.2709;
[f11 f12;1 f22];
G = [-F12; 0];
Hx = [10];
B22 = INV(-Hx * INV(F)* G)
sys = ss(F, G*B22, Hx,0);
数字
步骤(SYS),网格
数字
博德(SYS),网格
数字
asymp(系统)

Moussab Bennehar

Moussab Bennehar

你是一个Geeeeeeeeeeenius
真的,很棒的m文件
感谢名单

罗伯特。

我需要帮助...口口声声说错误在asymp 19

纳比尔al-hadawy

******* 谢谢 **********
这是函数(asymp.m)很漂亮

约翰·巴布丝

好东西。谢谢!

约瑟夫Birbiglia

非常好,但也有以下的传递函数的错误:

G (s) = (s ^ 2 + 1) / (s * (s ^ 2 + 4))

---------
???使用==错误>结肠
超过程序允许的最大可变大小。

误差在==> asymp在147
设置(获取(gcf CurrentAxes), YTick, magmin: ydelta: magmax);
----------------

Trung Duong

它的工作。不错的工作

特隆德·安德烈森

我asymp的作者()。问题报道由安东Cervin酒店已得到修复。请告诉我,如果问题仍然存在。

安东Cervin

这似乎并不奏效。

>> G =(S + 1)/(S *(S + 10))

传递函数:
S + 1
----------
秒2 + 10秒

>> asymp(G)
???使用错误==>轴
无效的对象句柄。

误差在==> asymp在120
轴(h);

Zain Gurraya

汪东城Doke

类似的提交:

//www.tatmou.com/matlabcentral/fileexchange/loadFile.do?objectId=2664&objectType=file

我希望在顶部有一个更全面的帮助文本。代码有很好的文档记录。有一些编码风格可以更好(例如while循环)。既然你在画渐近线,也许函数可以返回断点频率和渐近线对应的斜率。它可以具有与BODE相同的行为,即如果没有输出,那么它将创建一个绘图,如果有输出,那么它将不创建绘图。

更新

1.2.0.2

一些调试时忘记的逗号又变成了分号

1.2.0.1

错误有时-360度相位校正除去

1.2.0.0

只是稍微编辑一下描述

1.2.0.0

修正了兼容新版本的Matlab的

1.2.0.0

用Matlab 2015年兼容

1.0.0.0

错误修复。

修正错误:一个审稿人指出某个传递功能在当前版本中不工作。

MATLAB版本兼容性
创建与R2015b
与任何版本兼容
平台兼容性
窗户 macOS Linux的
致谢

启发:控制系统-波德图