电动车故障记录、读取方法及装置
技术领域
本发明涉及电动车领域,具体涉及电动车故障记录、读取方法及装置。
背景技术
两轮电动车因方便、实用、环保等特点,深受大众喜欢,市场需求量越来越大。据伊维经济研究院统计数据显示,截止到2018年底,中国两轮电动车社会保有量达到2.9亿辆,并预计2023年突破3.5亿辆,因庞大的市场以及电动车复杂的运行工况对于整车系统的可靠性要求非常高。
市场上的两轮电动车价格大多数较为廉价,出于成本考虑,无法具备类似飞机黑匣子的故障记录装置,当整车系统出现故障,研发人员无法快速定位两轮电动车发生故障的原因。
另外,传统的故障记录装置采用数据覆盖技术,后面写入的数据会覆盖掉以前的数据。而电动车中,一些故障在重启系统后即可消除,这样,如果采用传统的故障记录装置,将会覆盖掉前次故障的故障内容,无法将每次故障的故障内容都保存,不利于通过分析故障来改进电动车。
还有,电动车采用了电机矢量控制(Field Oriented Control,FOC),矢量控制限制了三相电流的采样频率,导致传统的故障记录装置无法精确还原故障时刻的工况。
发明内容
本发明第一方面解决传统故障记录装置因成本高以及无法将每次故障的故障内容都保存,无法应用于电动车的技术问题。
本发明第二方面解决传统故障记录装置应用在电机矢量控制领域时无法精确还原故障时刻工况的技术问题。
根据本发明的第一方面,提供了一种电动车故障记录方法,该故障记录方法包括以下步骤:
S11、根据单个时刻的故障内容大小、单次故障需要保存的总时刻个数、EEPROM起始地址和已经发生的总故障次数,计算得到EEPROM的偏移地址;
S12、电动车运行中,实时保存工况信息到SRAM中;以及
S13、电动车发生故障后,将保存在SRAM中的故障前、后的多个时刻的工况信息作为故障内容,按照时刻顺序排序写入EEPROM的以所述偏移地址为起始地址的多个存储单元中;
重复所述步骤S11至步骤S13。
根据本发明的第二方面,上前述方案的基础上,进一步,在所述步骤S12包括:在电动车发生故障后,修改采样模块的频率,提高故障后工况信息的采样频率。
在上述的电动车故障记录方法中,优选地,所述步骤S12包括:在SRAM中定义数组,使数组下标的顺序与时刻顺序相同,按时刻顺序将各个时刻的工况信息保存在对应的数组中。
在上述的电动车故障记录方法中,优选地,所述步骤S12包括:检测电机是否处于驱动状态,在非驱动状态不保存工况信息。
在上述的电动车故障记录方法中,优选地,所述工况信息包括电枢电流交直轴分量目标值、电枢电流交直轴分量反馈值、电枢电压交直轴分量目标值、油门开度、电机转速、故障类型、控制器温度、三相电流、母线电流和母线电压。
根据本发明的第一方面,还提供了一种电动车故障读取方法,该故障读取方法包括以下步骤:
S21、与上位机联机后,将已经发生的总故障次数发送给上位机;以及
S22、解析获取故障内容指令,获得需要提取的故障内容的序号,根据单个时刻的故障内容大小、单次故障需要保存的总时刻个数、EEPROM起始地址和需要提取的故障内容的序号,计算得到需要提取的故障内容对应的EEPROM地址,进而读取其中存储的故障内容发送给上位机。
在上述的电动车故障读取方法中,优选地,所述步骤S21和步骤S22包括:当整车状态为正常运行时,不响应上位机的指令。
在上述的电动车故障读取方法中,优选地,所述步骤S21包括:联机后,在设定时间内未收到进一步的指令时,退出联机状态;所述步骤S21和步骤S22包括:在接收到断开指令后,退出联机状态。
根据本发明的第一方面和第二方面,还提供了一种电动车的故障记录装置,该故障记录装置包括:用于存储故障内容的SRAM;用于在发生故障后保存故障内容的EEPROM;用于采集故障内容的采样模块;用于和上位机通信的通信模块;分别与所述SRAM、EEPROM、采样模块和通信模块相连的控制器;以及存储有能够被所述控制器执行的计算机可读程序的程序存储器;所述计算机可读程序被所述控制器执行时,所述故障记录装置执行如上述一项所述的故障记录方法的步骤或执行如上述任意一项所述的故障读取方法的步骤。
在上述的故障记录装置中,优选地,所述采样模块包括模数转换器,当运行中发生故障时,通过修改所述模数转换器的参数来提高采样频率。
与现有技术相比,本发明至少具有以下有益效果:
利用非易失性存储器,在低成本下可以解决定位故障根本原因难的问题。
合理分配EEPROM地址,利用地址顺序可清晰读取整车系统故障时的某一段时间内的工况,便于分析故障的根本原因及复现故障工况。
设置有EEPROM地址计算机制,能够自动分配地址,从而能够记录多次故障内容。
设置有采样频率调整机制,在发生故障整车停机后,能够提高采样频率,保障了故障工况信息的实时性。
附图说明
图1为电动车故障记录方法的流程图;
图2为故障内容的地址分配示例;
图3为电动车故障读取方法的流程图;
图4为电动车故障记录装置的框图;
图5为实现故障记录和故障读取的事件流总框架图。
附图标记:1、EEPROM;2、程序存储器;3、控制器;4、SRAM;5、采样模块;6、通信模块。
具体实施方式
下面结合附图和实施例对本发明做进一步说明。
请参照图1,本电动车故障记录方法包括以下步骤:
步骤S11、根据单个时刻的故障内容大小、单次故障需要保存的总时刻个数、EEPROM起始地址和已经发生的总故障次数,计算得到EEPROM的偏移地址。
定义单次故障中单个时刻的故障内容大小,单次故障需要保存的总时刻个数以及需要保存的总故障次数。
其中,单次故障需要保存的总时刻个数包括:故障前x1个时刻以及故障后x2个时刻,如图2中所示,本实施例中,分别表示为t-x1时刻、……、t-4时刻、t-3时刻、t-2时刻、t-1时刻、t时刻、t+1时刻、t+2时刻、t+3时刻、……、t+x2时刻。
系统上电后,初始化单个时刻的故障内容大小、需要保存的总时刻个数以及EEPROM起始地址。然后,读取EEPROM,得到已经发生的总故障次数,通过式1计算出EEPROM的偏移地址。
AddrEEPROMOFFSET=AddrEEPROMBase+FaultNum*TimeNum*PackageSize---式1
式1中,AddrEEPROMOPPSET代表EEPROM的偏移地址,AddrEEPROMBase代表EEPROM起始地址,FaultNum代表已经发生的总故障次数,TimeNum代表单次故障需要保存的总时刻个数,PackageSize代表故障小包大小,即单个时刻的故障内容大小。
步骤S12、电动车运行中,实时保存工况信息到SRAM中。
在执行该步骤S12前,获取电动车整车状态。判断首次上电整车系统是否正常,若已经异常,则认定整车已经发生严重故障导致瘫痪,此时所有的故障内容无需保存。若没有异常则执行步骤S12。
执行步骤S12时,检测电机是否处于驱动状态,如果处于驱动状态则继续执行,如果在非驱动状态则不保存工况信息。借此可在一定程度减少EEPROM的擦写次数,延长使用寿命。
保存方法包括:在SRAM中定义数组,使数组下标的顺序与时刻顺序相同,按时刻顺序将各个时刻的工况信息保存在对应的数组中,数组大小即为需要保存的总的时刻个数。采样模块每采样一个时刻的工况信息后,实时地更新到SRAM中。
例如,定义的数组为Yt-x1、……、Yt-4、Yt-3、Yt-2、Yt-1、Yt、Yt+1、Yt+2、Yt+3、……、Yt+x2。它们对应存储t-x1时刻、……、t-4时刻、t-3时刻、t-2时刻、t-1时刻、t时刻、t+1时刻、t+2时刻、t+3时刻、……、t+x2时刻的故障内容(工况信息)。
对于故障时刻三相电流的采样频率要求较高,但是由于FOC矢量控制限制了三相电流的采样频率。为了使得记录的故障内容更具参考意义,保障还原故障时刻工况的实时性。进一步增加了频率调整机制,即:当触发故障时,立即修改采样模块的频率,提高故障后工况信息的采样频率。
作为一种实施方式,采样模块包括ADC,即模数转换器,通过修改所述模数转换器的参数来提高采样频率。在故障前,ADC保持由FOC控制的采样频率。即,以FOC控制的采样频率采集t-x1时刻、……、t-4时刻、t-3时刻、t-2时刻、t-1时刻、t时刻的工况信息,以修改后的更高的采样频率采集t+1时刻、t+2时刻、t+3时刻、……、t+x2时刻的工况信息。
作为故障内容,所采集的工况信息包括但不限于电枢电流交直轴分量目标值、电枢电流交直轴分量反馈值、电枢电压交直轴分量目标值、油门开度、电机转速、故障类型、控制器温度、三相电流、母线电流和母线电压。
步骤S13、电动车发生故障后,将保存在SRAM中的故障前、后的多个时刻的工况信息作为故障内容,按照时刻顺序排序写入EEPROM的以所述偏移地址为起始地址的多个存储单元中。
具体地,当t+x2时刻的工况信息采集完毕后,对EEPROM执行写操作。
为了达到利用地址顺序可清晰读取整车系统故障时的某一段时间内的工况的目的,将SRAM地址内容一一对应地写入EEPROM中。
首先通过式2计算存储t-1时刻故障内容的SRAM地址,进而得到其余时刻地址,最后按照图2所示的故障内容地址分配图将SRAM中的故障内容写入EEPROM。
式2中,AddrSRAMT-x1代表T-X1时刻故障小包的SRAM地址,AddrSRAMBase代表用于记录动态信息的数组起始地址,ArrayIndex代表故障时刻的数组下标,x1代表需要保存故障前的时刻个数,PackageSize代表单个时刻的故障小包大小,即单个时刻的故障内容大小,TimeNum代表总的时刻个数。
图2中以第一次故障为例,表示了故障内容地址的详细定义。其中,故障内容地址顺序与时刻顺序相同,故障顺序与地址顺序相同。换言之,在EEPROM中,按地址顺序区分单个故障的时刻顺序,并且,按地址顺序区分各个故障的顺序。
通过上述步骤S11可以为每一次故障分配不同的EEPROM地址。因此,重复上述步骤S11至步骤S12,可以将每一次故障时的工况信息记录在EEPROM中。这样,通过读取方法,可以读取每一次故障的工况信息,便于更加全面地掌握存在的问题和做出改进方案。
参照图3,本电动车故障读取方法包括以下步骤:
步骤S21、与上位机联机后,将已经发生的总故障次数发送给上位机;
步骤S22、解析获取故障内容指令,获得需要提取的故障内容的序号,根据单个时刻的故障内容大小、单次故障需要保存的总时刻个数、EEPROM起始地址和需要提取的故障内容的序号,计算得到需要提取的故障内容对应的EEPROM地址,进而读取其中存储的故障内容发送给上位机。
典型实施例中,设计了USART(Universal Synchronous/Asynchronous Receiver/Transmitter,通用同步/异步串行接收/发送器)通信协议,定义了联机、断开、故障状态信息获取及故障内容获取四种指令。控制器根据上位机指令工作,接收到相应指令执行相应答复。控制器接收到联机指令进入故障内容读取模式;接收到断开指令退出故障内容读取模式;接收到故障状态信息获取指令发送故障内容的状态信息;接收到故障内容获取指令时,读EEPROM后将故障内容发送给上位机。更详细的故障读取方法如下:
获取上位机指令:
控制器判断整车电机是否处于驱动状态,若不处于驱动状态,控制器等待接收上位机指令;若处于驱动状态,上位机即使发送了相应指令,控制器也不会做出回应。
执行上位机指令:
若接收到联机指令,联机,控制器进入故障信息读取状态,此时控制器不能驱动电机,继续等待上位机指令,若等待时间过长控制器退出故障信息读取状态。
若接收到故障内容的状态信息获取指令,控制器向上位机发送单个时刻的故障包大小PackageSlze、需要保存的总时刻个数TimeNum、EEPROM起始地址AddrEEPROMBase以及已经发生的总故障次数FaultNum。
若接收到故障内容获取指令,解析该指令,获得需要提取的故障内容的序号n,由式3计算出保存第n次故障内容的EEPROM地址,以该EEPROM地址作为起始地址,通过地址递增的方式,将第n次故障的各时刻的故障内容读取并发送给上位机。
AddrEEPROMRead=AddrEEPROMBase+n*TimeNum*PackageSize---式3
式3中,AddrEEPROMRead代表第n次故障内容的EEPROM地址,AddrEEPROMBase代表EEPROM起始地址,PackageSize代表单个时刻的故障小包大小,即单个时刻的故障内容大小,TimeNum代表单次故障保存的总的时刻个数。
若接收到断开指令,控制器退出故障信息读取状态,控制器能驱动电机。
通过上述故障读取方法,可以从EEPROM中读取任意一次故障的故障内容。
参照图4,本电动车的故障记录装置包括:用于存储故障内容的SRAM4;用于在发生故障后保存故障内容的EEPROM1;用于采集故障内容的采样模块5;用于和上位机通信的通信模块6;分别与所述SRAM4、EEPROM1、采样模块5和通信模块6相连的控制器3;以及存储有能够被所述控制器3执行的计算机可读程序的程序存储器2;所述计算机可读程序被所述控制器3执行时,所述故障记录装置执行如上述的故障记录方法的步骤或执行如上述述的故障读取方法的步骤。
其中,控制器3可以采用MCU等。
其中,采样模块5包括模数转换器,当运行中发生故障时,通过修改所述模数转换器的参数来提高采样频率。模数转换器也可内置于控制器3中。
图5中示出了通过上述故障记录装置实现故障记录和故障读取的事件流。当电机为驱动状态时,将驱动标志置起,当发生故障后,将故障标志置起。驱动标志置起状态,将采集的工况信息,即故障内容,实时更新到SRAM。故障标志置起后,提高采样频率,实时更新故障内容到SRAM,完成后,写入EEPROM中。接收到上位机的指令后,解析指令,然后读EEPROM,获得对应的故障内容发送上位机。
上述通过具体实施例对本发明进行了详细的说明,这些详细的说明仅仅限于帮助本领域技术人员理解本发明的内容,并不能理解为对本发明保护范围的限制。本领域技术人员在本发明构思下对上述方案进行的各种润饰、等效变换等均应包含在本发明的保护范围内。