基于S3C44B0X微处理器实现运动系统电流信号采集电路的设计

发布时间:2023-01-04  

1 引言

运动控制系统在国民经济和国防等领域中所起的作用以及应用的范围越来越大,运动控制技术正在不断的深入到各个领域并迅速发展,其应用范围已经涵盖了几乎所有的工业领域。例如在生产过程中对机器人手的位置控制;造纸厂中纸张滚卷的恒张力控制;导弹制导系统控制导弹准确击中目标等。


为了保证及时发现运动控制系统中可能发生的各种故障,应在系统中加入故障检测子系统。电机驱动运动控制系统中的大部分机械故障和电气故障都会引起电机电流的异常变化,非线性能量算法能够从电流信号中提取出系统故障信息,从而及时检测出系统中可能产生的各种故障。


本文首先以三星公司的S3C44B0X微处理器为核心芯片,设计电流信号采集电路,然后介绍了非线性能量故障诊断算法。最后以X-Y运动平台为实验对象,验证该算法的有效性。


2 信号采集电路设计

S3C44B0X具有8通道的10位模数转换器(ADC),它是一个逐次逼近型的ADC,内部结构中包括模拟输入多路复用器,自动调零比较器,时钟产生器,10位逐次逼近寄存器和输出寄存器。该ADC还提供可编程选择的睡眠模式,以节省功耗。使用S3C44B0X的ADC时应当注意,在ADC退出休眠模式后,为使ADC参考电压稳定,在第一次A/D转换之前需等待10ms。通道切换时,应该保证至少15μs的时间间隔。


S3C44B0X的ADC输入电压范围为:0“2.5V,而被测电机电流信号的变化范围是:-5V”+5V。因此首先应将双极性的输入信号转化到0“2.5V范围内。如果采样频率高于100Hz,还应在信号输入通道加上采样保持器。

基于S3C44B0X微处理器实现运动系统电流信号采集电路的设计

图 1: 模拟信号调理电路

图1中利用μA741通用型运算放大器构成升压电路,选用LF398作为采样保持器。可知图中各节点电位的关系可用(1)式表达,从而将-5V”+5V变化范围的被测信号转化到0“2.5V。

3 故障检测算法

为了及时检测出系统中产生的故障,需要对电机电流信号进行实时处理,从中提取出故障信息。文献[3,4]给出了一种非线性能量算法NEO (Nonlinear Energy Operation),可以用来检测出信号的异常变化。对于给定的信号序列x(n),非线性能量算法定义如下:

文献在NEO中引入时域窗口的概念,在此基础上提出了光滑非线性能量算法SNEO(SmoothedNonlinear Energy Operation)。该算法可用下式描述:

其中 ⊗为卷积运算符,ω为时间窗口(time window)。式中的ω(k)可以按照下式选取:

为了达到理想的检测效果,也可以采用多步SNEO:

其中:

通过选择适当的时间延迟m,可以有效减少采样噪声的影响。


4 信号采集和分析

为了快速准确的检测出系统发生的故障,需要设置适当的滤波器参数(比如多步SNEO算法中的b和m),这就要首先对被检测信号进行分析处理。ARM芯片虽然能够实时处理大量的数据,但是缺乏上位机(如工控机)专用软件具有的强大数据分析处理功能。这里选用科学研究中经常用到的MATLAB软件对ARM系统采集到的数据进行离线分析处理,得到所需的滤波器参数。


为了方便将ARM采集到的数据导入到MATLAB中,首先编写了MATLAB和ARM系统的串行通信程序。要确定MATLAB环境已安装了仪器控制工具箱(Instrument Control Toolbox)。在MATLAB中,可以通过创建串口对象,来实现MATLAB与串口设备的通信。


创建串口对象可使用如下的语句:

bj = serial(‘port’, ‘PropertyName’, Property Value ,。..)

其中obj为创建的串口对象;port为串口对象所对应的串行口,如COM1;PropertyName和PropertyValue分别为串口属性名称和相应的取值,两者需成对出现。创建串口对象之后,在进行串口的读写操作之前,还需调fopen函数来建立串口对象同串口设备的实际连接。


可以使用fprintf和fwrite函数向串口设备发送数据,其中fprintf用于向串口设备发送文本信息,fwrite用于向设备发送二进制数据。MATLAB提供了很多函数,利用这些函数可以方便灵活的读取串口设备发送的信息;其中最常用的两个读串口函数为fread和fscanf,fread用于从串口设备读取二进制信息,fscanf用于读取设备发送的文本信息。


如果不再使用串口,应将串口对象同设备断开,然后将其从内存和MATLAB工作空间中删除。可以使用fclose,delete,chear来完成这一系列操作。


下面给出的MATLAB脚本文件用于接收ARM系统采集到的5000个双字节数据,并将这些数据存储到100×50的矩阵data中。这样就可以方便的利用MATLAB强大的数据分析处理功能,从得到的数据中总结出有用的信息。

s = serial(‘COM1’,‘BaudRate’,115200,‘Terminator’, {‘’,‘’});

data = zeros(100,50);

fopen(s);

for i = 1:50

fwrite(s,0x1,‘char’);

tmp = fread(s,100,‘int16’);

data(:,i) = tmp;

for j = 1:1000

j=j;

end

end

fclose(s);delete(s);clear s;

ARM系统的串口发送程序如下。在ARM的串口接收中断服务程序中将URXD0Flag赋值为1,这样每当ARM接受到MATLAB发送过来的SOH (Start of Header)字符,即0x1,便会向MATLAB发送100个双字节数据。sl和sh分别存放数据的底八位和高八位。

while(1) {

if(URXD0Flag) {

for(j = 1; j <= 100;j++) {

sl = signal[ i] & 0xff;

sh = (signal[i++] & 0xff00)>>8;

Uart_SendByte(sl);

Uart_SendByte(sh);

}

URXD0Flag = 0;

}

if(i >= 5000)

break;

}


5 算法验证

这里以X-Y运动平台为实验对象,设计了系统故障实时检测实验,验证故障检测算法的有效性。首先通过实验得到X-Y平台正常工作时电机的电流信号TN,然后在平台运动过程中给平台施加一个额外的阻力(模拟故障发生的情况),得到电机输出电流信号为TF。通过对这两种情况下的电流偏差信号TE(TE=TN-TF)进行分析,可以从中提取出故障信号。

S3C44B0X通过ADC采集到的TN,TF信号,以及TE随时间的变化曲线分别如图2和图3所示。

图 2: TN,TF 变化曲线图 3: TE 随时间变化曲线

从图3可以看出,TE信号中存在较多的干扰信息,为了准确无误的检测出其中的故障信号,就应采用某种滤波算法对TE进行处理,从而将故障信号提取出来。图4和图5分别是采用NEO和多步SNEO(m=50,b=50)两种方法对TE进行处理,得到的信号曲线。

图 4: 利用NEO 对TE 进行处理的结果曲线图 5: 利用多步SNEO 对TE 进行处理的结果曲线


比较图4和图5可以看出,多步SNEO能够更好的消除干扰噪声的影响,将故障信息成功地提取出来。但是利用SNEO会引入一定的延时,从而造成故障被检测出时间的滞后。从式(5)和式(6)可知,当m=50,b=50,采样频率为500Hz时,滞后时间为:

6 结论

本文利用非线性能量算法对电机电流偏差信号进行分析,能够及时发现运动控制系统中发生的各种扭矩相关故障,从而提高系统故障检测环节的准确性和及时性。可以在此基础上设计系统容错环节,使系统的安全性和可靠性得到更好的保证。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    . 设计目标 单片机控制4路PWM,输出的PWM信号控制输出电压在0-3.0V之间,经过电流电压转电流电路变成电流信号,输出电流在0-20mA之间。按键调节输出电流,oled实时显示4路电流......
    电动机控制电路和正反转电路详解;电动机控制电路的工作原理 电动机控制电路的工作原理是通过控制电流和电压等因素来实现电动机的启动、停止、调速和反转等操作。电动机的控制电路通常由开关电路、功率......
    。 反馈环路控制晶体管的导通状态,即使输入电压或负载发生变化,也能有效稳定输出电压。 图 3. 线性稳压器电路的基本原理图,展示了关键元件和电流管理。 (图片来源:Analog Devices) 然而......
    数字式兆欧表的电路原理图解;数字式一般由直流电压变换器将电池电压转换为直流高压电作为测试电压,这个测试电压施加在被测物上产生的电流经电流电压转换器转换为相应的电压值,然后......
    结构可以得到非常好的测量效果。这种同步检测电路类似于锁相放大器结构,包括传感器的方波激励,电流转电压放大器,和同步解调三部分。他表示,需要注意的是电流转电压放大器需选用输入偏置电流极低的运放。另外......
    压转换器 CN-0508设计的第一级是 LT8612 同步降压转换器。降压转换器或降压型开关模式电源可有效地降低直流电压。相对于具有类似电流能力的线性稳压器,降压转......
    秒钟,或者10秒钟,而交流电源电压仍未回升.则励磁装置将退出强励状态。   5.失步保护电路   同步电动机在运行中可能会由于某种原因出现脱离同步的现象,这种运行状态称为失步。同步电动机失步将会引起严重的电流......
    Open)。 二、两只继电器组成的正反转电路 两只继电器组成的正反转电路 三、用继电器实现直流电机正反转的方法 当直流电机两端加正向电压时电机正转,反之则反转。在工业应用中,供电电源一般是12V......
    REASUNOS瑞森半导体碳化硅二极管在大功率电源上的应用;大功率电源通常由一个变压器、整流电路、滤波电路、功率半导体器件和开启电路等多个部分组成。变压器主要用于将市电的交流电压转换为设备所需要的直流电压......
    负载用作初始负载,以表明系统能够从提供拉电流转换为获取灌电流,反之亦然。 图7.用于进行拉灌电流测试的电路板设置。 图8.该测试板电路设置的框图。 捕捉到的波形如图9所示。直流电源开启后,VNEG电压轨开始获取灌电流......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>