扫频法

输入单一正弦信号,经过已知传递函数,得到输出结果,扫频法画出传函bode图

记录一下困扰很久的扫频法 明明很简单 但是 碍于没有接触过 不知道实现步骤 兜兜转转了很久 摸索出来 记录一下扫频法的实现步骤
1、模型(传函是可以改变的,只记录具体步骤,数据可能不对)
在这里插入图片描述

2、参数设置
在这里插入图片描述

3、把输入输出数据导入到工作空间
在这里插入图片描述
4、双击msine(也就是输入信号),nsine(也就是输出信号),显示数据
在这里插入图片描述
5、选择计算的区间

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
6、计算
根据y=Asin(wt+pha),其中A是幅值,pha是相位,w=2pi/T,T=(白色箭头2-白色箭头1)
如果设y=A,也就是sin(wt+pha)=1,<<<<<<<<wt+pha=(14+pi/2),<<<<<<<<<(2pi/T)*t+pha=(14+pi/2);其中14是选择的周期,t是在该周期内取最大值的时刻,即可以求出pha
7、循环
通过改变输入信号的频率
在这里插入图片描述
获得同一个区间(14)上的最大值,也就是幅值,记为A;也可以获得取最大时刻的时间t,根据步骤6的计算过程,可以求出对应的相位,也就是pha。(每一个频率计算出一个幅值和一个相位,通过变化频率,获得不同幅值和相位,分别带进程序的c和w)
把获得的不同的幅值,相位带进如下程序,就可以得到通过扫频法获得的传函的bode图

%幅度
c=([1.0901 1.8655 1.8928 0.9969 0.5457 0.3398 0.2316]);
%相位
w=[-3761/314 -167/14 -223/18 -177/14 -817/62 -651/50 -77/6]*pi;
%下面这行注意去掉(加上)点乘,和矩阵的运算有关
H=c.exp(sqrt(-1)w);
%频率
x1=[1 5 10 15 20 25 30];
%换成单位是rad/s
%x=2
pi
x1;
%换成单位是dB

yy=20*log10(x1);
%拟合传函,你可以help invfreqs看看这个函数怎么用
%invfreqs里面的1,3分别是分子分母的阶数
%[]和13是使得拟合出的传函是稳定的
%13是迭代次数(尽量高,但高了也可能跑不出来)
[num,den]=invfreqs(H,x1,1,3,[],13);
G=tf(num,den);
figure(99)
bode(G)

  • 8
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值