本发明涉及一种基于arm的核磁共振波谱仪气动温控系统,适用于机械领域。
背景技术:
在核磁共振(nmr)波谱仪中,气动温控系统是波谱仪硬件系统的一部分,由气动控制单元和变温控制单元组成。气动控制单元通过控制气体流量实现样品的旋转,从而改善样品空间内有效磁场均匀度,提高仪器分辨率。同时,该单元还负责实现样品进出,以及样品温度的控制,以观察样品在不同温度下的nmr波谱的检测。基于arm(advancedriscmachine,先进精简指令计算机)芯片的设计可以提高系统运行速度与控制灵活性,同时能降低生产成本;采用pid(proportional-integral-differential,比例积分微分)控制器可以有效地进行连续系统动态品质校正,具有参数整定方式简便、结构改变灵活(p、pi、pd、pid)等优点。
技术实现要素:
本发明提出了一种基于arm的核磁共振波谱仪气动温控系统,以arm为控制器,利用其内嵌的can控制器实现can总线通信,通过pid控制算法控制气流和温度,实现控制nmr实验样品的更换和旋转,检测并控制样品的温度等功能。
本发明所采用的技术方案是:
所述气动温控系统采用st公司的stm32f103芯片实现控制功能,该系列有多种可选型号,可根据不同的控制需求选择相应的配置,利用其大容量的内存实现数据的快速读取,丰富的外设资源实现系统功能。
所述气动温控单元主要由气动控制模块,温度控制模块,电源模块和机箱4个部分组成。
所述气动控制模块由气动控制板和3个比例电磁阀构成,完成样品进出和旋转的功能。
所述温度控制模块包括温度控制、检测和加热3个部分,完成探头内样品温度监测和控制的功能,同时将测量得到的温度进行实时显示。
所述电源模块由1个多路输出的变压器和1块电源板构成,为其他模块提供稳定的工作电压,并通过背板与其他模块连接。
所述机箱是整个系统的载体,为系统提供各种外部接口(如can通讯接口,温度采集接口db15和加热电源,气动控制接口等)。
所述气动控制软件由主程序和中断服务程序2个部分组成,其中中断服务程序中又包含can收发中断和定时/计数器中断。
本发明的有益效果是:基于arm的nmr波谱仪气动温控系统控制精度满足设计要求,作为nmr波谱仪的一个功能系统,可以按预期性能对样品实施变温、进出磁体、旋转等操作,使后续实验能够顺利进行。满足自主研发的500mhz核磁共振波谱仪系统的需求。
附图说明
图1是本发明的系统总体组成框图。
图2是本发明的气动控制部分功能模块图。
图3是本发明的气动控制部分信号调理框图。
图4是本发明的气动控制部分软件程序流程图。
图5是本发明的温度控制部分功能模块图。
图6是本发明的温度控制部分软件程序流程图。
具体实施方式
下面结合附图和实施例对本发明作进一步说明。
如图1,气动温控系统采用st公司的stm32f103芯片实现控制功能,该系列有多种可选型号,可根据不同的控制需求选择相应的配置,利用其大容量的内存实现数据的快速读取,丰富的外设资源实现系统功能。气动温控单元主要由气动控制模块,温度控制模块,电源模块和机箱4个部分组成。气动控制模块由气动控制板和3个比例电磁阀构成,完成样品进出和旋转的功能。所述温度控制模块包括温度控制、检测和加热3个部分,完成探头内样品温度监测和控制的功能,同时将测量得到的温度进行实时显示。电源模块由1个多路输出的变压器和1块电源板构成,为其他模块提供稳定的工作电压,并通过背板与其他模块连接。机箱是整个系统的载体,为系统提供各种外部接口(如can通讯接口,温度采集接口db15和加热电源,气动控制接口等)。
如图2,stm32f103c8t6微处理器作为控制核心,内嵌64k字节flash,实现2个功能,一是解析并执行用户的命令,用户命令通过can总线发送至处理器,经解析后再由数模转换器ltc2600进行转换,得到的模拟信号用于控制样品的弹出、进入和旋转;二是实时采集转速脉冲并与用户给定的转速进行比较,对偏差按比例、积分和微分的函数关系进行运算,其结果用于输出控制,及时调整dac的输出使实际转速与给定转速的差值在一个设定的阀值内。
如图3,气动控制模块另外一个组成部分是信号调理电路,其主要任务是信号的整形和放大:首先需要整形放大的是样品的转速信号,该信号的幅度很小且波形不规则,经调整为ttl电平后才能送往处理器进行转速测量;其次,dacltc2600的最大输出电压为2.5v,需要对其进行放大使其能驱动比例电磁阀正常工作。
如图4,气动控制软件由主程序和中断服务程序2个部分组成,其中中断服务程序中又包含can收发中断和定时/计数器中断。
主程序完成对stm32微处理器的配置并指示系统当前的工作状态;定时/计数器中断处理程序用来测量样品转速,并对转速数据作相应的处理以方便用户读取;can收发中断处理程序用来接收用户发出的命令并执行相应的操作,同时将样品的当前转速信息发送给用户。程序之间通过一些全局变量相联系,2个中断处理程序的执行是互斥的,不会产生中断嵌套和优先级的冲突。整个软件系统基于c语言编写,由keil集成开发环境编译链接并最终下载到微处理器中运行。主程序完成微处理器相关寄存器的配置和整个系统的初始化,在没有中断请求之前,整个系统只运行主程序,等待用户发出相关指令。另外,在主程序中定义了和样品转速相关的全局变量,用来和其他2个中断处理程序通信;同时还定义了和转速相关的误差变量,用于控制指示灯的亮灭,让用户直观地了解当前转速currentspeed(cs)和给定转速assignedspeed(as)之间的关系。
程序中对转速的控制使用pid算法调节,将测量得到的转速与用户设定转速进行比较,将偏差值的比例、积分、微分运算通过线性组合构成控制量,不断调节使得偏差值在一个设定阀值范围内。
如图5,该模块主要由温度控制、加热模块和温度采集3个部分组成。
温度控制主控板以stm32f103vct6微控制器为核心,该芯片内嵌256k字节的闪存存储器,实现驱动模数转换器的采样和进行变温过程的控制、执行用户的命令和数据收发的功能。控制器通过can总线进行数据收发和接收用户指令,并以pwm调制(pulsewidthmodulation,脉冲宽度调制)的方式进行变温控制,它与温度采集模块通过排线连接,与加热模块通过背板连接。
加热模块为探头内的加热丝提供电源.这一模块包括继电器、光电隔离器、整流滤波等几个部分,继电器是加热电源的开关,也起到过温保护的作用;高低电压部分通过2个光电祸合器隔离,防止高电压泄漏而损坏其他器件;整流滤波电路将电源模块输出的交流电转换为直流,作为加热丝的电源。
温度采集板由一个a/d转换器ads1258及其外围电路组成,完成温度模拟量到数字量的转换,转换后的数据经控制板处理后发送给用户或进行变温控制,采集板对3个外部模拟量进行采集,首先是探头内热电偶的输出电压,该电压的大小反映了样品温度的高低,由于这个输出电压在常温时只有几十μv,需要先进行放大后才能被adc采样;其次是热电偶冷端热敏电阻两端电压,采集此电压是用来计算冷端温度,给热电偶输出电压作冷端补偿用的,这样每个温度值就对应一组热电偶输出电压和热敏电阻电压;最后是探头内pt100两端电压,用来做过温保护,当该电压超过设定温度所对应的上限电压时,系统软件自动停止变温,同时断开加热继电器,防止探头内温度过高。
温度采集模块中的adc(adsl258)完成上述模拟量的采集,该芯片具有24bits的转换精度,满足采样数据的精度要求;温度采集模块中还含有1个10μa和1个1ma的电流源,分别给冷端热敏电阻和pt100供电,系统根据电阻两端的电压大小来计算出各自所处环境的温度值;另外,该模块中还含有一个数字电位器,用来设置过温保护的上限电压,该电压与pt100两端电压接到比较器的2个输入端,比较器的输出用来控制继电器的断开与闭合,超过设定的保护温度时硬件部分就自动断开继电器而停止加热。
如图6,温度控制软件部分由主程序和中断服务程序构成,其中中断程序又由can接收发送中断和外部中断构成.主程序完成整个系统外设的初始化和相关芯片的配置,并控制指示灯的亮灭,指示当前温度currenttemperature(ct)与设定温度assignedtemperature(at)之间的关系.另外,can接收发送中断服务程序完成用户指令的解析与执行,同时将采集到的样品当前温度发送给用户;外部中断来自adc和过温保护输出,分别处理adc的数据接收和实施过温保护。
主程序在运行时等待中断的产生,用户通过can总线设置所需温度,当系统接收到该命令后就开始进行温度控制,并将实时温度发送给用户,控制的结果通过不同的指示灯显示出来.
程序中对温度的控制实行pid算法调节,将测量得到的温度与用户设定温度进行比较,将偏差值的比例、积分、微分运算通过线性组合构成控制量,不断调节使得偏差值在一个设定阀值范围内。