1 引言
磁流变液(magnetorhelogical fluids, MRF)是由非胶体的细小颗粒分散溶于绝缘载液中形成的随外加磁场变化而可控制其流变行为的悬浮液。
磁流变液在外加磁场作用下流变特性发生急剧变化,可由流动性良好的液体状态在短时间(毫秒级)内粘度增大,而呈现类似固体的状态,而且这种变化是连续、可逆的,即一旦去掉磁场后,又变成可以流动的液体,表现出优良的可控性能。磁流变阻尼器基本组成原理如图1所示:
图1 磁流变阻尼器组成原理图
分析可知,活塞受力平衡方程为:
其中x为活塞位移,m为质量,k为弹性系数,为其它阻力,均可测出。改变绕在活塞上的线圈中的电流的波形、频率、幅值,就能控制腔体中磁流变液的流体状态,从而达到控制阻尼系数 的目标。
目前,各主要发达国家仍在竞相发展这一技术,研究最多的有美国、德国和日本等。国内对这方面特别是在应用方面的研究尚处于起步阶段。本文给出了一种基于Motorola公司M68HC08系列单片机的磁流变阻尼器控制系统设计方法。
2 控制系统硬件总体设计
控制系统的主要设计目标是一个波形、频率、幅度均可控的波形发生器。一种方法是采用软件编程即在单片机中存贮波形数据再通过D/A转换输出,这种方法所需硬件少,但是占用MCU运算时间多,调节波形参数困难,输出波形精度差。因此本文采用程控函数波形发生器芯片和程控增益放大器芯片的硬件组成方法。
硬件设计框图如图2所示,主要由上位机、MCU模块、D/A模块、波形发生模块、波形选择与幅度调节模块和检测模块组成。系统核心MCU模块采用MC68HC908GP32单片机,负责采集检测模块传来的压力、位移信号,进行控制算法运算,波形发生控制,MCU与上位机通过RS232进行串行通信,把系统参数与状态发送给计算机,并接受计算机的指令。
3 MCU模块
磁流变阻尼器的主要应用之一是减震器,工作环境可能十分恶劣,对MCU的性能提出了更高的要求。摩托罗拉08系列单片机是摩托罗拉公司1994年才推出的新产品,功能强大,型号齐全,抗干扰性能十分突出,本文采用该系列的通用型号MC68HC908GP32作为控制系统MCU。
如图2所示,GP32的PTA口用作DAC0832数据 DI7-DI0 ;PTB口用作压力和位移传感器输入,由GP32内部的8位A/D转换器进行A/D转换;PTD口发出PWM波;PTE口与计算机进行串行通信;所有的芯片控制线由PTC口引出。
4 D/A模块和波形发生模块
D/A模块采用8位D/A转换器DAC0832,属于常用芯片,在此不再赘述。需要注意的是GP32没有写信号线,0832需要的信号可由GP32的PTC口通过编程造出。
ICL8038是美国Intersil公司生产的单片精密函数发生器专用芯片,可以输出0.00l Hz一300KHz高质量的正弦波、矩形被(或方波、窄脉冲)、三角波(或锯齿波)等函数波形,具有频率范围宽、频率稳定度高、外围电路简单、便于制作等优点。
本文利用ICL8038作为三种波形的程控频率波形发生器芯片。如图3所示,单片机输出DAC0832 和运放LM324转为控制电压Vc送至ICL8038的8号脚。当Vc等于电源电压V+ 时,输出频率f最低,而当Vc比2V+/3高2伏时,所得输出频率f最高。
图3 ICL8038波形发生器
根据ICL8038技术手册,通过改变10脚所接电容C的大小可调整输出频率范围,4脚和5脚间跨接的1K 电位器调节内部恒流源波形上升时间和下降时间,相当于调节三角波上升和下降时间,方波的占空比,11脚和12脚上两个100K电位器调节可以输出正弦波形的对称性,减小波形失真度。
5 波形选择与幅度调节
四种波形的选择输出采用单片8通路开关CD4051,可由A、B、C三个二进制信号译码在8个通路中任选一路输出。
程控波形幅度调节有多种方法,可以采用程控增益放大器芯片,也可以采用改变运放反馈电阻的方法。集成程控增益放大器芯片一般增益只有几个档位,可调范围有限。改变运放反馈电阻最简单的方法是用多路开关选通不同阻值的反馈电阻,但缺点是漂移较大、输入阻抗不高。
本文采用单片0832和运放LM324构成程控增益电路,其原理如图4所示,输入Vi接0832的VREF,运放输出Vo接0832的Rfb 。0832内部是R-2R电阻网络,可以证明:Vo=-D Vi/256。其中D为单片机送入0832的数字量,增益A=-D/256。根据上述原理构成的程控增益电路不仅能增益量程多变,而且具有宽的通频带,性价比高。
图4 程控增益调节原理
6 软件设计
图5 主程序流程图
控制系统软件设计流程图如图5所示,初始化主要是配置MC68HC908GP32的CONFIG寄存器和PLL控制寄存器,并初始化输出波形。接着启动GP32内部A/D转换器,采集压力和位移信号,与上位机通信进行数据处理和显示,根据控制策略选择合适的控制波形。这里给出主程序主体框架 (限于篇幅,程序框架大部分为子程序形式) :
;****设置I/0口寄存器********
PTA equ $0000 ;A口寄存器
……
;*****设置SCI,PWM,A/D寄存器等*********
SCSR equ $0016 ;SCI状态寄存器
……
;***** RAM数据区定义(变量名定义)********
ORG $0040
Pres FCB 1, Disp FCB 1 ;压力、位移数据缓冲区
DA_Value1 FCB 1,DA_Value2 FCB 1,Wave_Sel FCB 1
;两片0832数据,波形选通路数……
;*****Flash程序区*****
ORG $8000
MainInit: SEI ;禁止所有中断
LDHX #$023F ;堆栈初始化,放入GP32的RAM最高端
TXS
JSR SysInit ;系统初始化子程序SysInit
LDA #$FF ;I/0口方向寄存器赋值
STA DDRA
……
Main: JSR AdConvert ;A/D转换,读入压力,位移,结果送缓冲区Pres,Disp保存
JSR Commu ;与上位机通信
JSR Calculate ;算法模块运算,得出控制波形的种类和参数
BCS NotPWM ;标志位C=1,采用其他波形
JSR SelPWM ;选通PWM
JSR PWM ;PWM模块波形参数设置:占空比和周期
NotPWM:
JSR OtherWave ;选通其他波形,参数设置:向0832送入波形频率、幅度控制值。
BRA Main
ORG $FFFE ;复位矢量
DW MainInit
6 结论
本文以摩托罗拉公司MC68HC908GP32 MCU为核心设计了用于磁流变阻尼器的电流控制系统。已在实验台上起到了较好控制作用。控制算法对于磁流变阻尼器这类很难确定控制模型的对象具有重要意义,有待于进一步研究。
相关阅读:
(转载)