§4.1 数控车床编程基础 §4.2 车削固定循环 §4.3 螺纹车削加工 §4.4 典型数控车床编程实例 练习与思考 第四章 数控车床编程 §4.1 数控车床编程基础 §4.2 车削固定循环 §4.3 螺纹车削加工 §4.4 典型数控车床编程实例 练习与思考
§4.1 数控车床编程基础 一、数控车床编程特点 二、数控系统的基本功能 三、常用的准备功能 四、刀具补偿功能
一、数控车床编程特点 1.可以采用绝对值编程,增量编程或二者混合编程 根据被加工零件的图样标注尺寸,从便于编程角度出发,在一个程序段中,可以采用绝对坐标值编程、增量编程或二者混合编程。按绝对坐标编程时,用坐标字X、Z表示;按增量坐标编程时,用坐标字U、W表示。
与其他数控机床加工程序不同的是,在数控车的加工程序中,同一程序段中刀位的输入方式可以是绝对输入方式也可以是增量输入方式。一般,用X— Z— 表示绝对输入方式,用U— W— 表示增量输入方式,在一条加工指令中,X(U)— Z(W)— 可以混合使用。其中,X— 或U— 都是径向上的直径值或直径增量。 当然,也有其他数控系统仍用G90、G91指令明确指定输入方式。在这种系统中,同一程序段中两种输入方式不能混合使用。
2.可以采用直径值编程或半径值编程 在数控车削加工中,X坐标值有直径值编程和半径值编程两种表达方法。数控系统默认的编程方式为直径值编程,这是由于被加工零件的径向尺寸在图样上和测量时,都是以直径值表示的,因而采用直径值编程最方便,即在直径方向,用绝对值编程时,以直径表示;用增量值编程时,以径向实际位移量的二倍值表示,并附上方向符号(正向可以省略)。
3.具有各种不同形式的固定循环功能 由于车削加工常用圆棒料或锻料作为毛坯,加工余量较大,要加工到图样尺寸,需要一层一层切削,如果每层切削加工都编写程序,编程工作量会大大增加。因此,为简化编程数控装置通常具有各种不同形式的固定循环功能,如车内、外圆柱表面固定循环车端面、车螺纹固定循环等。
4.具有刀具自动补偿功能 大多数数控车床都具有刀具自动补偿功能,利用此功能可以实现刀尖圆弧半径补偿、刀具磨损补偿以及在安装刀具时产生的位置误差补偿。加工前操作人员只要将相关补偿值输入到规定的存储器中,数控系统就能自动进行刀具补偿。无论刀尖圆弧半径、刀具磨损还是刀具位置的变化都无需更改加工程序,因而编程人员可以按照工件的实际轮廓尺寸进行编程。
5.具有恒表面切削速度控制和主轴最高转速限定功能 在加工端面、圆弧、圆锥以及阶梯直径相差较大的零件时,沿X轴方向进给时,虽然进给速度不变,但切削速度却在不断变化,导致加工表面质量变化。为了保证加工表面质量,数控车床一般具有恒表面切削速度控制功能。该功能可以使数控系统根据刀尖所处X坐标值,作为工件的直径值来计算主轴转速,使切削速度保持恒定。
当刀具逐渐移进工件旋转中心时,主轴转速越来越高,工件有从卡盘中飞出的危险,为了防止出现事故,数控车床具有主轴最高转速限定功能。
5.车床坐标系 数控车床加工的是回转体类的零件。车床主轴上装夹的不是刀具,而是待加工的工件,高速旋转的是工件,刀具则安装在刀架上,只能在二维平面内移动,所以其数控加工程序有如下特点:
一)坐标系 坐标系是程序编制前首先要搞清楚的重要概念。数控车床编程也分机床坐标系(或机械坐标系)和工件坐标系(或编程坐标系)两种。由于数控车床是回转体加工机床,一般只有两个坐标轴:X轴和Z轴。其规定为:
1.机床坐标系 机床坐标系的原点为主轴旋转中心线与工件卡盘后端面的交点处;其Z轴与车床导轨平行,是主轴的回转轴线,远离卡盘(或工件)方向为Z轴的正方向,趋近卡盘(或工件)方向为Z轴的负方向;X轴是与Z轴垂直的径向,刀架远离主轴轴线方向为X的正向,趋近主轴轴线方向为X的负向。 机床坐标系原点也是机床原点,机床坐标系就是以机床原点为坐标系原点建立的由Z轴和X轴组成的坐标系
2.工件坐标系 工件坐标系是同机床坐标系规定相同的坐标系,其原点是程序员根据零件图纸人为设定的一个基准点。一般工件坐标系原点常选在工件右端面的中心处。 工件坐标系的建立指令因机床的控制系统不同而不同。一般有两种方式:一是指定刀尖起始位置距工件坐标系原点的方位;二是指定工件坐标系原点在机床坐标系中的位置。即:
1)设工件装夹以后,刀尖距工件坐标系原点的X向尺寸和Z向尺寸分别为a 、b,可用以下指令: G50 X a Z b 其中,a、b一般应取正值,是加工过程刀尖的起始位置及加工过程中的换刀位置。G92 或G50均是以绝对值方式输入。
二、数控系统的基本功能 (一)准备功能指令 准备功能也称为G功能(或称G代码),它是用来指令机床动作方式的功能。准备功能是用地址G及其后面的数字来指令机床动作的。如用G00来指令运动坐标快速定位。表为FANUC-0i系统的准备功能G代码表。
(二)辅助功能指令(M指令) M指令设定各种辅助动作及其状态,表是数控车床及车铣中心的M指令说明。
(三)进给功能指令( F指令) 在数控车床加工中,F指令有两种形式: 1.若F后面用小数表示,如 F0.3 或 F1. 表示刀具切削进给量是mm / r(毫米/转,用G99指定); (G99) F ; F :主轴每转刀具进给量小数点输入指令范围为0.0001~500.0000(mm/r)。
每转进给量
2.若F后面用整数表示,如 F100 或 F300 表示刀具进给量是mm / min(毫米/分,用G98指定)。 (G98) F ; 其中F 为每分钟刀具进给量,指令范围为1~15000(mm/min)。 螺纹切削进给速度(mm/r),如图所示。
每分钟进给量 螺纹切削
在程序启动第一个G01或G02或G03功能时,必须同时启动F指令。F指令为模态指令,即当前F值一直有效,直到被新的F值所取代。
(四)刀具指令 数控车程序中的刀具指令常见的有两种: 1.Txx T后跟两位数字,第一位表示刀具号;第二位表示补偿号,0表示无补偿。 2.Txxxx T后跟四位数字,头两位表示刀具号;后两位表示补偿号,00表示无补偿。 在FANUC-0i系统中,采用T2+2形式表示,例如T0101表示采用1号刀具和1号刀补。
(五)主轴功能指令(S指令)和主轴速度控制( G96、G97 ) 主轴功能指令(S指令)是用以设定主轴转动速度的指令,用S指令和其后的数字组成,数字表达的含义有两种:主轴切削线速度和主轴的转速。 1.主轴速度以转速设定(单位:r/min) 指令格式:G97 S ;该指令之后的程序段工作时,主轴转速为S指令后的数值(以r/min为单位),是恒转速。例如:G97 S800表示主轴转速为800 r/min。
2. 主轴速度以线速度设定(单位:m/min) 指令格式G96 S ;该指令之后的程序段工作时,主轴转速为S指令后的数值(以m/min 为单位),是恒切削速度(线速度)。例如 G96 S100表示切削速度是100 m/min。
例1 用1号刀具切削外形时用G96设置切削速度为100m/min,并限定最高主轴转速为1500r/min;用2号刀具(钻头)钻中心孔时,用G97取消恒切削速度,并设置主轴恒转速为800r/min。两部分程序开头如下:
三、常用准备功能 (一)工件坐标系原点设定指令G50 G50是一个非运动指令,只起预置寄存的作用,即执行G50指令时机床运动部件不产生任何运动。
例2 如图所示工件,建立工件坐标系的方法如下 选工件右端面O点为工件原点时,其程序段为G50 X150.0 Z20.0 若选工作左端面O’点为工件原点时,则程序应写成G50 X150.0 Z100.0
(二)快速点定位指令G00 使刀具以机床厂设定的最快速度按点位控制方式从当前所在位置(起点)快速移动到指令给出的目标点位置(终点)。该指令没有运动轨迹的要求,也不需特别规定进给速度。 指令格式 G00 X(U) Z(W) ; 或 G0 X(U) Z(W) ; 也可以将增量坐标和绝对坐标指令混用,如 G00 X W ; 或G00 U Z ; 当在某一坐标轴上相对位置不变时,可以省略该轴坐标值,如G00 X ; G00 Z ;
注意: 1)该指令只能用于快速定位,不能用于切削加工 2)G00指令的移动速度是机床厂设定的空行程速度,与程序中的进给速度无关 3)该指令由于无运动轨迹的要求,因此刀具移动的轨迹不再是标准的直线插补轨迹。
例3 如图所示,刀具快速进给的程序: G00 X50.0 Z6.0; 或 G00 U-70.0 W-84.0
(三)直线插补指令G01 使刀具按程序中给定的进给速度F以直线运动方式,从当前点移动到指令给出的目标位置。该指令可以使刀具沿X轴方向或Y方向作直线运动,也能以两轴联动方式在X、Z平面内作任意斜率的直线运动。
指令格式 G01 X(U) Z(W) F ; 如G01 X10. Z100. F0.3 说明 进给速度的方向是直线。若进给速度F已在前段程序中给定且不需改变,本段程序也可不写出;若某轴没有进给,则指令中可省略该轴坐标。
例1 切削如图所示外圆柱面,程序如下: G01 X60.0 Z-80.0 F0.3; 或 G01 U0.0 W-80.0 F0.3; 例1 切削如图所示外圆柱面,程序如下: G01 X60.0 Z-80.0 F0.3; 或 G01 U0.0 W-80.0 F0.3; G01 Z-80.0 F0.3; G01 W-80.0 F0.3; G01 X60.0 W-80.0 F0.3; G01 U0.0 Z-80.0 F0.3; G01车削外圆柱面
例2 切削如图所示外圆锥面,程序如下: G01 X80.0 Z-80.0 F0.3; 或 G01 U20.0 W-80.0 F0.3
(四)圆弧插补指令G02或G03 使机床在X、Z坐标平面内执行圆弧插补运动,切削出圆弧轮廓。G02为顺时针圆弧插补指令,G03为逆时针圆弧插补指令。 1.圆弧顺、逆方向的判断 沿垂直于-Y轴看去,刀具相对于工件转动方向顺时针运动为G02,逆时针运动为G03为。
2.指令格式 G02/G03给定方向 X(U),Z(W)给圆弧终点坐标 圆弧圆心位置,圆弧半径两种方式
3.说明 1)圆弧终点坐标的确定。 采用绝对坐标值编程时,圆弧的终点坐标为圆弧终点在坐标系中的坐标值,用X、Z表示。采用增量值编程时,圆弧的终点坐标为圆弧终点相对于圆弧起点的增量坐标值,用U、W表示。
b a c 2) I、K值确定 I、K总是表示圆心相对于圆弧起点在X、Z轴方向上的增量值。
同一圆弧半径R的情况下,从圆弧起点到圆弧终点有两条圆弧路径。
4)圆弧半径R不能与I、K同时使用,如果同时指定了I、K和R,则R指令优先, I、K值无效。 5)进给速度F的方向为圆弧切线方向,即线速度的方向。
例1 顺时针圆弧插补
例2 逆时针圆弧插补 方法一 用I、K指定圆心位置
方法一 用I、K指定圆心位置
方法二: 用圆弧半径R指定圆心位置
(五)刀具进给速度与进给量设置指令G98或G99 车削加工中,刀具的进给速度表达方式有如下两种: 1.每转进给量指令G99 指令G99设定主轴每转一转时刀具的进给量(每转进给量),单位为mm/r。在含有G99程序段后面,指令F后面的数值是以主轴每转一转刀具的移动距离来计算的。
2.每分钟进给量指令G98 指令G98设定主轴每分钟刀具的进给量,单位为mm/min。在含有G98程序段后面,指令F后面的数值是以主轴每分钟刀具的移动距离来计算的。
(六)参考点返回指令G28或G30 参考点是数控机床上的固定点,可以利用参考点返回指令将刀架移动到该点。数控车床最多可以设置四个参考点,其中第一参考点与机床原点一致,第二、第三和第四参考点与第一参考点的距离利用参数事先设置。参考点返回有手动返回参考点和自动返回参考点两种方法。 数控车床接通电源后,一般先用手动方法进行第一参考点返回,在程序中需要返回参考点进行换刀时,应使用参考点返回指令G28或G30。
参考点返回指令G28使刀具从当前位置自动返回到第一参考点(机床原点)或经某一中间点再返回到机床原点。 指令格式: G28 X(U) Z(W) ; 刀具经中间点返回机床原点
2.返回第二(或第三、第四)参考点指令G30 因为零件在车削过程中需要自动换刀,为此必须设置一个换刀点,如果第一参考点距离零件加工位置较远时,为节省换刀时间,可以设置一个距离零件加工位置比较近的第二参考点。 指令格式: G30 X(U) Z(W) ;
刀具从当前位置经过中间点(190,50)返回到第二参考点的指令为: 绝对坐标方式:G30 X190. Z50. ; 相对坐标方式:G30 U100. W30. ;
(七)暂停延时指令G04 在数控车削加工过程中,可以根据加工的需要用G04指令在数控程序中设置暂停延时时间。 两种使用格式: G04 X ; 与 G04 P ; X和P后面的数值为延时时间。X后面的数值必须带小数点,其单位为秒(s);使用P时后面的数值不能带小数点,其单位为毫秒(ms)。
例:零件在中心有一个孔,深度为40,采用主轴旋转刀具沿Z轴方向运动的方法进行两次钻削加工,每次钻削深度为20mm,为保证每次刀具退刀时铁屑充分排出,可采用G04指令来指定刀具退出后的延时时间,并设置钻头在到达孔底时的延时时间,以保证孔底的钻孔质量
数控程序如下:
四、刀具补偿功能 刀具补偿功能用于补偿加工时实际使用的刀具与编程时使用的理想刀具(假想刀具)或对刀时使用的基准刀具(标准刀具)之间的差值(偏移量),从而保证加工出的零件符合图样要求。刀具补偿功能是数控车床的重要功能之一,可分为刀具长度补偿和刀尖圆弧半径补偿。
(一)刀具长度补偿功能 刀具长度补偿分为几何尺寸补偿(刀具偏置补偿)和刀具磨损补偿。 1.刀具几何尺寸补偿 刀具几何尺寸补偿
刀具几何尺寸补偿对刀具路径的作用是在进行刀具补偿后,被补偿刀具的刀尖相对工件坐标系的原点在X方向、Z方向各平移一个几何补偿量(Δ X、 Δ Z ),即在刀具当前位置上加上或减去对应刀具的几何补偿量,如图4-19所示。
2.刀具磨损补偿 每把刀具都有不同程度的磨损,刀具磨损后被加工工件的尺寸会出现偏差,若数控车床具备刀具补偿功能,则无需修改程序,只要修改每把刀具相应存储器中存储的数值,数控系统就能自动进行刀具磨损补偿。
(二)刀尖圆弧半径补偿 数控车削编程时必须选择刀具上的一个点,用该点的运动轨迹作为刀具相对于工件的运动轨迹。 1.假想刀尖
由于假想刀尖点并不是刀刃圆弧上的一点,因此在车削锥面、倒角或圆角时,可能会造成切削加工不足(不到位)或切削过量(过切)的现象。 另外还要注意刀尖补偿量与补偿方向。
2.刀尖圆弧半径补偿的方法 刀尖半径补偿模式的设定(G40、G41、G42指令) ① G40(解除刀具半径补偿)
G41用于刀具半径左补偿,即沿刀具运动方向看(假设工件不动),刀具位于工件左侧时的刀具半径补偿。
指令格式: 左补偿 G00(或G01) G41 X Z (F ); 右补偿 G00(或G01) G42 X Z (F );
4.刀尖圆弧半径补偿的建立、执行和取消 刀补的建立是进入切削加工前写入到程序中的一个辅助程序段 刀补的取消是切削加工完成后要写入到程序中的一个辅助程序段
例 加工零件外轮廓面
§4.2 车削固定循环 在数控车床上加工零件时,毛坯通常为圆棒料,加工余量大,要加工刀图样尺寸,需要一层层切削,为了减少编程工作量,数控系统设有多种固定循环功能。
一 单一形状固定循环G90、G94 (一)内(外)径切削循环G90 (1) 圆柱面内(外)径切削循环 (2) 圆锥面内(外)径切削循环 程序段格式为: G90 X(U) Z(W) F ; U、W为圆柱面切削终点C相对于循环起点A的增量坐标值。 (2) 圆锥面内(外)径切削循环 程序段格式为: G90 X(U) Z(W) I F ; I值为切削起点B与切削终点 C的X坐标值之差(半径值)。
(二)端面车削单一循环G94 (2) 端锥面切削循环 (1) 端平面切削循环 程序段格式为: 程序段格式为: G94 X(U) Z(W) K F ; K值为切削起点B与切削终点 C的Z向坐标值之差(半径值)。 (1) 端平面切削循环 程序段格式为: G94 X(U) Z(W) F ; G94与G90的区别只是切削方向的不同,G94的切削方向是X轴方向,主要适用于X向进给量大于Z向进给量的情况
例 加工如图所示工件,锥面深度为3mm,用G94指令编写粗车锥面加工程序,每次背吃刀量2mm。
二、复合固定循环G70-G75 复合固定循环用于非一次切削加工即能达到规定尺寸的场合,主要包括精车循环G70、粗车循环G71-G75和螺纹加工复合固定循环G76。 用棒料毛坯车削阶梯相差较大的轴,或切削铸、锻件的毛坯余量时,都有多次重复进行的动作。每次加工的轨迹相差不大,当采用单一形状固定循环G90、G94编程时程序较长,而利用复合固定循环功能,只要编出最终进给路线,给出每次背吃刀量或循环次数,数控车床就能自动地重复切削直到将工件加工到要求的尺寸为止。
(一)精车复合循环G70 当用粗车循环指令G71、G72、G73粗车工件后,可用G70来制定精车循环,切除粗加工中留下的余量。 指令格式 G70 P Ns Q Nf
第5章 数控车床编程 程序段格式如下: G00(G01) X Z G71 U(△d) R(e) 第5章 数控车床编程 (二)内(外)径粗车复合循环G71 程序段格式如下: G00(G01) X Z G71 U(△d) R(e) G71 P(ns) Q(nf) U(△u) W(△w) F S T 其中: △d—切削深度(背吃刀量、每次切削量),半径值,无正负号,方向由矢量AA′决定; e—每次退刀量,半径值,无正负; Ns—精加工路线中第一个程序段(即图中AA′段)的顺序号; Nf--精加工路线中最后一个程序段(即图中BB′段)的顺序号; △u—X方向精加工余量,直径编程时为△u,半径编程为△u/2; △w—Z方向精加工余量;
使用G71编程时的说明: (1)G71程序段本身不进行精加工,粗加工是按后续程序段ns~nf给定的精加工编程轨迹A→A′→B→B′,沿平行于Z轴方向进行。 (2)G71程序段不能省略除F、S、T以外的地址符。G71程序段中的F、S、T只在循环时有效,精加工时处于ns到nf程序段之间的F、S、T有效。 (3)循环中的第一个程序段(即ns段)必须包含G00或G01指令,即A→A′的动作必须是直线或点定位运动,但不能有Z轴方向上的移动。 (4) ns到nf程序段中,不能包含有子程序。 (5)G71循环时可以进行刀具位置补偿,但不能进行刀尖半径补偿。因此在G71指令前必须用G40取消原有的刀尖半径补偿。在ns到nf程序段中可以含有G41或G42指令,对精车轨迹进行刀尖半径补偿。
(三)端面粗车复合循环G72 程序段格式如下: G00(G01) X Z G72 U(△d) R(e) G72 P(ns) Q(nf) U(△u) W(△w) F S T G72指令与G71指令的区别仅在于切削方向平行于X轴,在ns程序段中不能有X方向的移动指令,其它相同。
(四)轮廓粗车复合循环G73 程序段格式如下: G00 X Z G73 U(△i) W(△k)R(d) G73 P(Ns) Q(Nf) U(△u) W(△w) F S T △i—X轴方向粗车的总退刀量,半径值; △k—Z轴方向粗车的总退刀量; d—粗车循环次数; 其余同G71。 在Ns程序段可以有X、Z方向的移动。 G73适用于已初成形毛坯的粗加工。
(四)轮廓粗车复合循环G73 程序段格式如下: G00 X Z G73 U(△i) W(△k)R(d) G73 P(Ns) Q(Nf) U(△u) W(△w) F S T △i—X轴方向粗车的总退刀量,半径值; △k—Z轴方向粗车的总退刀量; d—粗车循环次数; 其余同G71。 在Ns程序段可以有X、Z方向的移动。 G73适用于已初成形毛坯的粗加工。
采用G73粗车循环和G70精车循环。设粗加工分三刀进行,粗加工进给量为0 采用G73粗车循环和G70精车循环。设粗加工分三刀进行,粗加工进给量为0.3mm/r,主轴转速为500r/min,X方向和Z方向的粗加工退刀量均为14mm;粗车余量X方向和Z方向均为2.0mm,进给量为0.15mm/r,主轴转速为800r/min。
(五)端面钻孔复合循环G74 当只有Z向钻孔时 第三段改写成 G74 Z(W)β2 QΔk F ; α1、β1—钻削循环起始点的坐标值 e—钻孔过程中Z向回退量,该参数为模态量,直到指定另一个值前保持不变 Z β2 —孔的底部Z向坐标值 W β2 —孔的底部至循环起点的Z向增量坐标值 Δk —每次钻削行程长度 F —进给量
采用G74端面钻孔循环,设钻孔循环起点的坐标位置为 ( 0,68 ),钻头每次钻孔深度为5mm,Z向回退量为3mm,孔底的Z向坐标为(0,8),进给量为0.1mm/r,主轴转速为800r/min,编写数控程序。
(六)内外径切槽循环G75
采用G75切槽循环例子如图4-46所示。设切槽循环起始点的坐标位置为(42,-30),径向切入量(半径值)每次0 采用G75切槽循环例子如图4-46所示。设切槽循环起始点的坐标位置为(42,-30),径向切入量(半径值)每次0.5mm,径向回退量(半径值)为3.5mm,刀具进给量为0.2mm/r,主轴转速为600r/min,刀具在槽底Z移动量为0,编写程序。
§4.3 螺纹车削加工 螺纹切削分为单行程螺纹切削、简单螺纹循环和螺纹切削复合循环。 一、螺纹加工特点与螺纹切削参数 (一)螺纹加工特点
(二)螺纹切削参数 1.螺纹牙型高度(螺纹总切削深度) 螺纹牙型高度是指在螺纹牙型上,牙顶到牙底之间垂直于螺纹轴线的距离。如图所示,它是螺纹车刀总切入深度。
根据GB/T196-2003普通螺纹国家规定,三角形普通螺纹的牙型理论高度为 H=0.866P 但由于螺纹车刀刀尖半径的影响,螺纹的实际切削深度会有变化。 螺纹牙型的高度可按下式计算:
2.螺纹切削编程大径与编程小径的确定 外螺纹、大径和中径是螺纹加工主要应控制的尺寸。 (1)编程大径的确定 编程大径的确定决定于螺纹大径,一般螺纹大径应在螺纹大径尺寸允许范围内取中间值,并在加工螺纹前,由外圆车削来保证。 (2)编程小径的确定 编程小径的确定决定于螺纹小径。螺纹小径是通过控制螺纹中径尺寸间接得到的。 在卧式车床上,加工螺纹是用试切法来保证螺纹的中径尺寸的。在数控车床上加工螺纹时,就必须给出编程小径,因为在指令中,包含了编程小径的编程数据。
采用单圆弧型螺纹车刀车削普通外螺纹时,编程小径可按下式计算。
例如要加工M30×2-6g外螺纹,由国标可查螺纹中径的基本偏差(上偏差)es=-0. 038mm,螺纹中径的公差Td2=0 例如要加工M30×2-6g外螺纹,由国标可查螺纹中径的基本偏差(上偏差)es=-0.038mm,螺纹中径的公差Td2=0.17mm,取R=0.125P=0.25mm,将以上数据代入编程小径计算公式,则编程小径为
3.螺纹空刀导入量和空刀导出量的确定 由于数控车床的伺服系统在车螺纹起始时有一个加速过程,结束前有一个减速过程。在加速和减速过程中,螺距不可能保持均匀,因此车螺纹时,两端必须设置足够的空刀导入量(升速进刀段)和空刀导出量(减速退刀段) 。
4.分层背吃刀量 如果螺纹牙型较深,螺距较大,可分几次进给。每次进给的背吃刀量用螺纹深度减精加工背吃刀量所得的差按递减规律分配。