方成辉+王润新
摘 要: 为提高三相两电平电压型逆变器的直流电压利用率,通过对空间矢量脉宽调制(SVPWM)原理进行详细分析,提出一种改进的过调制法。该方法通过改变参考电压矢量的轨迹及相应的合成策略,定义了一种新的比传统过调制法所得结果具有更大基波幅值的参考电压波形。仿真结果证明该方法在直流电压利用率及输出电压的总谐波畸变率(THD)两方面都较传统过调制法有优势。
关键词: 直流电压利用率; 电压型逆变器; 过调制法; 空间矢量脉宽调制; 总谐波畸变率
中图分类号: TN911.3?34 文献标识码: A 文章编号: 1004?373X(2015)20?0132?05
Study on improved overmodulation method for voltage source inverter
FANG Chenghui, WANG Runxin
(Logistics Engineering College, Shanghai Maritime University, Shanghai 201306, China)
Abstract: To improve DC voltage utilization ratio of three?phase two?level voltage source inverter, an improved overmodulation method is proposed by analyzing the principle of SVPWM in detail. By changing the track of reference voltage vector and the corresponding synthetic strategies, a new reference voltage waveform which has better fundamental voltage amplitude than the traditional overmodulation method is defined. The simulation results show that the improved method has more superiority than the traditional over?modulation method in the aspects of DC voltage utilization ratio and THD of output voltage.
Keywords: DC voltage utilization ratio; voltage source inverter; overmodulation method; SVPWM; THD
为了适应在复杂实验条件下对多个电源单元的有效管理,运用C#语言编写了基于Socket网络通信的多电源管理系统,并且能把每台电源单元的数据保存到Excel表格中,方便查阅与记录。Socket通信的同步通信方式是在客户端在发送请求之后必须等到服务器回应之后才可以发送下一条请求,是阻塞通信方式。这样的方式对于电源单元的管理比较准确。但对于多个电源单元同时管理时,就会出现连接长时间通信不上的问题。而异步连接就能很好的解决多个单元的连接问题,但是异步通信的缺点是对多电源单元管理时会出现数据错乱的问题。本系统使用面向对象C#编程,采用了Socket异步连接电源,同步通信收/发数据方式进行设计,很好地满足了多电源管理系统的要求。
1 系统设计
1.1 Socket通信原理
1.1.1 服务器端的步骤
(1) 在实用Socket之前,要首先初始化Socket,就是实用Socket初始化函数;
(2) 在初始化完成以后,就可以建立服务端的Socket,然后实用该Sokcet开始侦听整个网络中的连接请求;
(3) 当检测到来自客户端的连接请求时,向客户端发送收到连接请求的信息,并建立与客户端的连接;
(4) 在通信的过程中,服务器端产生的Socket会通过一个消息响应函数OnReceive来接收到达的数据,数据的发送可以使用Send()来完成;
(5) 当完成通信后,服务器关闭与客户端的Socket连接。
1.1.2 客户端的步骤
(1) 同样的,初始化Socket,并建立客户端的Socket,确定要连接的服务器的主机名和端口;
(2) 发送连接请求到服务器,并等待服务器的回馈信息;
(3) 连接成功后,与服务器进行数据的交互;
(4) 数据的读取同服务端一样,也是通过OnReceive函数来完成的,数据的发送通过Send函数即可;
(5) 数据处理完毕后,关闭自身的Socket连接。
1.2 Socket异步通信与同步通信
(1) 异步通信方式
程序执行到发送、接收和监听语句的时候,不论工作是否完成,都会继续往下执行。并且在服务端不存时,仍然能继续进行后继工作的。
(2) 同步通信方式
Socket通信用TCP协议进行编程时程序执行到发送、接收和监听语句时,在未完成工作前不再继续往下执行,即处于阻塞状态,直到该语句完成某个工作后才继续执行下一条语句。并且服务端不存、从而在抛出异常之前,是无法继续进行后继工作的。
1.3 主要设计思路
1.3.1 采用同步通信方式
同步通信方式如图1所示。
图1 同步通信方式
1.3.2 采用异步通信方式
异步通信方式如图2所示。
图2 异步通信方式
1.3.3 采用异步连接,同步通信的方式
电源管理系统界面,根据每个电源的IP地址,端口,通过网口进行异步通信的连接,然后在界面上输入需要的电源电压电流数据,通过同步通信方式进行收/发数据,进而完成对电源的控制。管理界面还能保存电源的电压电流变化的数据,方便以后查验。
图3 异步连接,同步通信方式
(1) Socket异步连接电源部分程序
IPAddress[] address = Dns.GetHostAddresses
("192.168.0.204"); //IP地址
IPEndPoint remoteep = new IPEndPoint(address[0], 9221); //端口建立连接与反馈连接状态
AsyncCallback callback = new AsyncCallback(ConnectCallback1);
IAsyncResult connResult = c1.BeginConnect(remoteep, callback, c1);
connResult.AsyncWaitHandle.WaitOne(1000, true);
if (!connResult.IsCompleted)
{
MessageBox.Show("设备1无法建立连接!")
}
else
{
MessageBox.Show("设备1连接成功!");
}
(2) Socket同步通信数据收/发程序
Socket c1= new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
发送数据程序:
bs1 = Encoding.UTF8.GetBytes("V3 " + txtOutV3.Text);
c1.Send(bs1, bs1.Length, 0); //给电源端发送信息
接收数据程序:
bytes = c1.Receive(recvBytes, recvBytes.Length, 0);
//从电源端接受返回信息
message = Encoding.ASCII.GetString(recvBytes, 0, bytes);
2 实际测试
2.1 采用同步通信方式
测试过程中出现,在一个电源单元数据通信完成后,才能和下一个电源单元进行通信的情况。这样的管理系统只能每次处理一个电源单体,不能实现对多电源管理的问题。
2.2 采用异步通信方式
在实验测试过程中,能够同时和多个电源单元进行通信,但是在通信过程中出现数据错乱和数据发送延迟的问题。
2.3 采用异步连接,同步通信的方式
实验测试,对电源单元和多电源单元进行多批次长时间的测试,系统是高效、准确的,数据保存也是实时准确的,如图4所示。
图4 电源单元的多批次长时间的测试
3 结 语
多电源单体管理系统能对多台电源进行高效准确地管理,优点有:
(1) 在复杂的实验条件下,能实时高效准确地管理多个电源单元,能极大地简化实验过程,让实验更加高效精确。
(2) 能在远距离条件下,方便实验人员操作复杂的电路实验。
(3) 能实时精确地保存数据,方便数据的记录和计算。
参考文献
[1] 周晟,金瓯,贺建飚,等.基于Socket的异构形平台的网络通信研究[J].计算机与数字工程,2006(5):4?8.
[2] STEVENS W R.TCP?IP详解卷一:协议[M].北京:机械工业出版社,2000.
[3] 张文,赵子铭.P2P网络技术原理与C++开发案例[M].北京:人民邮电出版社,2008.
[4] 马骏.C#程序设计及应用教程[M].北京:人民邮电出版社,2009.
[5] JONES A,OHLUND J.Windows网络编程[M].北京:清华大学出版社,2002.
[6] 任柯.ZigBee多媒体教室电源管理系统设计与实现[J].西南民族大学学报:自然科学版,2012(4):669?673.
[7] 赵勇,黄东,张天开,等.基于μIP和Socket的远程机房电源控制系统设计[J].电子设计工程,2015(4):40?43.