在开发一套以DSP为核心的永磁同步电机控制系统时,需要及时观察驱动系统中的各个变量,同时还要对一些程序进行控制,修改特定参数。数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。DSP在实际运行中不能用外接的端口进行控制,需要用DSP自带的串行通信模块来解决这一问题。
1 永磁同步电机控制系统
同步发电机为了实现能量的转换,需要有一个直流磁场。而产生这个磁场的直流电流,称为发电机的励磁电流。根据励磁电流的供给方式,凡是从其它电源获得励磁电流的发电机,称为他励发电机,从发电机本身获得励磁电源的,则称为自励发电机。永磁同步电机控制系统框图如图1所示,采用直接转矩控制方法,这是19世纪80年代提出的交流电机高性能控制策略。本控制系统是一个速度和转矩的双闭环控制系统。系统利用电压、电流传感器检测直流母线电压Vdc。及定子二相电流i 和i ,通过坐标变换将定子三相坐标系中的电压、电流变量转换为α-β静止定子坐标系中的二相分量。将由磁链及转矩观测器得到的定子磁链、转矩实际值作为反馈量,与磁链、转矩给定值进行比较,所得到的误差信号通过磁链、转矩调节器的滞环控制单元后,获得0、1控制信号,再综合考虑当前定子磁链所在的区域,选择适当的电压空问矢量控制定子磁链的旋转速度及方向,即可直接快速地实现转矩调节。
如果试验人员能够及时地观测并调节转矩、磁链、电压、电流等控制参数,将会极大地提高电机控制系统的开发效率。
2 串行通信的实现
PC机与DSP串行通信的实现包括三个部分,即硬件设计、上位机程序设计、下位机程序设计。
2.1 串行通信硬件设计
从本试验平台实际需要考虑,实现计算机对生产现场的监测和控制。图2是TMS320LF2407串行通信接1:1电路 [1]。该电路采用了符合RS-232标准的驱动芯片MAX232(MAX232芯片是美信公司专门为电脑的RS-232标准串口设计的单电源电平转换芯片,使用+5v单电源供电)进行串行通信。MAX232芯片功耗低,集成度高,+5 V供电,具有2个接收和发送通道。由于TMS320LF2407采用+3.3 V供电,需要将5 V的1tI1L电平变换为3.3 V高电平,整个接口电路简单,可靠性高。
2.2 上位机程序设计
Delphi是一种面向对象的可视化编程工具,拥有功能强大的集成开发环境和速度极快的编译器,兼具Visual C++的强大功能和VB易学易用的特点。Delphi,是Windows平台下着名的快速应用程序开发工具(Rapid Application Development,简称RAD)。它的前身,即是DOS时代盛行一时的“BorlandTurbo Pascal”,最早的版本由美国Borland(宝兰)公司于1995年开发。DELPHI 拥有一个可视化的集成开发环境(IDE),采用面向对象的编程语言ObjectPascal和基于部件的开发结构框架。Delphi它提供了500多个可供使用的构件,利用这些部件,开发人员可以快速地构造出应用系统。开发人员也可以根据自己的需要修改部件或用Delphi本身编写自己的部件。通过安装MSComm控件,可在Delphi环境下方便地实现串行通信[2]。本系统选用事件驱动法,该方法程序响应及时,可靠性高。只要了解使用MSComm的属性及事件的用法就可以实现对串口的操作。
其主要属性有 :
(1)eommport属性,用于设置并返回连接的串行端口号;
(2)settings属性,以字符形式设置并返回串口的波特率、奇偶校验、数据位、停止位参数;
(3)po~open属性,用于设置或返回通信连接端口的状态;
(4)input属性,用于从输入缓冲区返回并删除字符;
(5)output属性,用于将要发送的数据输入传输缓冲区;
(6)inputlen属性,用于指定由串行端I:I读入的字符串长度或字节数;
(7)handshaking属性,用于指定通信双方的握手协议;
(8)rthreshold属性,用于设置或返回引发接收事件的字节数;
(9)sthreshold属性,用于设置并返回传输缓冲区中允许的最小字符数;
(10)commevent属性,在通信错误或事件发生时都会产生oncomm事件;
(11)inbufercount属性,用于接收缓冲区中的字符数;
(12)inputmode属性,用于设置或返回input属性取回数据的类型。
程序设计中首先要对MSComm进行初始化,可以双击MSComm控件设置,也可以在程序中修改。
本系统根据需要自行设计了通信协议。
(1)帧分为两类,即控制帧和数据帧。控制帧为上位机发出的控制命令,数据帧为上、下位机的实时数据。
(2)上位机对下位机通信中的控制帧,格式都是一个字节,定义如下:AA为下位机发送数据;AB为下位机接收数据;AC为下位机停止发送
(3)数据帧为两个字节,数据范围是0~65535,满足了数据要求。
其中:AB为控制帧,04代表磁链,00C8为数据帧。每个字节包含1个起始位、1个停止位、8个数据位,在实际应用中用户只需在通信界面上设置磁链值200,然后单击“n发送”按钮即可实现该命令。图3为PC机发送数据流程图。
2.3 下位机程序设计
TMS320LF2407中包含一个串行通信模块(SCI),SCI的寄存器是8位的。可编程的SC1支持CPU和其他使用标准非归零(NRZ)格式的异步外设之间的串行数字通信,SCI的接收器和发送器是双缓冲的,每个都有它自己的独立使能和中断位。波特率可以通过一个16位的波特率选择寄存器进行编程 。为了保证串行通信的成功,在通信前必须对DSP的SCI模块进行初始化,设置通信的波特率、奇偶校验、停止位及每个字节包含的位数等,这些参数的设置必须与PC机上的设置一致,否则会引起传输错误。
DSP(digital signal processor)是一种独特的微处理器,是以数字信号来处理大量信息的器件。其工作原理是接收模拟信号,转换为0或1的数字信号。再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。它的强大数据处理能力和高运行速度,是最值得称道的两大特色。在DSP与PC机的通信中,对于DSP来说,通信的主要功能是接收Pc机传来的数据和发送数据给Pc机。可采用查询和中断两种方式接收数据,查询方式需要程序循环检测通信端口,浪费DSP资源,因此本系统接收数据时采用中断方式;但在发送数据时由于要发送的数据比较多,如果也用中断方式就会干扰到电机的控制,电机不能平稳运行,因此采用查询方式。在中断子程序中设置发送标志位,通过在主程序中查询该标志位来决定是否发送数据。图4为下位机通信程序框图。
3 试验结果
利用DSP的SCI模块和MSComm控件可以方便地实现DSP与Pc机的串行通信。本文所介绍的设计方法已在Pc机和以TMS320LF2407为核心的直接转矩控制系统试验平台上进行了验证,结果表明:可以通过Pc机对永磁同步电机进行控制。图5为上位机监控界面,它包括参数发送和数据采集两部分,可以显示速度、磁链、转矩的给定值和实际值,便于用户比较。图6为永磁同步电机空载运行时的速度观测图。当永磁同步电动机的定子通入三相交流电时,三相电流在定子绕组的电阻上产生电压降。由三相交流电产生的旋转电枢磁动势及建立的电枢磁场,一方面切割定子绕组,并在定子绕组中产生感应电动势;另一方面以电磁力拖动转子以同步转速旋转。电枢电流还会产生仅与定子绕组相交链的定子绕组漏磁通,并在定子绕组中产生感应漏电动势其中:直线代表速度给定值,曲线是速度实际值。速度给定值为500 r/min,通过转速表测量,转速为499r/min,从图中可以看出速度以极小的误差围绕给定值波动,证明了转速能被很好地控制住。图7为磁链标幺值的给定值与实际值比较图,磁链给定值为200,DSP中采用Q12格式,最后经过计算反馈到上位机时应为0.2,直线是给定值,曲线是实际值,在图中可以看出超调量很小,磁链参数也能准确地反馈到Pc机上,与试验预期结果相符。
4 结 语
采用PC机与DSP的主从式结构,既能发挥DSP的数据处理能力,又具有良好的人机接口,这极大地方便了系统的开发调试。DSP和PC机串行通信可以实现下位机参数实时上传,使用户随时掌握电机状态性能;通过上位机在线修改DSP的程序,使电机按照要求运行,实现对电机的全数字化实时控制。本文所解决的关键难题为下一步实现电机控制系统性能的在线监测奠定了基础。