大数跨境
0
0

matlab中基于传递函数或者状态方程的幅频特性分析

matlab中基于传递函数或者状态方程的幅频特性分析 智慧海洋公众交流平台
2022-01-27
2
导读:matlab中基于传递函数或者状态方程的幅频特性分析

来源:CSDN博客,作者:我不是瓜皮。

1
已知传递函数,求出幅频特性。

随便举一个传递函数为

在matlab中写入代码如下。


代码有两种写法,一种是直接写传递函数的表达式,简单粗暴。tf 其实就是transfer  function的缩写,即传递函数。



s=tf('s');

G=(s^2+1)*(s^2+s+1)/((s+1)*(s^2+5*s+7));

bode(G);

grid

xlabel('频率f');title('   ');


另一种写代码的方法:



num=conv([1,0,1],[1,1,1]);

den=conv([1,1],[1,5,7]);

bode(tf(num,den));

grid

xlabel('频率f');title('   ');

这里conv命令就是将分子分母的因式乘出来,然后按照s的幂次降序得到num den 两个一维矩阵,num=[1,1,2,1,1],den=[1,6,12,7]。再直观一点说,这时候

此时,tf (num, den) 和第一种中的G 就是等价的。运行得:


有的时候我们不需要bode图中的相角图,只想要频率图,只需要将bode(G) 换成



h = bodeplot(G);

setoptions(h,'FreqUnits','Hz','PhaseVisible','off');

得出来:

2
已知状态方程,求幅频特性

对于一般的状态方程

传递函数G=Y/U



[num,den]=ss2tf(A,B,C,D)

这里求出的num den 与上述的一样,只不过此时的传递函数就取决于你所设定的Y 有几个输出量了,如果Y 有三个量,那么,num 和den 将会是三维矩阵,对应着三个传递函数,剩下的工作就和上面的一样了。


至于将传递函数转成状态方程,就是上面的逆过程 [A,B,C,D]=tf2ss(num,den)。不过我目前还没用到,因为我觉得根据自己所需要的状态变量最后得出的状态方程会不一样,用matlab中求出的状态空间只是其中一种。


原文链接:

https://blog.csdn.net/akirattc/article/details/80542692

声明:本公众号相关内容均来自主流媒体及公众号,非商业用途,并不意味着赞同其观点或证实其内容的真实性。版权归原作者所有,如有发现侵犯您的权益,请后台联系编辑,我们会尽快删除相关侵权内容。

【声明】内容源于网络
0
0
智慧海洋公众交流平台
我们旨在给对智慧海洋感兴趣的朋友提供一个相互交流学习的平台!这里汇聚了来自海洋领域的顶级专家、计算机通信高手、各大著名研究机构学者以及奋斗在海洋产业化一线的管理、研发、销售人才……欢迎大家随时随意交流,共同促进智慧海洋事业的快速发展!
内容 928
粉丝 0
智慧海洋公众交流平台 我们旨在给对智慧海洋感兴趣的朋友提供一个相互交流学习的平台!这里汇聚了来自海洋领域的顶级专家、计算机通信高手、各大著名研究机构学者以及奋斗在海洋产业化一线的管理、研发、销售人才……欢迎大家随时随意交流,共同促进智慧海洋事业的快速发展!
总阅读1.7k
粉丝0
内容928