跪求一个matlab 求取瞬时振幅频率和相位的程序么,输入一个信号,输出这三个,谢谢

跪求一个matlab 求取瞬时振幅频率和相位的程序么,输入一个信号,输出这三个,谢谢,第1张

我最近也在做这个,我用的是1kHz单频正弦波

unwrap的作用是解卷绕

没用unwrap函数时,瞬时相位是这样的

加上unwrap函数之后是这样的

fs=80是你信号的采样频率

xhd1=fs*diff(xh1)/(2*pi)是要求信号的瞬时频率,就是瞬时相位的导数

前面乘fs是为了跟实际频率对应上

不乘fs是这样的

纵轴频率对应的不是1kHz,但是乘了fs就变成下面这样,纵轴频率就是实际频率了

想换别的信号,就把xn换成你想改的信号,再根据你的采样频率改一下fs就行了

相位编程就是相对定位指令也就是DRVI

(D)DRVI(P) S1. S2. D1. D2.

S1.:输出脉冲

S2.:输出脉冲频率

D1.:输出脉冲端口

D2.:指定选装方向端口

1、可调脉冲输出指令PLSV

为任意时间可变速指令,可以实时改变脉冲频率的指令,在指令中可以设置脉冲的实时频率、发出脉冲的输出点,和方向点(如用于手动前进或后退)。但是不能设置发出脉冲的总数,也就是不能通过指令定位,如果需要不是很精准的定位可以在使用高速点的时候用脉冲计数器和目标值做一个比较,但是会在PLC的每个扫描周期比较一次,所以会超出一些脉冲。

程序例:︱-----︱︱-----------(PLSV D300 Y000 Y003)

2、绝对定位指令DRVA和相对定位指令DRVI

输出只能应用于高速点。他们的指令表现形式基本一致,在它们的指令中可以设置脉冲总数、脉冲频率、脉冲的发出点和方向点。

高速脉冲点的特点就是他们有自己的脉冲计数寄存器,也就是不管通过上述哪个指令发出脉冲,高速点会有以一个特定的寄存器记录所发出的脉冲数,包括正向的和反向的,可作为运动控制中每个轴的坐标。

上海PLC培训-以上两个指令不同之处就是:DRVA是绝对记录脉冲式的,它的脉冲总数实际是它要到达的目标值,也就是和各高速点的计数寄存器相匹配,例如,当你输入脉冲目标值为20000,而你高速点的计数寄存器中是30000,这时它会朝着反向发出10000个脉冲;而DRVI指令却不同,它不管高速点计数器中的脉冲坐标值,它会向正方向运行20000个脉冲,因而成为相对脉冲指令。

程序例:︱-----︱︱-----------(DRVA D1000Z6 D2000Z6 Y000 Y003)

程序例:︱-----︱︱-----------(DRVI K400 K400 Y000 Y003)

3、原点复位指令ZRN是三菱PLC的原点回归指令。应用指令编号是156,前面加D表示32位。快到原点位置时触发一个接近开关,当工作台运行到近零点时,收到接近开关触发信号后减速到一个很低的速度继续向前走(避免机械冲击)。在低速状态下等待伺服驱动器内置编码器发来原点脉冲。收到脉冲后停止行走。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/11761150.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存