光学剪切流变仪中函数运动控制的设计与实现
2010-08-24王晓兰沈建华
王晓兰,沈建华
WANG Xiao-lan, SHEN Jian-hua
(1.华东师范大学 计算机科学与技术系,上海 200062)
0 引 言
步进电机正在被广泛的应用于工业、军事、医疗、汽车等领域中,对其转动模式的要求也越来越高。光学剪切流变仪是控制复杂流体在不同温度和各种剪切模式下利用光学显微系统分析其结构动力学的专用分析仪器。利用光学剪切组件能详细研究复杂流体在许多物理过程中的微细结构变化。仪器采用两片平行的高度抛光石英盘,石英盘通过加热盘提供热源,利用铂电阻温度传感器测量温度。样品置于下石英盘上,石英盘可进行摆动和步进模式剪切。调节两片石英盘的间距使仪器适合各种材质和颗粒大小的物质。
剪切模式可设置为稳态剪切,即步进电机匀速运行模式;正弦波振荡剪切,即步进电机正弦曲线运行模式;阶跃剪切,即步进电机定步匀速运行模式;振荡叠加剪切,即步进电机匀速加正弦的运行模式。本文所讨论的内容是如何实现步进电机正弦函数运行模式。
步进电机分三种:永磁式(PM),反应式(VR)和混合式(HB)永磁式步进一般为两相,转矩和体积较小,步进角一般为7.5度或15度;反应式步进一般为三相,可实现大转矩输出,步进角一般为1.5度,但噪声和振动都很大。混合式步进是指混合了永磁式和反应式的优点。它又分为两相和五相:两相步进角一般为1.8度而五相步进角一般为0.72度。这种步进电机的应用最为广泛。四相混合式步进电机一般由两相驱动器来驱动,因此,连接时可以采用串联接法或并联接法将四相电机接成两相使用。基于以上几点,本系统采用性能平稳,性价比较高,应用广泛的四相步进电机,它可以根据需要由片上电源驱动,还可以选择通过驱动器由外部提供电源。另外,低频振荡是步进电机(尤其是反应式电机)的固有特性,如果步进电机有时要如走圆弧,则必须在共振区工作,为了完全消除电机的低频振荡,建议最好选用细分驱动器。
1 步进频率的算法
现在经常采用的主要算法是定步法,正弦函数前1/4周期的曲线如图1所示。将总升频步数N等分,得步数间隔为△p=P/N,然后求取这N个点的所对应的频率值,转化为单片机的定时器的定时时间常数,存人单片机内存中形成表格,当步进电机在升频过程中每走△P步,改变一次时间常数,输出进给脉冲以实现定步升频,使步进电机按照固定的频率运行,从而实现步进电机的正弦运动。
图1 定步法升速曲线
这种算法存在一个问题,即当前速度如果比较慢时,定时就会很长,则延时超出了应该的延时。所以这里应该作一下修正,在延时超过一定值时以设定的值运行。所以这种算法只保证了精确的步数,周期不能保证。
基于这种情况,本系统算法做如下设计,来弥补已有算法的不足:即把时间划分为多个段,每段时间做匀速运动。由于转动角度为正弦波变化,所以转速为转动角度的求导,即以余弦形式变化。其中正弦与余弦间的参数转换可以由上位机软件完成。在确定周期与步数的情况下,需要计算每步运行时间以便于定时器定时用。
输入的参数是余弦运行周期n、余弦运行步数m。
这是个180个点的cos表,(这里的Max_cosval表示点数,故这里是180)对应的是0-90度每0.5度产生一个值,如cos(0),cos(0.5),cos(1)....其中cos小括号中的是角度值。我们把整个周期平分x 等分,那么每等分的时间为n/x 秒。那么第i(i为0-x之间的整数)等分运行的步数为
m*cos[i/x*Max_cosval]/(cos[0/x*Max_cosval]+cos[1/x*Max_cosval]+cos[2/x*Max_cosval]+...+cos[(x-2)/x*Max_cosval]+cos[(x-1)/x*Max_cosval]) (1)
算出来的是浮点数,需要进行四舍五入。
这样每个等分的步数确定后,每个等分中每步的时间也就确定了,这就是定时时间(但为了产生等脉宽的脉冲信号,可以把定时时间定为每步定时时间的一半,这样在定时中断中跳变一次,这样两次跳变即可完成一个脉冲的输出,即前进一步)。定时时间是速率的倒数,可能的问题是速率为0,所以要程序判断避免为0。
2 系统硬件与实现
本系统微处理器采用了ADI公司的AduC845,和uln2003达灵顿管实现了上述控制。 电机采用5V四相单极电机(Airpax [Thomson]生产,型号为M82101-P1)。
单片机需要通过串口与PC机通讯,并通过四相电机驱动器与步进电机相连,如图2:
图2 硬件框图
本系统外接电源信号为12V,并经过LM7805转换后输出5V为MCU供电,同时也可以为外接5V电机控制器提供电源。
本系统微处理器采用了ADI公司的AduC845,只需一根RS232串口通讯线(微处理器通过MAX232与PC机串口进行数据通讯),就能够进行在系统调试、下载程序。另外,本系统还通过74HC595设计了一些控制电机的按键功能。
整个MCU由5V电源供电,另外可以外扩一块支持IIC协议的EEPROM(如U2器件)用于数据存储。其中可用JP1跳线用于下载程序使用,如需用ISP下载程序时需将JP1跳线短接接地,程序正常运行时JP1应处于断开状态。
所有这些外围芯片由一个函数控制,每执行一次,发送三个字节数据用于控制输出,同时接收来自控制开关的一个字节数据。由于四相步进电机控制器的驱动电流8-15mA,因为口线电流太小,无法驱动电机工作,需要用外部电源供电,提高驱动能力。
3 系统软件设计与实现
整个系统软件主要有AduC845的固件编程、PC交互界面。由于PC界面需根据不同需求改变,这里主要介绍一下固件的开发。
整个程序在Keil C51 for ADuC845下开发完成,实现了ADuC845BS62-5的硬件初始化、PC通信命令协议(SIO_INT)以及定时器中断程序等(interrupt_T1、interrupt_T2)。为了简化开发难度,Anlog Devices Inc.公司提供AduC845的库函数(Hardware Library),为用户封装了对芯片寄存器的操作,用户只需根据具体需求调用相应的库函数以实现相应的功能(修改AduC845.h,选择相应功能)。此外,程序还包含有三个Keil C51的内函数intrins.h、math.h和stdio.h。
程序采用定时器中断延时,定时器定时时间由式(1)确定,电机走的最大步数、旋转方向、电机起停由UART中断(SIO_INT)输入,主函数main()用于频率设置、I/O、TIM以及UART初始化。
因为要两次跳变即可完成一个脉冲的输出,所以定时器中断程序中要判断“是不是第二次中断”,是第二次中断时,CP跳变,即4次中断,输出一个完整脉冲,步进电机走一步。如果当前步数大于设定的最大步数,DIR跳变,步进电机反向旋转。
计算模块框图如图3所示。
图3 计算模块框图
另外,定时时间是速率的倒数,如果转速很低时,定时就会很长,应避免定时超出最大定时时间。由于ADuC845在12.58 MHZ,定时器初值为FFFFH时,对应的最大定时时间为5.20ms,所以,当定时时间大于5.20ms时,步进电机应以固定速率运行。
4 结束语
本文设计的系统对定步法算法进行了改进,实现了步进电机作任意步正弦函数的运行,并且不仅可以保证精确的步数,而且还可以保证精确的周期。步进运动并不是严格意义上的模拟正弦运行,但步进时间划分足够细的话,是完全可以满足实际应用需求的。
另外,本文采用的口线模拟方法实现了步进电机作正弦函数的运行,大大提高了输出脉冲的灵活性。我们利用这种方法,还可以根据需要,实现步进电机作任意函数的运行。
本文设计的正弦函数运行控制系统已经过简单改造成功应用于光学剪切流变仪的开发中,其主要功能是利用步进电机带动石英光盘作正弦波振荡剪切。
[1] 刘宝廷,程树康.步进电动机及其驱动控制系统[M].哈尔滨:哈尔滨工业大学出版社,1997.
[2] 王晓初,何捷.步进电机自动升降速及其单片机控制[J].微特电机,1998,20(3):31-34.
[3] 马忠梅,籍顺心.单片机的C语言应用程序设计[M].北京:北京航空航天大学出版社,2000.
[4] 王福瑞.单片机测控系统设计大全[M].北京:北京航空航天大学出版社,1998.
[5] 李刚,林凌,何蜂.AduC845单片机原理、开发方法及应用实例.电子工业出版社,2006.