三相锁相环仿真与代码设计

news2024/9/24 9:26:46

文章目录


锁相环是锁住正弦电压波形的0度位置还是90度位置,欢迎大家参与讨论?

三相锁相环原理分析:
在这里插入图片描述
这里没有把Vq与零做差,PI控制器的参数应该负的。

首先对电网电压进行Clark 变换( abc→αβ)和Park 变换( αβ–dq)变换,即将三相静止abc 坐标系的电压变量变换成两相同步旋转dq坐标系的电压变量,这种变换的优势在于能将三相静止abc坐标系的中正弦量变换成两相同步旋转d坐标系中的直流量。在同步旋转坐标系中,根据锁相环工作的基本性能要求,即必须使矢量Vpll、V完全重合才能实现相位锁定,显然只要通过闭环控制,使Vq=0即可实现锁相。实际上,在上图所示的结构中,将Vq输人PI调节器,当频率锁定时,Vq必为一直流量,由于PI调节器具有直流无静差调节特性,因此通过对Vq的PI调节,即可使Vq趋于零,从而实现锁相。而将PI调节器的输出与实际电网额定频率相叠加以获得锁相环的输出频率。

首先,在电力系统中,同步控制通常用于控制电力发电机的输出电压和频率,使其与电网保持同步。可以使用PI控制器来实现同步控制。在这个过程中,PI控制器的Kp和Ki参数通常是负的,以达到稳态误差为零的目标。

其次,在同步旋转坐标系中通过闭环控制使Vq=0以实现锁相。这是因为,当中正弦量(Vd)为零时,Vq与电网频率成比例,即Vq=(2/π)f×Vs,其中f是电网频率,Vs是电网电压的峰值。因此,当Vq为零时,电机输出电压的频率和电网频率相等,从而实现同步。

总之,通过PI控制器控制中正弦量(Vd)和垂直正弦量(Vq)可以实现电机输出电压与电网同步。而在同步旋转坐标系中,通过闭环控制使Vq=0可以实现锁相。

以下是三相锁相环的基本闭环控制代码框架。该控制代码是使用C语言编写的,可以在嵌入式系统中应用。

// 电网频率(Hz)
#define GRID_FREQUENCY 50

// 锁相环参数
#define KP 0.1
#define KI 0.01

// 锁相环状态变量
float theta = 0.0;   // 相位偏移
float omega = 0.0;   // 频率偏移
float error = 0.0;   // 相位误差
float integrator = 0.0;  // 积分器

// 锁相环控制器
void pllController(float vd, float vq, float dt)
{
    float vpll, vref, phase;
    float sine, cosine;

    // 计算中正弦量和垂直正弦量的幅值
    float vq_amp = sqrt(vd*vd + vq*vq);
    float vd_amp = 0.0;

    // 计算相位偏移
    phase = theta + GRID_FREQUENCY*2*PI*dt;

    // 计算频率偏移
    omega = theta - KP*error - KI*integrator;

    // 计算中正弦量
    sine = sin(phase);
    cosine = cos(phase);
    vpll = vd*cosine + vq*sine;

    // 输出频率偏移量
    printf("Frequency offset: %f Hz\n", omega);

    // 相位误差计算
    error = atan2(vq, vd);

    // 中正弦量PI控制
    vref = vpll - omega*vq_amp;

    // PI积分器
    integrator = integrator + KI*error*dt;

    // 更新相位偏移
    theta = theta + omega*dt;
}

// 主循环
int main(void)
{
    float vd, vq, dt;

    while(1)
    {
        // 读取中正弦量和垂直正弦量的值
        vd = readAnalogInput(0);
        vq = readAnalogInput(1);

        // 读取采样时间
        dt = readClock();

        // 执行锁相环控制
        pllController(vd, vq, dt);
    }
    return 0;
}
上述代码中,pllController()函数实现了锁相环的基本闭环控制算法。在该函数中,首先计算中正弦量(Vd)和垂直正弦量(Vq)的幅值,并使用这些值计算相位偏移量和频率偏移量。然后,使用PI控制器对中正弦量进行控制,同时更新积分器的值和相位偏移量。

在主函数中,我们将读取中正弦量和垂直正弦量的值,然后调用pllController()函数以执行锁相环控制算法。在实际应用中,可能需要根据具体的应用场景调整锁相环参数和控制算法的参数。

需要注意的是,这只是一个基本的代码框架,实际上在实际应用中,还需要进行很多的参数调整、保护逻辑编写以及硬件接口设计等工作。

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

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

相关文章

计算机二级Python基本操作题-序号45

1. 键盘输入一组水果名称并以空格分隔,共一行。 示例格式如下: 苹果 芒果 草莓 芒果 苹果 草莓 芒果 香蕉 芒果 草莓 统计各类型的数量,从数量多到少的顺序输出类型及对应数量,以英文冒号分隔,每个类型行。输出结果保存…

电动汽车设计、制造、研发的学科、技术和前沿科技综述

引言:电动汽车作为替代传统燃油汽车的一种先进交通工具,不仅具有环保、低噪音等优势,而且对于能源消耗和气候变化等全球性问题也具有重要意义。本文将综述与电动汽车设计、制造、研发相关的学科、技术和前沿科技,以期对电动汽车领…

Linux环境下VS code的python与C++调试环境的安装

Linux环境下VS code的python与C调试环境的安装 文章目录 Linux环境下VS code的python与C调试环境的安装前言一、云服务器的环境二、VS code相关信息三、python 开发环境配置四、C开发环境配置1.测试main.cpp2.进行debug3.进行debug程序4.运行main.cpp程序步骤 前言 最近写的 C&…

除了PS,还有那些软件可以打开PSD文件

设计师在交接文件时,会看到各种格式的扩展文件,不同的格式需要不同的软件来运行。大多数人都听说过流行的文件格式PSD,因为它是最常用的图片格式之一,还有JPG、PNG等。然而,与JPG和PNG不同的是,PSD格式文件…

MySQL操作命令详解:增删改查

文章目录 一、CRUD1.1 数据库操作1.2 表操作1.2.1 五大约束1.2.2 创建表1.2.3 修改表1.2.3 删除表1.2.4 表数据的增删改查1.2.5 去重方式 二、高级查询2.1 基础查询2.2 条件查询2.3 范围查询2.4 判空查询2.5 模糊查询2.6 分页查询2.7 查询后排序2.8 聚合查询2.9 分组查询2.10 联…

云智慧x统信软件:智能化IT服务管理,提升客户服务价值

统信软件由中国领先的操作系统厂商于2019年联合成立,是全球主流的操作系统产品及服务提供商,致力于研发安全稳定、智能易用的操作系统产品,拥有统信UOS桌面版、服务器版、智能终端版在内的全栈基础设施,以及集中域管平台、企业级应…

Atcoder 做题记录

My OI Blog A R C 155 F \mathbb{ARC \ 155 \ F} ARC 155 F E, F 先咕着,做一些多项式题,这篇题解是我人工翻译的 [1] Double Counting 双重计数 考虑从叶子节点开始,用唯一的方式(如果有的话)来构造出一棵满足条件的树…

AMBA总线协议的终结者,一文稿定ACECHIAXI

无论你是IC设计工程师、验证工程师、FPGA工程师、还是微电子相关专业的学生,对于AMBA总线一定不陌生。 随着技术迭代的发展、基于各种复用IP的SoC芯片场景被高度使用,越来越多的人开始和总线互联打交道。 你肯定听说过AMBA、AHB、APB、AXI、ACE 一、A…

银河麒麟V10 SP1安装网络调试助手

文章目录 系统环境文件准备软件配置过程系统环境 系统镜像:Kylin-Desktop-V10-SP1-General-Release-2203-ARM64.iso 内核:5.4.18-53-generic 文件准备 网络调试助手可执行文件压缩包下载m-net-assist-arm64-main.zip 链接:https://pan.baidu.com/s/10Vu8Z6wOzCImXZWAW0Y…

USB采集卡如何打pts

一、使用采集卡提供的pts 二、手动打pts 1.usb采集设备pts的问题 2.采集卡驱动,UVC/UAC,ffmpeg的关系 3.如何自己打pts 4.音视频同步调优 5.NTP等联网调时工具带来的不同步问题 一、使用采集卡提供的pts 我们用使用pc摄像头和使用pc麦克风声卡里的方法&…

SQL分类及通用语法数据类型

一、SQL分类 DDL: 数据定义语言,用来定义数据库对象(数据库、表、字段)DML: 数据操作语言,用来对数据库表中的数据进行增删改DQL: 数据查询语言,用来查询数据库中表的记录DCL: 数据控制语言,用来创建数据库…

大数据技术之Hadoop:HDFS集群安装篇(三)

目录 分布式文件系统HDFS安装篇 一、为什么海量数据需要分布式存储 二、 分布式的基础架构分析 三、 HDFS的基础架构 四 HDFS集群环境部署 4.1 下载安装包 4.2 集群规划 4.3 上传解压 4.4 配置HDFS集群 4.5 准备数据目录 4.6 分发hadoop到其他服务器 4.7 配置环境变…

AlexNet卷积神经网络-笔记

AlexNet卷积神经网络-笔记 AlexNet卷积神经网络2012年提出 测试结果为: 通过运行结果可以发现, 在眼疾筛查数据集iChallenge-PM上使用AlexNet,loss能有效下降, 经过5个epoch的训练,在验证集上的准确率可以达到94%左右…

【NX】NX二次开发中遍历所有部件完整范例

一个入门的基本例子,这里提供完整代码,遍历所有部件,其他同理。 //author:autumoon //邮箱:9506163.com //日期:2023-08-03 /*************************************************************************…

大数据开发的前景怎么样?该怎么学习?

猎聘大数据研究院发布了《2022未来人才就业趋势报告》 从排名来看,2022年1-4月各行业中高端人才平均年薪来看,人工智能行业中高端人才平均年薪最高,为31.04万元;金融行业中高端人才以27.69万元的平均年薪位居第二;通信…

Prometheus-各种exporter

一、 nginx-prometheus-exporter 1 nginx 配置 1.1 Nginx 模块支持 nginx 安装的时候需要有 nginx 的状态模块: stub_status 可通过如下命令检查 nginx -V 2>&1 | grep -o with-http_stub_status_module1.2 Nginx 配置文件配置 添加如下配置到自己 nginx 的配置文…

【Spring框架】SpringBoot统一功能处理

目录 用户登录权限校验用户登录拦截器排除所有静态资源练习:登录拦截器拦截器实现原理 统一异常处理统一数据返回格式为什么需要统⼀数据返回格式?统⼀数据返回格式的实现 用户登录权限校验 用户登录拦截器 1.自定义拦截器 package com.example.demo.…

数据结构【第3章】——线性表

线性表的定义 线性表:零个或多个数据元素的有限序列。 1)线性表是一个序列。即元素之间是有顺序的,若元素存在多个,则第一个元素无前驱,最后一个元素无后继,其他每个元素都有且只有一个前驱和后继。 2&a…

百度地图18.8.0首创红绿灯雷达功能,支持全程静音导航、停车推荐

百度地图App最新版本18.8.0已发布,独家推出红绿灯雷达功能,适用于安卓和iOS系统。 根据官方描述说明,行车时手机启用红绿灯雷达,能够自动检测红绿灯,值得一提的是无需输入目的地。同时,依靠北斗高精定位技术…

如何用python做自然语言处理

如何用python做自然语言处理 使用Python进行自然语言处理(NLP)是非常常见和强大的。以下是一些基本步骤: 安装所需的库: 首先,您需要安装一些用于自然语言处理的Python库,如NLTK(自然语言工具包…