步进电机加减速控制
- 格式:docx
- 大小:259.56 KB
- 文档页数:3
步进电机加减速控制规律一、前言近年来,我国步进电机工程虽然取得了飞速发展,但依然存在一些问题和不足需要改进,在十八届三中全会深化改革精神指引下,加快实体经济发展推动产业转型升级的新时期,加强对步进电机加减速控制规律的掌控,推进步进电机在实体工业经济尤其是自动化设备中的应用,对步进电机技术的提高有着重要意义。
二、步进电机的概述步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。
在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角”,它的旋转是以固定的角度一步一步运行的。
可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
由于脉冲信号数与步距角的线性关系,加上步进电机只有周期性的误差而无累积误差等特点,使得在速度、位置等控制领域用步进电机来控制变的非常的简单。
步进电机作为控制执行元件,是自动化设备的关键部件之一广泛应用在各种自动化控制系统和精密机械等领域。
例如,在仪器仪表、数控机床设备、木工机械、物流设备以及计算机的外围设备中(如打印机和绘图仪等),凡需要对转角进行精确控制的情况下,使用步进电机最为理想。
随着微电子和计算机技术的发展,步进电机的需求量与日俱增,在各个国民经济领域都有应用。
步进电机只能够由数字信号控制运行的,当脉冲提供给驱动器时,在过于短的时间里,控制系统发出的脉冲数太多,也就是脉冲频率过高,将导致步进电机堵转。
要解决这个问题,必须采用加减速的办法。
就是说,在步进电机起步时,要给逐渐升高的脉冲频率,减速时的脉冲频率需要逐渐减低。
这就是我们常说的“加减速”方法。
步进电机转速度,是根据输入的脉冲信号的变化来改变的。
从理论上讲,给驱动器一个脉冲,步进电机就旋转一个步距角(细分时为一个细分步距角)。
1.1 步进电机加减速控制原理步进电机驱动执行机构从一个位置向另一个位置移动时,要经历升速、恒速和减速过程。
当步进电机的运行频率低于其本身起动频率时,可以用运行频率直接起动并以此频率运行,需要停止时,可从运行频率直接降到零速。
当步进电机运行频率fb>fa(有载起动时的起动频率)时,若直接用fb频率起动会造成步进电机失步甚至堵转。
同样在fb频率下突然停止时,由于惯性作用,步进电机会发生过冲,影响定位精度。
如果非常缓慢的升降速,步进电机虽然不会产生失步和过冲现象,但影响了执行机构的工作效率。
所以对步进电机加减速要保证在不失步和过冲前提下,用最快的速度(或最短的时间)移动到指定位置。
步进电机常用的升降频控制方法有2种:直线升降频(图1)和指数曲线升降频(图2)。
指数曲线法具有较强的跟踪能力,但当速度变化较大时平衡性差。
直线法平稳性好,适用于速度变化较大的快速定位方式。
以恒定的加速度升降,规律简练,用软件实现比较简单,本文即采用此方法。
1.2 定位方案要保证系统的定位精度,脉冲当量即步进电机转一个步距角所移动的距离不能太大,而且步进电机的升降速要缓慢,以防止产生失步或过冲现象。
但这两个因素合在一起带来了一个突出问题:定位时间太长,影响执行机构的工作效率。
因此要获得高的定位速度,同时又要保证定位精度,可以把整个定位过程划分为两个阶段:粗定位阶段和精定位阶段。
粗定位阶段,采用较大的脉冲当量,如0.1mm/步或1mm/步,甚至更高。
精定位阶段,为了保证定位精度,换用较小的脉冲当量,如0.01mm/步。
虽然脉冲当量变小,但由于精定位行程很短(可定为全行程的五十分之一左右),并不会影响到定位速度。
为了实现此目的,机械方面可通过采用不同变速机构实现。
工业机床控制在工业自动化控制中占有重要位置,定位钻孔是常用工步。
设刀具或工作台欲从A点移至C点,已知AC=200mm,把AC划分为AB与BC 两段,AB=196mm,BC=4mm,AB段为粗定位行程,采用0.1mm/步的脉冲当量依据直线升降频规律快速移动,BC段为精定位行程,采用0.01mm/步的脉冲当量,以B点的低频恒速运动完成精确定位。
#include <reg52.h>sbit inc=P3^2;sbit dec=P3^3;sbit zhzhd=P3^6;sbit fazhd=P3^7;bit flag=1;unsigned char t=0x00; //表正反速度void delay(unsigned int t);void motor_ffw();unsigned char code led7code[]={0x81,0xe7,0x92,0xc2,0xe4,0xc8,0x88,0xe3,0x00,0xc0};unsigned int num=0;unsigned char code FFW[8]={0x40,0x60,0x20,0x30,0x10,0x18,0x08,0x48}; unsigned char code FFZ[8]={0x48,0x08,0x18,0x10,0x30,0x20,0x60,0x40}; //反转void main(){EA=1;IT0=1;EX0=1;IT1=1;EX1=1;TMOD=0x06;TL0=0xff;TH0=0xff;TR0=1;ET0=1;P3=0x3f;P0=led7code[num%10];while(1){motor_ffw();}}void motor_ffw() /* 步进电机驱动*/ //{unsigned char i;int j;while(1){for(j=0;j<12;j++) //12个周期转一圈{ for (i=0; i<8; i++) //一个周期转30度{if(flag==1)P2 = FFW[i]; //取数据elseP2 = FFZ[i];delay(t); //t调节转速}}}}void int0(void) interrupt 0{EX0=0;delay(10);if(inc==0){num++;P0=led7code[num%10];if(num%10!=0&&flag){zhzhd=0;fazhd=1;}else if (num%10==0){zhzhd=0;fazhd=0;}else {zhzhd=1;fazhd=0;}switch(num%10){case 0:t=0x00;break;case 1:t=0x12;break;case 2:t=0x11;break;case 3:t=0x10;break;case 4:t=0x09;break;case 5:t=0x08;break;case 6:t=0x07;break;case 7:t=0x06;break;case 8:t=0x05;break;case 9:t=0x04;break;}}while(!inc);EX0=1;}void int1(void) interrupt 2{EX1=0;delay(10);if(dec==0){num--;if(num==65535)num=65529;P0=led7code[num%10];if(num%10!=0&&flag){zhzhd=0;fazhd=1;}else if (num%10==0){zhzhd=0;fazhd=0;}else {zhzhd=1;fazhd=0;}if(num==65535)num=65529;switch(num%10){case 0:t=0x00;break;case 1:t=0x12;break;case 2:t=0x11;break;case 3:t=0x10;break;case 4:t=0x09;break;case 5:t=0x08;break;case 6:t=0x07;break;case 7:t=0x06;break;case 8:t=0x05;break;case 9:t=0x04;break;}}while(!dec);EX1=1;}void huanx(void) interrupt 1{ET0=0;TR0=0;delay(10);if(P3^4==0){if(flag==1) {flag = 0;zhzhd=1;delay(500);fazhd=0;} else {flag = 1;fazhd=1;delay(500);zhzhd=0;}}while(!(P3^4));ET0=1;TR0=1;}// 延时程序void delay(unsigned int t){unsigned int k;while(t--){for(k=0; k<80; k++);}}。
51单片机按键控制步进电机加减速及正反转之前尝试用单片机控制42步进电机正反转,电机连接导轨实现滑台前进后退,在这里分享一下测试程序及接线图,程序部分参考网上找到的,已经实际测试过,可以实现控制功能。
所用硬件:步进电机及驱动器、STC89C52单片机、直流电源1、硬件连接图•注意:上图为共阳极接法,实际连接参考总体线路连接。
•驱动器信号端定义:PUL+:脉冲信号输入正。
( CP+ )PUL-:脉冲信号输入负。
( CP- )DIR+:电机正、反转控制正。
DIR-:电机正、反转控制负。
EN+:电机脱机控制正。
EN-:电机脱机控制负。
•电机绕组连接A+:连接电机绕组A+相。
A-:连接电机绕组A-相。
B+:连接电机绕组B+相。
B-:连接电机绕组B-相。
•电源连接VCC:电源正端“+”GND:电源负端“-”注意:DC直流范围:9-32V。
不可以超过此范围,否则会无法正常工作甚至损坏驱动器.•总体线路连接输入信号共有三路,它们是:①步进脉冲信号PUL+,PUL-;②方向电平信号DIR+,DIR-③脱机信号EN+,EN-。
输入信号接口有两种接法,可根据需要采用共阳极接法或共阴极接法。
在这里我采用的是共阴极接法:分别将PUL-,DIR-,EN-连接到控制系统的地端(接入单片机地端);脉冲输入信号通过PUL+接入单片机(代码中给的P2^6脚),方向信号通过DIR+接入单片机(代码中给的P2^4脚),使能信号通过EN+接入(不接也可,代码中未接,置空)。
按键连接见代码,分别用5个按键控制电机启动、反转、加速、减速、正反转。
注意:接线时请断开电源,电机接线需注意不要错相,相内相间短路,以免损坏驱动器。
2、代码1.#include<reg51.h>2.#define MotorTabNum 53.unsigned char T0_NUM;4.sbit K1 = P3^5; // 启动5.sbit K2 = P3^4; // 反转6.sbit K3 = P3^3; // 加速7.sbit K4 = P3^2; // 减速8.sbit K5 = P3^1; //正反转9.10.sbit FX = P2^4; // 方向11.//sbit MotorEn = P2^5; // 使能12.sbit CLK = P2^6; // 脉冲13.14.inttable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};15.16.unsigned char g_MotorSt = 0; //17.unsigned char g_MotorDir = 0; //18.unsigned char MotorTab[7] = {12, 10, 8, 6, 4, 2,1};19.20.signed char g_MotorNum = 0;21.22.void delayms(xms);23.void mDelay(unsigned int DelayTime);24.void T0_Init();25.26.void KeyScan(void);27.28.29.30.void main(void)31.{32.T0_Init();33.// MotorEn = 0; //34.FX = 0;35.while(1)36.{37.KeyScan(); //38.}39.40.41.}42.43.void T0_Init()44.{45.TMOD = 0x01;46.TH0 = (65535-100)/256; // 1ms47.TL0 = (65535-100)%256;48.EA = 1;49.ET0 = 1;50.// TR0 = 1;51.52.}53.54.void T0_time() interrupt 155.{56.// TR0 = 0;57.TH0 = (65535-100)/256;58.TL0 = (65535-100)%256;59.T0_NUM++;60.if(T0_NUM >= MotorTab[g_MotorNum]) //61.{62.T0_NUM = 0;63.CLK=CLK^0x01; //64.}65.// TR0 = 1;66.}67.68.69.//--------------------------70.void KeyScan(void)71.{72.if(K1 == 0)73.{74.delayms(10);75.if(K1 == 0)76.{77.g_MotorSt = g_MotorSt ^ 0x01;78.// MotorEn ^= 1;79.TR0 = 1;80.FX ^= 0; //反转81.}82.}83.84.if(K2 == 0)85.{86.delayms(10); //正转87.if(K2 == 0)88.{89.g_MotorDir = g_MotorDir ^ 0x01;90.FX ^= 1; //加速91.}92.}93.94.if(K3 == 0) //95.{96.delayms(5); //加速97.if(K3 == 0)98.{99.g_MotorNum++;100.if(g_MotorNum > MotorTabNum) 101.g_MotorNum = MotorTabNum; 102.}103.}105.if(K4 == 0) //106.{107.delayms(5); // 减速108.if(K4 == 0)109.{110.g_MotorNum--;111.if(g_MotorNum < 0)112.g_MotorNum = 0;113.}114.}115.116.if(K5 == 0) //117.{118.delayms(10); // 正反转119.if(K5 == 0)120.{121.g_MotorSt = g_MotorSt ^ 0x01; 122.g_MotorDir = g_MotorDir ^ 0x01; 123.MotorEn ^= 1;124.TR0 = 1;125.while(1)126.{127.FX ^= 1; //128.delayms(90000);129.FX ^= 0; //130.delayms(90000);131.}132.}133.}135.136.void delayms(xms)//延时137.{138.unsigned int x,y;139.for(x=xms;x>0;x--)140.for(y=110;y>0;y--);141.}3、常见问题解答•控制信号高于5v一定要串联电阻,否则可能会烧坏驱动器控制接口电路。
stm32控制步进电机加减速 实习公司项⽬需要控制步进电机,电机⽅⾯主要包括控制运动、加减速、限位。
下⾯介绍⼀下在电机控制⽅⾯的⼼得,由于对于电机的控制不需要很精确,并且⾃⾝能⼒有限,相⽐于⼤⽜有很⼤的差距。
1.需要实现的功能 主要是控制滑块的运动,开始运动时需要加速,当稳定在最⾼速度时匀速运动,检测到下端限位信号时,开始减速直到停⽌,然后进⾏反向加速,匀速,检测到上端限位时停⽌运动。
加速——匀速——减速——停⽌——反向——加速——匀速——停⽌2.硬件部分 本次电机为两相四线步进电机,两相:电机有两个线圈(绕组),四线:电机有四根线,⼀般是A+ A- B+ B-。
有些电机不会标注出线的极性,其实可以⽤万⽤表测,短接的就是同⼀个绕组,或者短接之后电机转动很费⼒,也代表是同⼀个绕组。
驱动 电机的运动需要较⼤的电流,这取决于电机本⾝和负载,所以通常需要驱动芯⽚。
⽽且驱动芯⽚可以实现许多附加的功能,包括细分、休眠、保护等。
本次采⽤的是DRV8825驱动芯⽚模块。
模块的介绍图如图所⽰: 引脚介绍: 1.ENABLE/:使能引脚,⾼电平停⽌⼯作,低电平正常⼯作; 2.M0-M2:代表细分,最⼤可以达到32细分,这部分可以参考datasheet; 3.RESET/ 、SLEEP/:低电平会休眠和复位,因此电机正常⼯作时,两个引脚接⾼电平; 4.STEP:最重要的引脚,通过单⽚机给这个引脚PWM信号,控制电机运动; 5.DIR:0和1控制电机⽅向; 6.VMOT:供电引脚,⼀般⽤12-20V就可以了; 7.B2-A1:接电机四根线; 8.FAULT/:接⾼电平⼯作;光电限位 光电限位采⽤的反射型,型号为sy1200,感应距离为1-4mm,当没有遮挡时,输出低电平;有遮挡时,代表有光反射回来,输出⾼电平;测试过程中,发现最好采⽤⽩⾊的平⾯反射,效果更好。
3.软件部分 软件主要就是通过stm32输出PWM脉冲,脉冲的频率决定了电机的速度。
基于FPGA的步进电机加减速控制器的设计引言几十年来,数字技术、计算机技术和永磁材料的迅速发展,为步进电机的应用开辟了广阔的前景。
由步进电机与驱动电路组成的开环数控系统,既非常简单、廉价,又非常可靠。
此外,步进电机还广泛应用于诸如打印机、雕刻机、绘图仪、绣花机及自动化仪表等。
正因为步进电机的广泛应用,对步进电机的控制的研究也越来越多,在启动或加速时若步进脉冲变化太快,转子由于惯性而跟随不上电信号的变化,产生堵转或失步;在停止或减速时由于同样原因则可能产生超步。
为防止堵转、失步和超步,提高工作频率,要对步进电机进行升降速控制。
本文介绍一个用于自动磨边机的步进电机升降速控制器,由于考虑了通用性,它可以应用于其他场合。
从步进电机的矩频特性可知,步进电机的输出转矩随着脉冲频率的上升而下降,启动频率越高,启动转矩就越小,带动负载的能力越差,启动时会造成失步,而在停止时又会发生过冲。
要使步进电机快速的达到所要求的速度又不失步或过冲,其关键在于使加速过程中加速度所要求的转矩既能充分利用各个运行频率下步进电机所提供的转矩,又不能超过这个转矩。
因此,步进电机的运行一般要经过加速、匀速、减速三个阶段,要求加减速过程时间尽量的短,恒速时间尽量长。
特别是在要求快速响应的工作中,从起点到终点运行的时间要求最短,这就必须要求加速、减速的过程最短,而恒速时的速度最高。
而以前升速和降速大多选择按直线规律,采用这种方法时,它的脉冲频率的变化有一个恒定的加速度。
在步进电机不失步的条件下,驱动脉冲频率变化的加速度和步进电机转子的角加速度成正比。
在步进电机的转矩随脉冲频率的上升保持恒定时,直线规律的升降速才是理想的升降速曲线,而步进电机的转矩随脉冲频率的上升而下降,所以直线就不是理想的升降速曲线。
因此,按直线规律升降速这种方法虽然简单,但是它不能保证在升降速的过程中步进电机转子的角加速度的变化和它的输出力矩变化相适应,不能最大限度的发挥电机的加速性能。
步进电机的加减速控制一、引言随着科学技术的发展和微电子控制技术的应用,步进电机作为一种可以精确控制的电机,广泛应用在高精密加工机床,微型机器人控制,航天卫星等高科技领域。
二、步进电机的原理步进电机是一种控制用的特种电机,它无法像传统电机那样直接通过输入交流或直流电流使其运行,而是需要输入脉冲电流来控制电机的转动,所以步进电机又称为脉冲电机。
其功能是将脉冲电信号变换为相应的角位移或直线位移,即给一个脉冲电信号,电机就转动一个角度或前进一步。
按励磁方式可以分为反应式、永磁式和混合式三种类型,本设计中选用的是反应式步进电机,其结构如图 1 所示。
这是一台四相反应式步进电机的典型结构。
共有4 套定子控制绕组,绕在径向相对的两个磁极上的一套绕组为一相,也就是说定子上两个相对的大齿就是一个相,电机按照A —B —C —D — A 的顺序不断接通和断开控制绕组,转子就会一步一步的连续转动。
其转速取决与各控制绕组通电和断电的频率,即输入的脉冲频率。
旋转的方向则取决与各控制绕组轮流通电的顺序。
三、步进电机的驱动控制步进电机不能直接接到直流或交流电源上工作,必须使用专门的步进电机驱动控制器。
步进电机和步进电机驱动器构成步进电机驱动系统。
步进电机驱动系统的性能,不仅取决于步进电机自身的性能,也取决于步进电机驱动器的优劣。
步进电机的驱动方式有很多种,包括单电压驱动、双电压驱动、斩波驱动、细分驱动、集成电路驱动和双极性驱动。
本设计选用的是恒频脉宽调制细分驱动控制方式,这是在斩波恒流驱动的基础上的进一步改进,既可以使细分后的步距角均匀一致,又可以避免复杂的计算。
四、恒频脉宽调制细分电路的设计1、脉冲分配的实现在步进电机的单片机控制中,控制信号由单片机产生。
它的通电换相顺序严格按照步进电机的工作方式进行。
通常我们把通电换相这一过程称为脉冲分配。
本设计中选用8713 脉冲分配器芯片来进行通电换相控制。
2、系统控制电路设计步进电机控制系统主电路设计如图 2 所示。
不需要专门的延迟。
但是软件中应该做到使速度是连续的渐变,而不是突变。
类似物理里面我们分析的“上抛物体”的运动一样:先按匀减速运动,速度减到零后就变成反方向的匀加速运动了。
不要有从某个速度“突变”为静止,或由静止“突变”为某个速度的操作。
这种“突变”自然会产生冲击振动。
至于这个“匀加速度”、“匀减速度”的加速度大小,则可以根据步进电机的性能和负载的惯性大小来确定。
通常,步进电机都会给出一个“最大力矩”的参数。
根据这个最大力矩,和负载的惯性(包括步进电机的转子和传动机构的惯性在内)大小,可以计算出加速度不应该超过多少。
实际设计时,还应该比最大允许值再留出相当的余地。
当然,我上面说的“速度”、“加速度”都是一个连续的理论值,实际的步进电机是一步一步离散的操作的,和理论规律总会有差别。
但是只要这种“量化误差”不超过一定限度,就可以有满意的效果了。
最理想的是,这个误差的累计值不超过0.5步。
也就是说,假如按照上述“匀加速”、“匀减速”的理论计算,在时刻t的时候应该走到x步(有小数)的位置,而真实的执行效果是:走到的位置总是等于x的四舍五入取整的值。
这是最理想的。
如果算法设计不好,这个累积误差可能会大些。
但最坏的情况下,这个误差的累计值不要超过半个相位周期。
例如,您的脉冲分配如果是“四相八拍制”,那么,累积误差就必须小于4步。
超出的话,就会发生步进电机的“失步”。
上面说的道理,对于采用不采用“细分”,道理是一样的。
只是采用细分后的每一个“步”(“细步”)比原来小了,容易做到比较均匀。
例如上面说的“四相八拍制累积误差就必须小于4步”,如果采用了“16细分”,那么只要小于64“细步”就可以,显然软件里处理起来更容易一些。
但是,只要软件考虑设计仔细一些,不采用细分也是可以做到的。
【看了“广州一丁”兄的回答后,再补充说明一点】上面“广州一丁”兄说的“减速时间长点,加速时间同时也长点”,就相当于我这里说的“匀加速运动”和“匀减速运动”段中,加速度的绝对值再小一些。
1 加减速控制算法
1.1 加减速曲线
本设计按照步进电机的动力学方程和矩频特性曲线推导出按指数曲线变化的升降速脉冲序列的分布规律,因为矩频特性是描述每一频率下的最大输出转矩,即在该频率下作为负载加给步进电机的最大转矩。
因此把矩频特性作为加速范围下可以达到(但不能超过)的最大输出转矩来拟订升降速脉冲序列的分布规律,就接近于最大转矩控制的最佳升降速规律。
这样能够使得频率增高时,保证输出最大的力矩,即能够对最大的力矩进行跟随,能充分的发挥步进电机的工作性能,使系统具有良好的动态特性。
由步进电机的动力学方程和矩频特性曲线,在忽略阻尼转矩的情况下,可推导出如下方程:
式中,为转子转动惯量,K为假定输出转矩按直线变化时的斜率,τ为决定升速快慢的时间常数,在实际工作中由实验来确定。
fm为负载转矩下步进电机的最高连续运行频率,步进电机必须在低于该频率下运行才能保证不失步。
(1)式为步进电机的升速特性,由此方程可绘制出电机升速曲线。
(1)式表明驱动脉冲的频率f应随时间t作指数规律上升,这样就可以在较短的时间内使步进电机的转速上升至要求的运行速度。
鉴于大多数的步进电机的矩频特性都近似线性递减的,所以上述的控制规律为最佳。
1.2 加减速离散处理
在本系统中,FPGA使用分频器的方式来控制步进电机的速度,升降速控制实际上是不断改变分频器初载值的大小。
指数曲线由于无法通过程序编制来实现,可以用阶梯曲线来逼近升速曲线,不一定每步都计算装载值。
如图l所示,纵坐标为频率,单位是步/秒,其实反映了转速的高低。
横坐标为时间,各段时间内走过的步数用N来表示,步数其实反映了行程。
图中标出理想升速曲线和实际升速曲线。
步进电机的升速过程可按以下步骤进行处理。
(1)若实际运行速度为fg,从(3.4)式中可算出升速时间为:
(2)将升速段均匀地离散为n段即为阶梯升速的分档数,上升时间为tr,则每档速度保持时间为:
程序执行过程中,对每档速度都要计算在这档速度应走的步数,然后以递减方式检查,即每走一步,每档步数减1。
当减至零时,表示该档速度应走的步数己走完,应进入下一档速度。
一直循环到给出的速度大于或等于给定的速度为止。
减速过程与升速过程刚好相反。
2 频率脉冲的实现
频率脉冲模块的核心是可控分频器,由外部的晶振产生标准频率,只要在分频器的输入端输入相应的分频系数,就可以得到所需的频率。
本模块是利用VHDL硬件描述语言,通过QuartusII开发平台,使用Altera公司的FPGA,设计了一种能够满足上述各种要求的较为通用的可控分频器。
图2为分频器的原理图,图3为分频器的仿真波形图。
3 结语
基于硬件描述语言VHDL设计的控制器具有开发设计周期短、风险低、系统集成度高、功耗低等优点,将是芯片设计的主流方向。
开放式数控系统中,研究实现能硬件复用的加减速模块以及相关功能模块,利用可编程逻辑器件FPGA
的可重构能力,能按需求灵活实现功能全定制的运动控制芯片。
本文设计了自动磨边机中的指数加减速控制器。
在此基础上,只需扩展相应个数的加减速模块即可实现多轴联动加减速控制。