单相锁相一般是用过零锁相
通过硬件电路判断电压,前一次是小于0,后一次是大于0判断为零点,然后发出高电平,捕捉到高电平开始计数
正半周为高电平,负半周为低电平,计数到下一次过零点的时候,再将计数器清零
设采样输入电压时间间隔为Ts,一个周期内将Ts累加即可得到时间t,t×ω即为采样电压的相位,当到下一次清零的瞬间t×ω=2Π
(个人认为ω可通过计算两次过零点的时间T,计算得出ω=T/2Π,正常电网为100Π,即f=100Hz)
上图为Matlab控制框图,当采样过零点时开始累加Ts,并乘以100Π得到相位
第三行蓝色的为输入信号,黄色是锁相环计算得出信号
上图试图让输入信号sinωt之后Π/3,即sin(ωt-Π/3),可以看到没数到2Π就清零,清零后就锁上了。