函数asymp()对应于bode(),但它也绘制幅度和相位图的渐近线。相渐近线只有水平和垂直。
ASYMP()只接受SISO传输功能。
如果传递函数也有时间延迟,则忽略时间延迟
对于相渐近线。
可以仅以两种方式调用ASYMP(),ASYMP(H)或ASYMP(H,WMIN,WMAX)。
Trond Andresen(2021)。用渐近线绘制伯德图(//www.tatmou.com/matlabcentral/fileexchange/10183-bode-plot-with-asymptotes), MATLAB中央文件交换。检索。
Fausto指出,在函数的最底部,一行“set(gca, 'XTickLabel',x);”导致x轴标记混乱。如果我注释掉“将频率轴转换为十进制数”小节中的代码以删除该功能,那么该轴似乎被正确地标记了。
克丽丝霍夫曼。尝试更新版本,希望错误是固定的。谢谢!
在某些情况下,相位计算不正确。try asymp and bode for MySys = tf([1 00],[1 20 100]);相位开始于-180为不对称,开始于180为Matlab的波德。
如何将此文件添加到MATLAB软件?
工作得很好。我遇到的唯一问题是,当我将其置于副图中时,它不能正确显示。
对不起,刚才看到你的更正了。但是这里也是一样的,在频率q = 1 rad/s时,asymp(.)和bode(.)都给出amp = 0dB。
对不起,我的意思是1 rad / s必须有0 dB增益
这是我测试的传递函数:
num = -999.9000 e - 003;
穴= [9.9990 e + e - 009 1.0000 000 0.0000 e + 000];
H = TF(NUM,DEN);
ASYMP(H,2 * PI * 1E-3,62.8319E + 009);
这是一个视频显示,当我最大化图形时,Xaxis刻度标签不对应于右值(0 rad / s必须具有0 dB增益)
https://youtu.be/1dm0kcwd6pq.
我是这个节目的作者。福斯托,你能告诉我你用的哪个传递函数导致了错误的x轴标记吗?那我就亲自检查一下。
令人敬畏的函数,非常有用,在Bode图的学习中,非常感谢,但是在Matlab 2017 Live Editor时,数字在图形窗口中打开时,X轴滴答标签不对应真实位置。
惊人的!
很有用!!!
很好用,谢谢。
从Chantal Muller重新错误消息:
如果h(s)= num(s)/ den(s),则传递函数必须具有学位(num)<= degres(deN),即适当或严格正确。
建议改进:添加网格线。查找所有呼叫Matlab的'Bode.m',并添加',网格'。
自动完成错误:'渐散体,“渐近”是“渐近”。
太棒了!
但我不明白为什么这个功能无法绘制:
H1 = 1 + s / 10
H2 = 1 s / 10
Wheareas没有PB:
H7 = (10 * s ^ 2 + 5 * s + 10) / (1 + s / 10)
我在想有一个约束d°(den)< d°(num),但H7工作。
无论如何,谢谢你的功能et,也许是为了你的帮助。
良好的工作,谢谢
我是这个功能的作者。它也适用于其他评论者给出的反例。
渐近不适用于此BandStop-Filter中的角度:
>> H = TF([1 0 4000. * 16000],[1 4000 + 16000 4000. * 16000])
传递函数:
s ^ 2 + 6.4e007
---------------------
S ^2 + 20000s + 6.4e007
> > asymp (H)
(也许是因为突发的180度相位频率在带号频率上)
除此之外,这个节目很精彩
这并不适用于这个简单的测试:
F11 = -1.2794;
F12 = -7.9856;
F22 = -1.2709;
F = [f11 f12;1 f22];
g = [-f12; 0];
Hx = [1 0];
b22 = inv(-hx * inv(f)* g)
drawtext (F, G*B22, Hx,0), '买进'),coloryellow;
数字
步骤(sys),网格
数字
BODE(SYS),网格
数字
asymp(系统)
你是一个Geeeeeeeeeeenius
真的,很棒的m文件
thanx.
我需要帮助......它一直在19
******* 谢谢 **********
这是功能(渐少数)非常好
好东西。谢谢!
非常好,但以下传输功能存在错误:
G (s) = (s ^ 2 + 1) / (s * (s ^ 2 + 4))
---------
???使用==>冒号出错
超出了程序允许的最大可变大小。
==> Asymp在147时出错
设置(获取(gcf CurrentAxes), YTick, magmin: ydelta: magmax);
----------------
它的工作。不错的工作
我是Asymp()的作者。Anton Cervin报告的问题现已修复。请告诉我是否仍然存在问题。
这似乎不起作用。
>> G =(S + 1)/(S *(S + 10))
传递函数:
S + 1
----------
s ^ 2 + 10 s
>> Asymp(g)
???使用==>轴错误
无效的对象句柄。
==> ASYMP在120时出错
轴(h);
类似的提交:
//www.tatmou.com/matlabcentral/fileexchange/loadFile.do?objectId=2664&objectType=file
我希望在顶部有一个更全面的帮助文本。代码有很好的文档记录。有些编码风格可以做得更好(比如while循环)。既然你正在绘制渐近线,也许函数可以返回破断频率和相应的渐近线斜率。它可以具有与BODE相同的行为,即如果没有输出参数,那么它将创建一个绘图,如果有输出,那么它将不创建绘图。