一种全数字控制方式高压变频控制器的组成方法

2023-11-07 13:32

本文主要是介绍一种全数字控制方式高压变频控制器的组成方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

现在流行的多电平叠加高压变频器控制方式中,采用DSP或单片机做为控制核心的比较多,许多都是利用了硬件本身带有的多组PWM这一特点完成控制功能的,具备了嵌入式的各种优点,并且编程量相对少一些,因此很受开发人员的欢迎。

笔者在所在公司的工作中,辅助参与了这样的实验系统的研制工作,在原硬件的基础上和原研发人员的帮助下,从而对这一系统的工作机理有了进一步的理解和认识。

根据笔者过去的工作经验,在对系统有了了解之后,笔者产生了使用现在的计算机主板对系统进行控制的想法,这主要是因为,原系统用的有DSP,用的有CPLD脉冲扩展板等,而控制单元和执行单元(三相数组H桥)之间是靠光纤信号隔离开的,无论怎样控制,发往执行单元的都是光脉冲,当然是经过DSP精密计算过的光脉冲了,针对这样的结构,只要能产生按照控制机理的光脉冲发往控制单元就行,流行的计算机结构应该能胜任这一功能的。

原系统每相有数组H桥,每组H桥至少需要三组光脉冲信号,其中一组是诊断用的,另两组是完成PWM控制的,一相如果有6个单元的话,就需要18组控制信号,三相就需要54组信号。这是发往执行单元的光纤信号的数量要求。

现行的计算机都有一个打印并口,每一个打印并口都是25针的,按照计算机的结构,一个主板可以带3个并口。每个打印并口的25端子中,有8个是数据输出(2-9),4个是混杂型输出(11416-17),5个是输入端(10-1315),其余的18-25是地端。每一个打印口针对一相少一路输入信号端。

这是执行单元和打印口的信号端子数目对应情况,虽然缺少一路用于诊断的输入端子,但可以通过增加并口的方法解决。每相执行单元所需要的12路光纤接口的端子数目已经具备,不影响控制总体构成。

主要思路是针对上述的这样结构,通过开发应用软件,将体现控制意图的控制脉冲通过计算机的打印口用光纤送往执行单元。

利用VB,笔者试沿着此思路并结合实际控制系统,开发出了核心部分的控制界面,如图1和图2所示,两者的区别是变频的频率不同。在该界面上中间最右侧的竖表条里是已经数字量化后的某一频率的01信号,实际上也就是发送到A相第一功率单元H桥的半桥的半周期光纤控制信号,另一半周期全发0,后续功率单元以此量化信号为基准,按照移相的要求,通过程序在其前后赋值0保证周期长度的一致性,同理A相第一功率单元H桥的另半桥的前半周期全发0,后半周期通过编程赋值发送该频率下的量化信号;同理通过编程,对后续的各执行单元发送移相后的前后控制信号。这样在程序内部形成了一个量化后的由0和1组元组成的表格,具体到本系统的A相,就是具有12组的数据表格。通过编程周期性的把这些表格内的每一个组元值发送到打印口的对应端。改变控制控制频率,表格长度自动跟随变化。

                                     图1

 

 

                                        图2

同理,B相和C相的过程编程类同,但对应每频率的量化应符合三相合成的基本要求。

编程中送往打印口的量化数据要用到DLL函数,才能将数据送到打印口。虽然是每一个组元连续往外送的,但考虑到计算机的实际运算速度,以及载波的频率,应该是不会有问题的。并送时可能会有些技巧。

和打印口连接的是电光转换电路,然后再接光纤,可以做在一块PCB板上。

诊断信号,通过程序进行判断后执行相应处理结果。

实际上利用计算机主板上的其它总线,会有更合适的信号衔接途径的。

 

这篇关于一种全数字控制方式高压变频控制器的组成方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/363943

相关文章

gradle第三方Jar包依赖统一管理方式

《gradle第三方Jar包依赖统一管理方式》:本文主要介绍gradle第三方Jar包依赖统一管理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录背景实现1.顶层模块build.gradle添加依赖管理插件2.顶层模块build.gradle添加所有管理依赖包

Linux之systemV共享内存方式

《Linux之systemV共享内存方式》:本文主要介绍Linux之systemV共享内存方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、工作原理二、系统调用接口1、申请共享内存(一)key的获取(二)共享内存的申请2、将共享内存段连接到进程地址空间3、将

Maven中引入 springboot 相关依赖的方式(最新推荐)

《Maven中引入springboot相关依赖的方式(最新推荐)》:本文主要介绍Maven中引入springboot相关依赖的方式(最新推荐),本文给大家介绍的非常详细,对大家的学习或工作具有... 目录Maven中引入 springboot 相关依赖的方式1. 不使用版本管理(不推荐)2、使用版本管理(推

Java 中的 @SneakyThrows 注解使用方法(简化异常处理的利与弊)

《Java中的@SneakyThrows注解使用方法(简化异常处理的利与弊)》为了简化异常处理,Lombok提供了一个强大的注解@SneakyThrows,本文将详细介绍@SneakyThro... 目录1. @SneakyThrows 简介 1.1 什么是 Lombok?2. @SneakyThrows

判断PyTorch是GPU版还是CPU版的方法小结

《判断PyTorch是GPU版还是CPU版的方法小结》PyTorch作为当前最流行的深度学习框架之一,支持在CPU和GPU(NVIDIACUDA)上运行,所以对于深度学习开发者来说,正确识别PyTor... 目录前言为什么需要区分GPU和CPU版本?性能差异硬件要求如何检查PyTorch版本?方法1:使用命

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

SpringMVC 通过ajax 前后端数据交互的实现方法

《SpringMVC通过ajax前后端数据交互的实现方法》:本文主要介绍SpringMVC通过ajax前后端数据交互的实现方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价... 在前端的开发过程中,经常在html页面通过AJAX进行前后端数据的交互,SpringMVC的controll

Java中的工具类命名方法

《Java中的工具类命名方法》:本文主要介绍Java中的工具类究竟如何命名,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Java中的工具类究竟如何命名?先来几个例子几种命名方式的比较到底如何命名 ?总结Java中的工具类究竟如何命名?先来几个例子JD

Spring Security自定义身份认证的实现方法

《SpringSecurity自定义身份认证的实现方法》:本文主要介绍SpringSecurity自定义身份认证的实现方法,下面对SpringSecurity的这三种自定义身份认证进行详细讲解,... 目录1.内存身份认证(1)创建配置类(2)验证内存身份认证2.JDBC身份认证(1)数据准备 (2)配置依

C#使用StackExchange.Redis实现分布式锁的两种方式介绍

《C#使用StackExchange.Redis实现分布式锁的两种方式介绍》分布式锁在集群的架构中发挥着重要的作用,:本文主要介绍C#使用StackExchange.Redis实现分布式锁的... 目录自定义分布式锁获取锁释放锁自动续期StackExchange.Redis分布式锁获取锁释放锁自动续期分布式