0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

电子设计 来源:微计算机信息 作者:程建辉;肖金壮 2021-03-24 16:23 次阅读

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 结论

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

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    452

    文章

    50117

    浏览量

    420333
  • 微处理器
    +关注

    关注

    11

    文章

    2241

    浏览量

    82241
  • 模数转换器
    +关注

    关注

    26

    文章

    3079

    浏览量

    126690
收藏 人收藏

    评论

    相关推荐

    S3C44B0X pdf

    S3C44B0X p
    发表于 06-27 09:37 76次下载

    s3c44b0x中文资料,s3c44b0x中文数据手册

    S3C44B0X 中文数据手册...........................................................116 IIC 总线接口
    发表于 06-27 09:40 152次下载

    基于S3C44B0X微处理器的JFFS2件系统实现

    基于S3C44B0X微处理器的JFFS2件系统实现
    发表于 03-28 09:50 16次下载

    μC OS-II 在S3C44B0X 处理器上的移植

    介绍实时操作系统μC/OS-II 的特点和内核结构,给出μC/OS-II 在Samsung 嵌入式S3C44B0X ARM7 微处理器上的移
    发表于 05-15 13:34 18次下载

    基于S3C44B0X 的uClinux的移植

    S3C44B0X 作为一款以ARM7TDMI 为内核的微处理器,正日益受到广泛的应用;uClinux作为一种运行于没有MMU 的嵌入式微处理器的Linux 衍生操作系统,也广泛应用于嵌
    发表于 05-15 15:40 14次下载

    基于S3C44B0X+μcLinux的嵌入式以太网设计与分析

    本文介绍了基于一款ARM 处理器——S3C44B0X 的以太网接口电路设计,并详细地阐述了在嵌入式操作系统μcLinux 下网卡驱动的实现
    发表于 06-15 11:36 16次下载

    基于S3C44B0X的嵌入式网络通信研究

    S3C44B0X 作为一款以ARM7TDMI 为内核的微处理器,得到了广泛的应用。本文采用该处理器,使用到广泛应用的源代码公开的uClinux 操作系统,
    发表于 06-15 15:44 18次下载

    μC/OS-Ⅱ在S3C44B0X上的移植

    本文简介了一种实时多任务内核μC/OS-Ⅱ。并根据S3C44B0X 芯片的硬件特性,给出了一种把μC/OS-Ⅱ移植到S3C44B0X 上的方案。关键词:实时多任务内核;μ
    发表于 08-31 11:46 18次下载

    基于S3C44B0X处理器的VxWorks中断设计

    通过基于立宇泰S3C44B0X 开发板的BSP 移植调试,阐述了VxWorks 的异常中断处理机制,实现了VxWorks 基于S3C44B0X 处理
    发表于 09-03 11:25 17次下载

    S3C44B0X中文手册 pdf

    S3C44B0X中文数据 三星的S3C44B0X 16/32位RISC处理器被设计来为手持设
    发表于 02-10 12:07 254次下载

    S3C44B0X datasheet, RISC MICRO

    S3C44B0X d
    发表于 03-09 09:47 35次下载

    基于S3C44B0X的心电信号处理系统设计

    基于S3C44B0X的心电信号处理系统设计 本文设计了一个具有数字化、信息化特征的心电信号处理系统。该
    发表于 10-06 08:22 866次阅读
    基于<b class='flag-5'>S3C44B0X</b>的心电<b class='flag-5'>信号</b><b class='flag-5'>处理系统</b>设计

    微处理器S3C44B0X音频文件播放

    微处理器S3C44B0X音频文件播放 S3C44B0X是三星公司针对嵌入式系统推出高性价比微处理器,它是基于ARM7TDMI内核的16/3
    发表于 03-16 11:46 765次阅读
    <b class='flag-5'>微处理器</b><b class='flag-5'>S3C44B0X</b>音频文件播放

    S3C44B0X微处理器内置LCD控制

      引言   S3C44B0X微处理器是三星公司专为手持设备和一般应用提供的高性价比和高性能的微控制解决方案。它使用ARM7TDMI核,工作在66MHz,集成了LCD控制等外围器
    发表于 08-30 10:18 1707次阅读
    <b class='flag-5'>S3C44B0X</b><b class='flag-5'>微处理器</b>内置LCD控制<b class='flag-5'>器</b>

    S3C44B0X原理图

    S3C44B0X原理图:
    发表于 09-14 15:28 167次下载
    <b class='flag-5'>S3C44B0X</b>原理图