基于FPGA的改善可靠性的电梯控制器外文翻译资料

 2022-05-23 08:05

英语原文共 6 页,剩余内容已隐藏,支付完成后下载完整资料


2013年UKSim第15届国际计算机建模与仿真会议

基于FPGA的改善可靠性的电梯控制器

Sithumini Ekanayake, Ruwan Ekanayake, Somasundaram Sanjayan,

Sunil G. Abeyratne, S.D. Dewasurendra

电气和电子工程系

佩拉德尼亚大学

Peradeniya, Sri Lanka

电子邮件:sithumini@ee.pdn.ac.lk, ruwan1988@yahoo.com,

ssansajan@gmail.com, sunil@ee.pdn.ac.lk, devapriyad@pdn.ac.lk

摘要

本文介绍了一种新的方法来提高可重构的基于FPGA的电梯控制器的可靠性,该电梯控制器可用于具有指定输入和输出的任意楼层的电梯。很明显,通过简单地改变HDL代码中的变量,可以为具有所需的电梯层数生成电梯控制器。因此,在本文中,主要实施和验证程序将与提高可靠性的方法一起详细给出。所提出的可靠性改进方法中充分考虑了FPGA中设计扩展的灵活性。该控制器是在整个研究过程中使用VHDL开发的,本文中包含关于代码开发的描述。所生成的控制器已在Xilinx Spartan 3AN FPGA上成功实施,并针对三层原型电梯进行了测试。

关键词:电梯,FPGA,Verilog,可重构

引言

在系统的控制器实现中,如系统性质,功耗和可靠性等几个因素在设计考虑中起着至关重要的作用。目前,PLC在控制和自动化行业中普遍使用,在那里预计易于编程的环境。但是对于一个复杂的反应系统,由于其固有的并行处理能力,可以推荐现场可编程门阵列(FPGA)。

电梯(或电梯)是在建筑物,船舶或其他结构的地板之间运输人或物品的机械。因为大多数情况下这是一种有效地运输人的方法,所以旅行人员的安全和便利应该得到认证。因此,实施适当的电梯控制系统至关重要。电梯可以被认为是一个复杂的无功系统,需要大量输入和输出的并行事件处理。因此,FPGA为实现电梯控制器提供了更好解决方案,增加了可重构性,更低功耗,响应时间更短和扩展设计的灵活性。

在这项研究中,我们的目标是,为具有任意数量楼层的电梯开发电梯算法并提高其可靠性。在这里Verilog HDL由于其语法熟悉而被使用。Verilog是一种硬件描述语言(HDL),通常用于在设计中以文本方式描述数字电路。为了编程,仿真和综合目的,使用了Xilinx ISE软件。最终的设计被编程为一个Spartan 3AN FPGA,它作为控制器的核心并在真实的硬件上进行测试。

电梯控制器的实现

  1. 初步研究

在开发制算法时,拥有一个基于模型的设计方法总是有利的,因为初始规范在以后的开发中会很有用。研究[2]显示了一个状态图模型,开发了一个三层的原型电梯,这是开发进一步提出了一个可重构的控制器为任何数量的楼层。Zhao等人也是。研究[3]详细阐述了具有发展阶段的电梯系统的基本功能和要求。在这项研究中,研究[2]中获得的结果被用于根据我们的要求推进该计划。

  1. HDL编程开发

FPGA具有输入/输出端口,可直接在编程中用作位向量。在该程序中,该属性用于生成数据向量。同样在程序中,数据矢量是用向量中的位数等于层数来定义的。这些向量将在楼层数量被给定时自动生成。

例如:如果楼层数是3,相应的输入矢量将是“XXX”。如果楼层数是5,相应的输入矢量将是“XXXXX”。

在代码中,接近传感器输入,汽车呼叫按钮输入和霍尔呼叫按钮输入是三个输入数据向量。然后一个公共矢量作为任何轿厢按钮输入或霍尔按钮输入的变量被生成,因为任何按钮输入都可以视为电梯轿厢到达特定楼层的请求。通过比较公共矢量和接近传感器输入矢量的整数值来确定电梯轿厢的方向。如果公共矢量的整数值大于接近传感器输入矢量的整数值,则运动将向前移动,如果公用矢量整数值小于接近传感器输入矢量整数值,则运动将反转。此时两个整数值相同,电梯轿厢将停止。可重配置电梯控制器的Verilog程序正是使用该逻辑开发的。

在Verilog中,所使用的基本构建块是模块。首先,我们需要定义输入和输出端口,然后将输入和输出分开,并定义数据类型。Verilog中有两种固定数据类型,即“线网”和“寄存器”。线网数据类型(即连线,三态线,线与网等)建立结构连接,而寄存器数据类型(即寄存器数据类型,整数,实数,时间寄存器等)存储信息。

  1. 仿真

Xilinx ISE软件为Verilog开发环境提供全面的编辑,综合和仿真以及实施工具。在Xilinx ISE编写并合成HDL程序后,在下载到FPGA开发板之前,使用仿真工具模拟开发的程序,以便验证代码行为。最初必须通过根据需要调整时钟频率和宽度来创建测试台波形。然后如图1所示,将假定的输入给予测试台。

考虑电梯轿厢位于第0层的情况。因此,接近传感器输入如图1所示变为“高”。然后假设从轿厢按钮请求到达第2层。因此,逆变器正向输出并且为了移动电梯轿厢,制动器输出应该“高”。另外,用于指示请求的灯应该变为“高”。为了表示车辆经过楼层1的接近传感器的时刻,将相关输入设置为“高”,然后在楼层2处,将该楼层的接近输入再次设置为“高”。因此,在轿厢到达2楼时输出应该没有差别。在2楼,请求的指示灯应该是“低”的。当汽车在第2层时,假设从汽车按钮发出另一个请求到达第0层。因此,请求的指示灯输出应该变为“高”。然后再次将输入中的楼层1和楼层0的接近传感器值分别设为“高”。因此,变频器反转和制动器的输出应为“高”,直到达到0楼。在第0层,请求的指示灯变成“低”。

在仿真中观察输出以验证是否获得预期的输出。 图2显示了给定输入的模拟结果。

图 1 测试台波形

图 2仿真输出

用于电梯控制器的硬件实现

  1. 原型电梯

关于控制器实现,使用了三层的原型电梯。

为了使电梯轿厢上下移动,通过向主逆变器提供两个控制输出,主感应电机分别在正向和反向驱动。 同时还需要释放启动电磁铁的电磁制动器,以便为另一台变频器提供三个控制输入。

  1. 硬件接口

本研究的硬件设计主要包括四部分:输入电路,输出电路,控制器核心(FPGA板)和工厂(电梯)。我们从一开始就面临的主要问题是将FPGA输入和输出连接到现有的原型电梯系统。由于现有系统电压和FPGA输入和输出电压电平不同,我们不得不设计电压转换的中间电路。在该系统中,电梯的工作电压为24VDC,而FPGA输入和输出的工作电压电平为3.3VDC。因此根据图3进行必要的输入和输出电路。

使用输入电路中的4n35光电耦合器将24V设备输入信号降压至3.3V,因为当电梯给出24VDC信号时,光耦合器中的晶体管发生偏置,所以FPGA输入引脚从电路板接收3.3V本身。使用光耦合器的优势在于它隔离了24V系统和3.3V系统,以保证FPGA板的保护。根据Verilog开发的代码,FPGA板为相应的输入生成一个输出。FPGA电路板的输出连接到输出电路,在电路中使用继电器电路将3.3V升压至24V。

提出的改进可靠性的方法

  1. 软件错误

软错误是影响器件的瞬态故障,导致存储器单元中存储值的位翻转,从而通过重写正确的值可以恢复错误。 这些类型的故障可能会影响组合逻辑和时序逻辑。在考虑FPGA器件时,由于FPGA的用户编程功能取决于器件中数百万个配置锁存器中存储的数据,因此软错误的发生是一个更成问题的问题。

图 3硬件设计

可能有两个共同的软错误:单事件瞬态(SET)和单事件干扰(SEU)。SET是信号上的一个脉冲,如果锁存在寄存器中会产生错误值,而SEU可能会改变任何静态存储器元件(锁存器,触发器或RAM单元)的逻辑状态或在组合逻辑路径中引起瞬态脉冲。这些错误可能会破坏导致数据错误或正在运行的应用程序控制的应用程序寄存器的内容,这意味着计算出现错误。在另一种情况下,故障可能会影响配置寄存器,导致由查找表(LUT)或组合逻辑块(CLB)之间的路由单元执行的功能改变,导致功能改变。 虽然第一种情况可能通过重新计算或应用程序重置来恢复,但第二种情况需要重新配置FPGA。对设备进行重新编程的可能性受到了很多关注,并且已经引入了改进以在运行时也即动态地支持这种特征。 此外,FPGA技术的进步已经开始支持在运行时仅重新配置设备的一部分,从而减少重新编程设备所需的时间并避免停止整个系统的必要[5],[6]。

  1. 三重模块冗余(TMR)

TMR是实现故障屏蔽属性的常用硬件冗余技术。正如在[7]中所讨论的那样,它使用整个系统的三个副本,如图4所示,并增加了一个选举人,根据大多数投票结果在三人中确定了正确的结果。TMR用于缓解在存储计算期间使用的临时数据的存储器元件以及存储配置比特流的存储器元件中发生的软错误的影响。该技术可应用于从整个系统到单个组件的不同抽象层次。

图 4框图中的TMR

  1. 系统需求

本文提出的研究提出了一种通过对TMR的了解来提高基于Xilinx Spartan FPGA的电梯控制器可靠性的方法。最初我们确定了可靠运行的控制系统的基本要求。

bull;系统应该有能力检测正在运行的系统中的故障

bull;如果运行中的系统出现故障,控制系统应该能够将运行切换到冗余电路

因此,提高可靠性的方法是在获得可用资源的最大收益的约束下开发的。

  1. 建议的方法

在所提出的方法中,我们的基本代码有三个实例作为实例A,实例B和实例C,以便三个并行进程同时运行。图5显示了提议实现的框图。由于有三个实例,如果在一个实例中发生错误,它只会影响特定的实例。其他两个实例正常工作。三个实例的输出通过多路复用器进行多路复用,并将准确的实例输出连接到实际的电梯输出。要连接哪个实例输出的过程取决于多路复用控制器的决定。控制者担任多数选民。

图 5提出的可靠性改进方法

假设实例A中有一点小错误,以至于输出与实际输出不同。由于另外两个实例B和C正常工作,所以当控制器比较三个输出时,大多数结果可以被认为是无误差的实际输出。因此,B和C实例输出中的一个将作为电梯输出进行连接。

结论

  1. 三重逻辑

在根据所描述的可靠性改进方法的实施中,第一步承担了三次在初始阶段开发的基本代码。在Verilog HDL中,这可以通过使用单独的顶层模块文件来实现。在顶层模块文件中,根据以下语法定义了代码的三个实例。

rel #(.N(N))rel1_A(

.reset_ins(reset),

.clk(clk),

.PROX_ins(PROX)

.HBTNS_ins(HBTNS),

.CBTNS_ins(CBTNS),

.INV1F_ins(INV1F_A),

.INV1R_ins(INV1R_A),

.BRAKE_ins(BRAKE_A)

);

这里“rel”是用于基本代码的文件名称,而“rel1_A”是实例名称之一。“N”是来自用于根据需要改变电梯层数的基本码的参数。

经过代码三重迭代后,使用Xilinx ISE工具之一观察设计,以估计FPGA瓦片上的资源使用情况。 可以清楚地看到,由于设计简单,逻辑三重已经增加了资源使用的水平,但仍处于可管理的水平。

三重前和三重后的结果分别如图6和图7所示。

图 6 三重冗余优化之前的资源使用

图 7 三模冗余优化之后的资源使用

  1. 验证方法

为了验证所提出的可靠性改进方法,将三个向量定义为三个实例的输出寄存器值。由于基本代码在每个模块处生成三个输出,所以三个4位寄存器被定义为每个实例的输出。Verilog语法如下。

reg[3:0] machine_A;

reg[3:0] machine_B;

reg[3:0] machine_C

然后,在每个寄存器中,将bit0指定为逆变器正向信号,bit1作为逆变器反向信号,bit2作为制动信号,bit3作为手动输入来产生错误的输出值,如图8所示。接下来,根据显示的Verilog语法,生成来自实例A,B和C的三个输出向量。

always@*

begin

machine_A[0] lt;= INV1F_A;

machine_A[1] lt;= INV1R_A;

machine_A[2] lt;= BRAKE_A;

machine_A[3] lt;= 1;

end

然后执行该过程以同时检查每个模块的输出寄存器值,并显示系统与另一个模块一起工作时这些输出中是否有错误。为此,首先将当前工作模块实例保持在寄存器值。

if(!fault_detect) case(shift_re

全文共10179字,剩余内容已隐藏,支付完成后下载完整资料


资料编号:[11931],资料为PDF文档或Word文档,PDF文档可免费转换为Word

原文和译文剩余内容已隐藏,您需要先支付 30元 才能查看原文和译文全部内容!立即支付

以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。