STM32F407VG模数转换精准采样速率的设计_陈邵权

-134-

/2012.08/

STM32F407VG模数转换精准采样速率的设计

华北电力大学 陈邵权 王 涛 范寒柏 王 磊

【摘要】本文通过分析ARM7最新型号芯片的片上资源,介绍了一种简单的实现精准采样的模数转换方法。本方法的突出优点是,最新型号的芯片主频高,模数转换的采样速率由片上定时器触发,是采样速率准确、稳定,不容易受到影响外部环境影响。对需要准确采样速率的模数转换场合提供依据。【关键词】ARM7;模数转换;精准采样

1.引言

对模拟信号进行频谱分析时,一般需要对信号进行AD采样,并确定采样速率。而对频率分辨率较高的场合,对采样速率要求较为准确,但一般的模数转换器并不能保证准确的采样速率。由此,本文以STM32F407VG为模数转换器,介绍其设定出准确的采样速率的方案[1][2]。

2.STM32F407VG资源

(1)STM32F407VG数模转换器

STM32F407VG数模转换器简称ADC,是12位逐次逼近模拟数字转换器,拥有多个通道,每个通道可以单次、连续、扫描或间接模式进行模数转换。转换又可分为规则转换和注入转换,这两种转换均可以由外部触发。在72MHz工作频率下,一次的模数转换的时间时间仅为1.17us。

(2)STM32F407VG直接存储器

STM32F407VG直接存储器简称DMA,DMA用来在外设和存储器之间或者存储器之间的高速数据传输。数据可以通过DMA快速移动,无须CPU干预,节省了CPU资源。拥有两个DMA控制器,DMA1有七个通道,DMA2有5个通道,每个通道专门原来管理来自于一个或多个外设对存储器访问的请求。同时还有一个仲裁器来协调各个DMA请求的优先权。

(3)STM32F407VG高级控制定时器

STM32F407VG高级控制定时器有两个,为别为TIM1和TIM8。这两个高级定时器由一个16位能够向上、向下、向上\向下自动装载计数器组成,并由一个可编程的预分频器驱动,预分频系数可以从1~65535之间的任意数值,他们是完全独立的,不共享任何资源。在主要功能中,可以作为ADC注入触发的事件。

3.ADC定时采样设计思路

由上面的介绍可知,STM32F407VG的ADC可以进行注入转换,注入转换可以由定时器产生,ADC转换之后的结果可以通过DMA通道快速转移。由此,ADC精准采样的工作思路如图1所示。

由转换图知,只要保证了定时器的触发速度不大于ADC的转换速度,那么定时器的注入触发ADC转换就能够及时的采样数据,并保证了每次采样的间隔同时,也即能够由定时器的定时触发设定出精准的采样速率。

4.软件设计

(1)ADC初始化设定

ADC转换需要基准源、输入信号、转换时钟、转换方式、转换速率、转换的分辨率、转换结果数据对齐方式等,由此选择ADC基准源设定了内部基准源,接着设定输入信号的通道,开启转换的时钟,转换方式为定时器触发的注入的转换方式,并设定了定时器内部PWM上升沿触发,转换速率设定了转换时钟的二分频,转换分辨率设定为12位,数据对齐方式为右对齐。

(2)定时器初始化设定

定时器初始化需要时钟、计数方式、内部Trig频率及咱空比等,这里我们只需要内部PWM的频率以及上升沿能够有效触发ADC转换即可,并且PWM的频率可以随时修改。

(3)DMA初始化设定

DMA数据转移涉及DMA通道的选择、数据的转移地址、数据缓存大小等,这里只要选对相应的ADC对应的DMA通道即可。

程序流程见图2。

ADC定时采样ADC初始化设置代码如下:

ADC_InitTypeDef ADC_ACCInit;//定义结构体参数ADC_ACCInit

ADC_ACCInit.ADC_Resolution=ADC_Resolution_12b;

//设置ADC分辨率为12位;

ADC_ACCInit.ADC_ScanConvMode=DIS-ABLE;

//ADC非扫描模式

ADC_ACCInit.ADC_ContinuousConv-Mode=DISABLE;

//ADC非连续转换

ADC_ACCInit.ADC_ExternalTrigConv-Edge=ADC_ExternalTrigConvEdge_Rising;

//ADC转换由Trig上升沿触发,也即定时器触发的

ADC_ACCInit.ADC_ExternalTrigConv=ADC_ExternalTrigConv_T8_CC1;//设置Trig产生的源为定时器8通道1

ADC_ACCInit.ADC_DataAlign=ADC_DataAlign_Right;

//ADC转换数据对齐方式为右对齐ADC_Init(ADC3,&ADC_ACCInit);//初始化ADC参数

ADC_RegularChannelConfig(ADC3, ADC_Channel_12,1,ADC_SampleTime_3Cyc-les);

//选择ADC信号输入通道

ADC_DMARequestAfterLastTransferC md(ADC3,ENABLE);

//使能DMA数据快速转移ADC_DMACmd(ADC3,ENABLE);//使能ADC转换数据的DMA请求

ADC_ExternalTrigInjectedConvConf ig(ADC3,ENABLE);

//使能外部Trig触发源

图1 注入转换图

图2 程序设计流程

-135-

/2012.08/

ADC_ExternalTrigInjectedConvEdge Config(ADC3,ENABLE);

//使能外部Trig边沿触发

ADC_InjectedDiscModeCmd(ADC3,ENA BLE);

//使能ADC为注入转换模式ADC_Cmd(ADC3,ENABLE);//使能ADC

定时器初始化以及DMA初始化比较简单就不一一列出。

5.结语

STM32F407VG模数转换器ADC具有的注入转换方式,可以配合自身的定时器TIM和快速数据转移的DMA请求进行精准的信号采样。本文对这三个资源进行分析的基础上给出了实现模数转换的精准采样的方案。

为需要精准采样速率的数字信号处理过程提供了可靠保证。

参考文献

[1]STM3240G-MCU2.RM0090 Reference manual.2011.[2]STM32F10xxx参考手册.2009.

基于在线自适应整定的控制器设计与仿真

 克拉玛依职业技术学院 张雪琴

【摘要】主轴驱动控制系统作为数控机床的核心组成部分,它的控制精度直接影响着数控机床对零件的加工精度。本文在经典PID控制算法的基础之上,提出了在线自适应PID控制器并对结果进行了仿真实验,仿真曲线表明该算法能较好的跟踪控制信号,具有较高的控制精度。【关键词】PID调节;自适应;优化

数控机床控制主轴运动装置也可称之为数控机床传动系统,它在数控系统运行过程中主要功能是完成控制主轴运动系统的动力装置部分。

作为主轴驱动电动机重要驱动形式的电主轴驱动,它的驱动器可以使用主轴伺服,甚至还可以不采用任何驱动器方式。电主轴在驱动过程中由于采用了电能这种驱动形式它在驱动过程中取消了传动机构,因此,不但在一定程度上尽可能的精简了主轴结构,而且还增强了数控机床的运动精度,其缺点是机床的刚度相对较弱,而且功率比较而言不高,多数都在10KW之内。基于以上分析的特点,其主要发展方向为高速、高精度,一般设计转速均在每分钟1万转以上。

1.传统PID算法

传统的PID控制算法组成结构图,如图1所示,分别有比例控制、积分控制和微分控制组成。

传统经典PID控制器控制规律为:

t

p I D

de(t)

u(t)k e(t)+k e(t)k dt +∫=其中:K P 为比例系数 K I 为积分系数 K D 为微分系数

PID控制器各部分作用如下:

(1)比例控制(P):引入比例控制的主要是为了及时成比例地反映控制系统的偏差信号,以最快速度产生控制作用,使偏差向减小的方向变化;

(2)积分控制(I):引入积分控制的主要是为了保证实际输出值在稳态时对给定输入值的无静差跟踪;

(3)微分控制(D):引入微分控制的主要是为了改善闭环系统的稳定性和动态响应速度。

2.在线自适应整定PID算法

学习是在线自适应整定PID算法的主要特征之一。学习规则是根据已获得的知识结构来适应控制目标的变化。无监督的学习方法是指不需要外界控制信号,无监督的学习规则表现为:给系统提供动态输入信号,以使各个单元以某种方式竞争进而寻找有用的数个区间。以O i 表示单元i的激活值,O j 表示单元j的激活值,W ij 表示单元i到单元j的激活值,则其关系可用下式表示:

()()(1)()()

i ij j ij j i w k w k w k o k o k =??=η△

其中η是学习速率。自适应整定整定规律:

(1)当|e|较大时,为提高控制系统对实际的快速响应特性,则此时应该至Kp为较大的数值和较小的Kd,通常取Ki=0;

(2)当|e|和|ec|中等大小时,为改善系统的控制效果,Kp应取小些,否则将会明显影响控制效果;

(3)当|e|较小时,为提高系统的控制效果可以将Kp和Ki的数值取得较大。

3.仿真实验分析

基于在线自适应整定PID算法的理论分析,采用matlab软件对算法的仿真响应曲线进行了分析与研究,图2为自适应整定PID算法仿真响应曲线图,从图中可以发现系统控制时间较短且精度较高。

4.结束语

本文采用当今流行的MATLAB软件,对数控机床控制系统的在线自适应整定PID算法进行了分析与研究并通过计算机进行了仿真,仿真实验表明了在线自适应整定PID 算法可以实现较高的控制精度。

参考文献

[1]周明,孙树栋.遗传算法原理及应用[M].北京:国防工业出版社,2002.

[2]熊维族,叶中付.一种利用遗传算法的极化定标算法[J].系统工程与电子技术,2007,29.

[3]朱福喜,朱三元,伍春香.人工智能基础教程[M].北京:清华大学出版社,2006.

[4]陈国良,王煦法,庄镇泉,等.遗传算法及其应用[M].北京:人民邮电出版社,1996.

[5]黄忠霖.控制系统MATLAB计算及仿真[M].北京:国防工业出版社,2001.

[6]楼顺天,等.MATLAB程序语言设计[M].陕西:西安电子科技大学出版社,1998.

作者简介:张雪琴(1975—),女,克拉玛依职业

技术学院讲师,主要从事自动化研究。

图1 经典PID控制算法组成结构图Fig.1 PID control system structure

图2 仿真响应曲线图

Fig.2 Simulated response curve

相关文档
最新文档