bode图怎么绘制

更新时间:2023-07-20 16:38:07 阅读: 评论:0

不过在系统辨识工具箱中有相应的函数能够完成该功能。
应该是invfrqs函数。但这个是由频率响应得到的,所以你的对输入输出信号做傅里叶变换得到频率响应后在用这个函数拟合传递函数。
使用matlab工具箱更为方便和直观:
1. 把u,y信号导入到工作空间里。病人
2. 用ident命令打开matlab系统辨识工具箱,然后点击import data,从新打开界面里导入工作空间的数据。然后可以通过图形查看该输入输出信号,或者在proprocess进行信号预处理。
3. 根据你的模型在estimate里选择linear parameter models,个人觉得你应该选择ARX结构,确定阶数,然后进行估计。
4. 在主界面里查看估计模型,并且可以和实际输出比较,看看拟合度。

详细使用方面参考 帮助文档 System Identification Toolbox Ur's Guide
也只能是拟合吧,拟合的目标也只能是有限的一些典型传递函数。
做过这个,就是拟合吧
三个字网名
在sisotool工具里放置合适的零极点,尽量使曲线吻合,得到传递函数
我是大概知道实测的曲线的零极点分布的,然后去拟合的,这样好做点
如果已经得到Bode plot,就幅度vs频率,相位vs频率曲线,根据+/-20db/dec,+/-40db/dec渐近线先预测几个pole,zero,double pole double zero,然后再去近似了。睛天
还有几个比较困难的地方是:
1)实际系统引入的杂散参数和群延迟特性,才是拟合和预测的难点。
2)实际测量时仪器已经采用了离散化的数字处理手段,还有测量系统处理误差和测量时注入的扰动幅度所引起的误差,对低频还好,对高频都是很大的影响。
3)所以目前已有的模型,多是对1/2开关频率之前的预测,V2等新模型有所改进,但是还是有其局限性
以我测试的为例吧, 
大二学生R=1e3; C=1e-7; L=0.1; Rl=1000;

magdb_LCR=zeros(1,1e5);% -sL-R-|(1/sC)
mag_LCR=zeros(1,1e5);
pha_LCR=zeros(1,1e5);


freq=(1:1e5);
RCplot=zeros(1,1e5);
LCRplot=zeros(1,1e5);
for f=1:1:1e5 
LCR=1/((1i*2*pi*f)^2*L*C+1i*2*pi*f*C*Rl+1);
LCRplot(f)=LCR;
mag_LCR(f)=abs(LCR);
magdb_LCR(f)=20*log10(abs(LCR));
pha_LCR(f)=angle(LCR)*180/pi;
end


我用上方的函数写一个已知的传递函数,生成对应频率下的幅值和相位。频率响应曲线如下,需要注意的是,幅值的纵坐标不是dB原始农耕生活。
 




然后在tool box中导入数据,得到一个确定零点和极点个数的传函。在command window里,我是用zpk函数来查验拟合的结果。结果如下: 
七星草zpk(arx21)

Zero/pole/gain from input "u1" to output "y1":
都是月亮惹的祸歌词100000000
----------------------
(s^2 + 1e004s + 1e008)


拟合得到的结果与测试用的传递函数完全一致。但是比较麻烦的是在拟合之前,需要先确定传函的零极点个数,可能是因为我选择sampling interval是0(continuous system)而不是discrete time system。选择后者的话,可以让tool box自行选择合适的阶数。
在matlab里可以用[Mag,Pha]=bode(sys)得到频率响应的数据点。
用matlab来拟合高阶的传递函数比较容易出错

本文发布于:2023-07-20 16:38:07,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1107189.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:拟合   系统   得到
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图