新闻中心

EEPW首页>嵌入式系统>设计应用> CAN总线在风力发电控制系统中的应用

CAN总线在风力发电控制系统中的应用

作者: 时间:2012-05-25 来源:网络 收藏

1 引言
风力发电机组的控制系统是综合性控制系统,控制系统不仅要监视机组运行参数,对机组进行并网与,而且还要根据风速与风向的变化,对机组进行优化控制。是一种支持分布式控制系统和实时性控制的串行通信网络。其以多主机方式工作,通信速率可达1mbps。
can总线的上述特点正适用于风力发电机控制系统的独特要求,因此,本文提出一种基于can总线架构的。控制系统中各模块之间通过can总线实时交换数据,实现主控系统及各控制节点间的实时通信与数据交换。文章在分析了can协议及can独立控制器sja1000工作原理和读写逻辑的基础上,设计了can接口,给出了硬件原理图,分析了can通讯程序流程及系统中信号和控制指令的通讯帧格式。另外,本文还给出了基于嵌入式qt的应用程序的设计方案。
2 系统结构与功能
本文基于分散控制系统理念,针对双馈型变速恒频风力发电机组设计控制系统。双馈型风电机组控制系统基本结构如图1所示。

主控制器选用32位嵌入式处理器at91rm9200,通过硬件设计扩展外围can接口,实现与其它节点的通信。同时外接带触摸屏的lcd显示器,监控界面利用嵌入式qt设计,对整个机组实时监控。主控制器通过以太网与风电场控制中心通信。变流器控制采用双pwm控制方式,即由两个dsp生成pwm信号,电机侧部分负责电机励磁控制,网侧负责并网控制;两模块均基于tms320f2812设计,通过其自带的ecan接口与主控制器及其它节点通信。变桨控制系统同样基于arm(at91rm9200)设计,扩展can接口实现通信。变桨控制器和变频控制器通过i/o通道采集接收各传感器数据,并进行相关计算与判断,输出控制信号,实现智能分散控制,同时向主控制器发送机组参数并接收主控命令。整体结构框图如图2。

主控制器位于地面控制柜,变桨控制器位于机舱控制柜,变频控制器分电机侧和网侧两部分,位于地面控制柜。模块与模块之间can总线信号经光电转换后使用光纤连接。
3 can接口硬件设计
can是一种基于广播的通讯机制,报文依靠报文标识符来进行识别。can协议支持两种帧格式,不同之处在于标识符域的长度不同,一种被称为can标准帧,支持11bit的标识符长度;另一种称为can扩展帧,支持29bit的标识符。
can接口芯片选用philips公司的can独立控制器sja1000。arm处理器at91rm9200内部集成了外部总线接口ebi,通过此接口与sja1000连接。从sja1000输出的can信号,通过光藕器件隔离后连接到收发器tja1050,收发器的输出与总线连接。
sja1000的地址线和数据线是分时复用的,而at91rm9200的外部数据总线接口ebi的地址线和数据线是相互独立的,因此,需要通过软件编程实现地址的锁存,以达到数据和地址的分时传输。硬件原理图如图3[3]。

sja1000的数据/地址复用总线直接与arm的ebi数据总线低8位连接,地址锁存信号/ale由arm的a0产生,/cs与/we分别由ncs4和new与a0经或运算后产生。由硬件电路可确定sja1000的物理地址是0x50000000。
风电场环境恶劣,为了保证控制系统准确传输数据,增强can总线节点的抗干扰性能, sja1000控制器经过高速光藕6n137隔离后与收发器tja1050相连,实现总线上各can节点之间的电气隔离。采用dc-dc电源隔离模块dcr010505,实现光耦两端的电源隔离。canh接总线的高电平端,canl接总线的低电平端。由于风电机组垂直距离较高,容易受雷电的影响,在两根can总线输入端与地之间分别并联一30pf的电容和一防雷击管,以滤除高频干扰和防止浪涌电压。
4 can接口通讯软件设计
对于can的通讯程序,采用分层处理的方法,包括驱动层和应用层。因此,can接口软件通讯包括两部分:can驱动程序和can应用程序。驱动程序负责完成linux内核与sja1000之间的数据通讯,即linux内核设置sja1000的控制寄存器,读写sja1000接收、发送缓冲器。应用程序部分负责完成用户空间和内核空间的数据交换,以及分析从sja1000接收到的报文,封装要发送报文。接收的报文主要包括来自变流模块和变桨偏航控制模块的机组状态信息及风速风向、各类温度和转速信号等。发送的报文包括下发给变流模块和变桨偏航控制模块的控制指令及控制参数。
4.1 can驱动程序设计
(1)底层驱动程序总体设计。在linux中设备驱动程序是由一组数据结构和函数组成的,它包含设备服务子程序(如open、read、write、close、ioctl等)、初始化函数can_init()和中断处理程序can_interrupt()。
在linux加载can驱动时调用can_init(),向操作系统注册设备,同时完成can总线波特率的设置,id过滤器的设置,清空接收和发送缓冲区,开启中断等工作,完成初始化后,退出复位模式,进入正常的工作模式。

风力发电机相关文章:风力发电机原理

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭