双向交错CCM图腾柱无桥单相PFC学习仿真与实现(1)系统问题分解

news2024/12/25 12:23:19

目录

前言

系统硬件架构

系统软件架构

仿真实现

仿真效果

总结


前言

目前正在做双向交错CCM图腾柱无桥单相PFC的项目,硬件拓扑兼容三相和单相的PFC,三相PFC功能目前已经完成,准备把单相的PFC学习和开发过程记录一下,以及后面可能会踩到的坑,整个开发过程都是基于模型的开发,就是常说的MBD,应用算法层都是Simulink自动代码生成,在学习之前选择一份参考文档是很重要的,这里以Ti的这个文档做参考,把系统细分,一个问题一个问题解决

Design Guide: TIDM-2008/TIDM-1007
Bidirectional Interleaved CCM Totem Pole Bridgeless PFC
Reference Design Using C2000™ MCU

系统硬件架构

Ti的硬件结构是三组并联(三组快管+一组慢管),三组并联

 项目实际的硬件结构为兼容三相PFC,且考虑到先给母线电容充电,选择通过继电器控制充电过程和工作模式(单相或者三相)

当选择单相工作模式时继电器1,5先导通,给母线电容充电 ,然后再闭合2,3。Q1-Q4作为快管,Q5和Q6作为慢管

 且由于三相PFC是对三个电感电流进行采样,为了兼容,单相PFC需要对ab两个电感电流进行采样,控制上就需要两个电感电流,这样也可以实现均流控制。

系统软件架构

根据系统硬件结构可以在Simulink里面搭建硬件仿真电路,再设计系统软件,在实现仿真就要知道发波时序:

 如果是两组并联的话PWM相位差180度,三组就是120度,这里我们使用的是相位差180度的PWM发波方式。

系统软件框图:

 框图上,是对交流总电流进行采样控制,用到了SOGI锁相环,Notch Filter, 过零点软启动

 从框图可以看出,要实现整个仿真系统并在实际电路上实现需要解决以下问题:

1. PWM发波时序逻辑

实际硬件需要相位差180度

2. SOGI锁相环

通过锁相环得到电压相位,并进行正负周期和过零点判断

3. 电流内环

 

4. 电压外环

Notch Filter由于输出的Bus电压有一个100Hz的公频波动,会影响到电压环的工作,需要用陷波滤波器对其进行抑制,刚刚好之前有用过:

Simulink 窄带陷波滤波器(Notch filter)仿真到代码生成_simulink 陷波滤波器_卡洛斯伊的博客-CSDN博客

 

5. 过零点软启动

避免由于功率管体二极管反向恢复造成的尖峰电流

 

6. 系统状态机

负责状态切换,如预充电,故障管理,状态反馈等

仿真实现

仿真系统如下:

包含了硬件系统,控制指令,PWM发波,控制系统,其中控制系统包含了状态机,电压电流环,锁相环,过零判断等

 

根据实际需求构建系统电路:

硬件拓扑如下:

包含了继电器开关,充电限流电阻,电感模型包含等效串联电阻,输出滤波电容也包含了ESR,负载采用可变电阻实现仿真时模拟负载变化。

仿真效果

快管和慢管仿真效果,交流电压和电流波形如下:

  

 

 通过总电流进行控制(模拟电感1和2参数不同),效果如下:

 均流控制前:

 

 均流控制的话就可以看到L1和L2电流完全重合在一起了(仿真的电感L1和L2感值和阻值是不一样的),通过采用均流控制两者电流完全重合了。这里也是模拟了实际硬件电路电感之前是存在误差的,不可能百分之百一样,采用均流控制的话电感L1,L2电流一样。

均流控制后:

 电流很理想是因为Simulink的功率器件是理想的,实际中在过零点的时候会出现二极管反向恢复产生的电流尖峰,这时候就需要软启动了

 启动电压波形:

预充电--->电压缓慢上升--->到达目标电压

黄色是输入参考电压,蓝色是输出Bus电压

在送入电压环之前对Bus电压做了一个Notch filter,不然电压环容易震荡

 

 启动电流波形:

总结

大体把一些功能实现了,后面再对细节部分进行总结

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

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

相关文章

基于CH32F103的DAC播放WAV功能

一、理论 1.1 DAC理论 数字信号转化为电压信号,实现扬声器不同频率的发声。 12位DAC,表达范围0-4095 1.2音频wav理论 1.2.1 wav文件格式解析 wav 文件一般由3个区块组成:RIFF chunk、Format chunk 和 Data chunk。 RIFF chunk&#xff…

Vivado 下 IP核之单端口 RAM 读写

目录 Vivado 下 IP 核之单端口 RAM 读写 1、RAM 简介 2、实验任务 3、程序设计 3.1、RAM IP 核配置 3.2、时序图讲解 1、写优先模式的时序图如下所示: 2、读优先模式的时序图如下所示: 3、不变模式的时序图如下所示: 3.3、顶层模块…

mysql 数据库 不同数据类型字段设置长度大小、取值范围 及 存储空间

学习目标: 学习的目标 了解不同数据类型字段设置长度大小,从而 在使用 mysql 数据时为使用的字段设置适当的长度 。 学习内容: 学习的内容 整数型字符串型TEXT时间型 总结: 提示:总结 1、整数型 1、整数型的数值…

STM32队列

目录 什么是队列? 队列特点 1. 数据入队出队方式 2. 数据传递方式 3. 多任务访问 4. 出队、入队阻塞 队列相关 API 函数 1. 创建队列 参数: 2. 写队列 参数: 返回值: 3. 读队列 参数: 返回值&#xf…

找工作第一弹——三件套基础巩固

目录 前言HTML篇表格结构a的两种打开方式自定义列表单选,多选音视频标签 CSS篇伪元素清楚浮动固定定位fixedemCSS三角 JS细节篇原型链字符串拼接的方法递归 JS内置对象sort的升序和降序字符串大写和小写Objects对象的方法date的用法数字取整数组的最大值与最小值 We…

ROS中使用VLP16激光雷达获取点云数据

ROS中使用VLP16激光雷达获取点云数据 个人博客地址 本文测试环境为:Ubuntu20.04 ROS Noetic 需要将激光雷达与PC连接,然后在设置>网络>有线中将IPv4改为手动,并且地址为192.168.1.100,子网掩码为255.255.255.0&#xff0c…

leetcode61. 旋转链表(java)

旋转链表 leetcode61. 旋转链表题目描述 解题思路代码演示链表专题 leetcode61. 旋转链表 Leetcode链接: https://leetcode.cn/problems/rotate-list/ 题目描述 给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。 示例…

浅析 xml 数据格式文件

浅析 xml 数据格式文件 xml ( Extensible Markup Language ) 全称 -> 可拓展的标记语言; xml文件的主要用途:xml文件主要用于数据的 传输 和 存储,并不是展示; xml标签与html的区别:节点的标签使用方式和 html 十分…

【产品经理】企业的产品增长之路

英特尔前CEO安迪格鲁夫有本书叫做《Only the Paranoid Survive》,全文的中心思想是警示他人,要居安思危,唯有打破常规,不拘泥于现状才能生存。 一、为何企业都在关注增长? 1. 诺基亚的贱卖 13年市值曾位居全球上市公…

HNU-操作系统OS-作业1(4-9章)

这份文件是OS_homework_1 by计科2102 wolf 202108010XXX 文档设置了目录,可以通过目录快速跳转至答案部分。 第四章 4.1用以下标志运行程序:./process-run.py -l 5:100,5:100。CPU 利用率(CPU 使用时间的百分比)应该是多少?为什么你知道这一点?利用 -c 标记查看你…

Spring中如何获取Bean方法上的自定义注解

文章目录 背景描述场景复现问题追踪解决方案扩展思考 背景描述 项目中需要扫描出来所有 标注了自定义注解A的Service里面标注了自定义注解B的方法 来做后续处理。 基本的思路就是通过Spring提供的ApplicationContext#getBeansWithAnnotation反射 来实现。 但是,随…

【Spring】核心与设计思想

哈喽,哈喽,大家好~ 我是你们的老朋友:保护小周ღ 谈起Java 圈子里的框架,最年长最耀眼的莫过于 Spring 框架啦,如今已成为最流行、最广泛使用的Java开发框架之一。不知道大家有没有在使用 Spring 框架的时候思考过这…

11111111111

def cosine_similarity(vector_a, vector_b): “”" 计算两个向量之间的余弦相似度 :param vector_a: 向量 a :param vector_b: 向量 b :return: distance “”" vector_a np.mat(vector_a) vector_b np.mat(vector_b) num float(vector_a * vector_b.T) denom n…

华为OD机试真题 Java 实现【预定酒店】【2022Q4 100分】

一、题目描述 放暑假了,小明决定到某旅游景点游玩,他在网上搜索到了各种价位的酒店(长度为n的 数组A),他的心理价位是x元,请帮他筛选出k个最接近x元的酒店 (n>=k>0) ,并由低到高打印酒店的价格。 二、输入描述 第一行: n,k,x 第二行: A[o] A[1] A[2]…A[n-1] 三…

djiango orm简单实现增删改查

目录 一、配置数据库1.1 在settings.py文件中找到DATABASES ,配置数据库连接,这里用的是mysql 二、切换操作数据库的模块三、 创建一个app并注册3.1创建一个app3.2 注册app 三、在app1定义模型类四、迁移数据库,使用以下命令,生成…

Android修改aar并重新打包

目录 一.修改 aar 需要用到的工具(就一个工具,使用方式非常简单,别担心) 二.修改 aar 代码层业务逻辑 三.修改 aar layout 布局文件 四.附上recyclerview aar修改工程源码 一.修改 aar 需要用到的工具(就一个工具&…

MKS SERVO4257D 闭环步进电机_系列8 CAN通讯示例

第1部分 产品介绍 MKS SERVO 28D/35D/42D/57D 系列闭环步进电机是创客基地为满足市场需求而自主研发的一款产品。具备脉冲接口和RS485/CAN串行接口,支持MODBUS-RTU通讯协议,内置高效FOC矢量算法,采用高精度编码器,通过位置反馈&a…

AD19操作注意事项及信息

直接在PCB编辑界面添加差分对(差分布线) 1.PCB边界界面Panels菜单调出PCB界面 2.选择框中信息,点击添加差分对即可,然后利用交互式差分对布线命令进行布线操作。(前提设置好差分布线规则) 过孔&#xff1a…

7年经验之谈 —— 如何进行渗透测试以提高软件安全性?

对于各种规模的企业和组织来说,软件安全是一个至关重要的问题。随着网络攻击越来越复杂,软件中的漏洞越来越多,确保你的软件安全比以往任何时候都更重要。提高软件安全性的一个有效方法是渗透测试(penetration testing&#xff09…

6月9号软件资讯更新合集....

Vivaldi 6.1 发布,可绕过微软限制使用 Bing Chat 最新版本的 Vivaldi 可在桌面端伪装成 Edge,使其用户受益,并为工作空间和标签增加了更多的功能。 支持微软 Bing Chat Vivaldi 是建立在 Chromium 开源项目之上的。它与 Edge 和 Chrome 使用…