单相锁相环原理与代码实战解释

单相锁相环程序原理如下图所示

在这里插入图片描述

单相锁相环原理

锁相环(PLL)是一种常用于同步、解调和信号处理等领域的电路或数字算法,其主要作用是将一个输入信号的相位与频率与参考信号进行精确的匹配。这里我们来简单解释一下单相锁相环的原理和分析。

在单相锁相环中,输入信号为单相交流电压,锁相环的目标是输出一个与输入信号始终同步的相位角度。整个锁相环的工作原理可以简化为三个主要模块:相位检测器、低通滤波器和控制器。

相位检测器(phase detector)是锁相环中的第一个模块。它的主要作用是比较输入信号和参考信号的相位差异,并将相位差转换为电压信号。在单相锁相环中,我们可以使用倍频相位检测器(倍频锁相环),其中输入信号和参考信号是通过倍频器相乘来匹配的,这样计算相位差就变得比较容易。

低通滤波器(low-pass filter)的作用是去除相位差信号中的高频噪声成分,使锁相环的输出更加平滑。在单相锁相环中,通常使用一个简单的RC低通滤波器来实现这个功能。

控制器(controller)是锁相环中的最后一个模块。它的主要作用是根据相位差信号来调整输出信号的相位。在单相锁相环中,我们可以使用一个PID控制器来实现这个功能,它会根据相位差的大小和变化率来调整输出信号的相位,以使其与输入信号同步。

总体来说,单相锁相环的原理比较简单,但是它只能实现输入信号与参考信号之间的相位匹配,并不能对信号频率进行彻底的锁定。因此,在实际应用中,我们需要使用更加复杂的锁相环结构来实现更高精度的信号锁定。

单相锁相环程序源代码

以下是一个简单的单相锁相环程序,使用函数实现,输入电压Ui,输出相位角Sita,采样频率为20kHz。


#include <stdio.h>
#include <math.h>// Constants
const float sampling_freq = 20000.0;  // Sampling frequency in Hz
const float omega_grid = 2 * M_PI * 50.0;  // Grid frequency in rad/s (50Hz)
const float kp_pll = 10.0;  // Proportional gain for PLL
const float ki_pll = 100.0; // Integral gain for PLL
const float ts = 1.0 / sampling_freq; // Sampling time// Variables
float v_in;  // Input voltage
float theta_pll = 0.0;  // Phase angle of PLL
float sin_pll = 0.0;  // Sine component of PLL output
float cos_pll = 1.0;  // Cosine component of PLL output// Functions
void calculate_pll(void);int main()
{while (1){// Read input voltage from sensorv_in = read_voltage_S();// Calculate PLL anglecalculate_pll();// Output resultprintf("PLL angle: %.2f\n", theta_pll);}return 0;
}void calculate_pll(void)
{float v_d, v_q, theta_err;v_d = v_in;v_q = 0.0;theta_err = omega_grid * ts;theta_pll += kp_pll * theta_err + ki_pll * theta_err * ts;sin_pll = sin(theta_pll);cos_pll = cos(theta_pll);
}

锁相的仿真输出结果:锁相位置为90度角位置
在这里插入图片描述

在上述程序中:

read_voltage_S() 用于读取输入电压,可以根据自己的实际情况进行修改。
calculate_pll 函数接收输入电压,根据电网频率和PID参数输出相位角度。
需要注意的是,由于单相锁相环不存在三个相电压输入,所以只需使用一个输入电压进行计算。

在主函数中,我们反复调用上述函数来模拟单相锁相环。我们输出的是当前的相位角度,以便我们可以使用调试工具可视化相位锁定的结果。

在实际应用中,也需要对输出角度进行处理,例如将其进行低通滤波或者进行平均计算,以获得更可靠的结果。

改进的锁相环程序如下图

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/11198.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在线平面设计工具盘点,提升效率首选

在移动应用程序或网页UI设计项目中&#xff0c;在线平面图工具是必不可少的。市场上的在线平面图工具绘制软件丰富多样&#xff0c;层出不穷。作为一名UI设计师&#xff0c;有必要了解哪些在线平面图工具既简单又专业。本文将分享6种在线平面图工具&#xff0c;每种在线平面图工…

【程序人生】如何在工作中保持稳定的情绪?

前言 在工作中保持稳定的情绪是现代生活中一个备受关注的话题。随着职场压力和工作挑战的增加&#xff0c;我们常常发现自己情绪波动不定&#xff0c;甚至受到负面情绪的困扰。然而&#xff0c;保持稳定的情绪对于我们的工作效率、人际关系和整体幸福感都至关重要。 无论你是…

JavaEE——SpringMVC中的常用注解

目录 1、RestController &#xff08;1&#xff09;、Controller &#xff08;2&#xff09;、ResponseBody 2、RequestMappping &#xff08;1&#xff09;、定义 &#xff08;2&#xff09;、使用 【1】、修饰方法 【2】、修饰类 【3】、指定方法类型 【4】、简化版…

大数据面试题之Elasticsearch:每日三题(六)

大数据面试题之Elasticsearch:每日三题 1. 为什么要使用Elasticsearch&#xff1f;2.Elasticsearch的master选举流程&#xff1f;3.Elasticsearch集群脑裂问题&#xff1f; 1. 为什么要使用Elasticsearch&#xff1f; 系统中的数据&#xff0c;随着业务的发展&#xff0c;时间…

SpringCloudAlibaba微服务实战系列(四)Sentinel熔断降级、异常fallback、block细致处理

SpringCloudAlibaba Sentinel降级和熔断 接着上篇文章的内容&#xff0c;在Sentinel中如何进行降级和熔断呢&#xff1f; 熔断降级规则 降级规则 在Sentinel中降级主要有三个策略&#xff1a;RT、异常比例、异常数&#xff0c;也是针对某个资源的设置。而在1.8.0版本后RT改为…

如何做好项目管理?年薪百万项目大佬一直在用这11张图!

日常工作中&#xff0c;我们会遇到各种大大小小的工作项目&#xff0c;如何能让项目保质保量的完成&#xff0c;就需要项目管理。项目管理是什么&#xff1f;一句话解释&#xff1a;在有限的时间内&#xff0c;在约束的范围中&#xff0c;集合有限资源来完成项目目标。 本周小编…

【深度学习】从现代C++中的开始:卷积

一、说明 在上一个故事中&#xff0c;我们介绍了机器学习的一些最相关的编码方面&#xff0c;例如 functional 规划、矢量化和线性代数规划。 本文&#xff0c;让我们通过使用 2D 卷积实现实际编码深度学习模型来开始我们的道路。让我们开始吧。 二、关于本系列 我们将学习如何…

大学的python课程一般叫什么,大学开设python课程吗

大家好&#xff0c;小编为大家解答大学的python课程一般叫什么的问题。很多人还不知道大学python课有没有听的必要&#xff0c;现在让我们一起来看看吧&#xff01; 1、华中农业大学python期末考试会考原题吗 华中农业大芦如学python期末考试不会考原题。华中农业搜侍大学pyth…

OpenCV图像处理-图像分割-MeanShift

MeanShift 1. 基本概念2.代码示例 1. 基本概念 MeanShift严格说来并不是用来对图像进行分割的&#xff0c;而是在色彩层面的平滑滤波。它会中和色彩分布相近的颜色&#xff0c;平滑色彩细节&#xff0c;侵蚀掉面积较小的的颜色区域&#xff0c;它以图像上任意一点P为圆心&…

CSS :nth-child

CSS :nth-child :nth-child 伪类根据元素在同级元素中的位置来匹配元素. CSS :nth-child 语法 值是关键词 odd/evenAnB最新的 [of S] 语法权重 浏览器兼容性 很简单的例子, 来直觉上理解这个伪类的意思 <ul><li class"me">Apple</li><li>B…

MySQL 服务器的调优策略

点击上方↑“追梦 Java”关注&#xff0c;一起追梦&#xff01; 在工作中&#xff0c;我们发现慢查询一般有2个途径&#xff0c;一个是被动的&#xff0c;一个是主动的。被动的是当业务人员反馈某个查询界面响应的时间特别长&#xff0c;你才去处理。主动的是通过通过分析慢查询…

在Microsoft Excel中如何快速合并表格

在 Excel 中分析数据时&#xff0c;在一个工作表中收集所有必要信息的频率是多少&#xff1f;几乎从来没有&#xff01;当不同的数据分散在许多工作表和工作簿中时&#xff0c;这是一种非常常见的情况。幸运的是&#xff0c;有几种不同的方法可以将多个表中的数据组合成一个表&…

垃圾回收之三色标记法(Tri-color Marking)

关于垃圾回收算法&#xff0c;基本就是那么几种&#xff1a;标记-清除、标记-复制、标记-整理。在此基础上可以增加分代&#xff08;新生代/老年代&#xff09;&#xff0c;每代采取不同的回收算法&#xff0c;以提高整体的分配和回收效率。 无论使用哪种算法&#xff0c;标记…

C# OpenCvSharpe 二值化工具 阈值 自适应阈值 局部阈值 InRange

效果 阈值 自适应阈值 局部阈值 InRange 项目 VS2010.net4.0OpenCvSharper3 Demo下载

AWS / VPC 云流量监控

由于安全性、数据现代化、增长、灵活性和成本等原因促使更多企业迁移到云&#xff0c;将数据存储在本地的组织正在使用云来存储其重要数据。亚马逊网络服务&#xff08;AWS&#xff09;仍然是最受追捧和需求的服务之一&#xff0c;而亚马逊虚拟私有云&#xff08;VPC&#xff0…

LED芯片 VAS1260IB05E 带内部开关LED驱动器 汽车硬灯带灯条解决方案

VAS1260IB05E深力科LED芯片是一种连续模式电感降压转换器&#xff0c;设计用于从高于LED电压的电压源高效驱动单个或多个串联连接的LED。该设备在5V至60V之间的输入电源下工作&#xff0c;并提供高达1.2A的外部可调输出电流。包括输出开关和高侧输出电流感测电路&#xff0c;该…

趋动科技携手星辰天合,推出针对人工智能领域的两款联合解决方案

近日&#xff0c;趋动科技与 XSKY星辰天合联合宣布&#xff0c;结合双方优势能力和产品&#xff0c;携手推出高性能数据湖一站式方案及全协议存算一体化方案&#xff0c;帮助客户简化 AI 工作的 IT 基础设施部署&#xff0c;实现 AI 相关工作更加灵活和便捷。 全协议存算一体化…

janus-Gateway的服务端部署

janus-Gateway 需求是前后端的webRTC推拉流&#xff0c;但是后端用的是c&#xff0c;于是使用了这个库做视频流的推送和拉取&#xff0c;记录踩坑过程。 如果你也需要自己部署janus的服务端并在前端拉流测试&#xff0c;希望对你有所帮助。 由于janus的服务器搭建需要linux环境…

向npm注册中心发布包(上)

目录 1、创建package.json文件 1.1 fields 字段 1.2 Author 字段 1.3 创建 package.json 文件 1.4 自定义 package.json 的问题 1.5 从当前目录提取的默认值 1.6 通过init命令设置配置选项 2、创建Node.js 模块 2.1 创建一个package.json 文件 2.2 创建在另一个应用程…

5G时代的APP开发:机遇与挑战

APP开发是互联网行业中的重要组成部分&#xff0c;随着5G时代的到来&#xff0c;移动 APP开发也迎来了新的机遇和挑战。 5G时代不仅会为移动 APP开发带来新的发展机遇&#xff0c;也会给移动 APP开发带来新的挑战。对于企业和开发者而言&#xff0c;5G时代带来的机遇和挑战是并…