1、501科研含有静态摩擦的伺服系统的摩擦参数辨识问题 对于高精度的伺服系统,存在的摩擦会严重地影响到其动态性能。尤其当系统在低速或者反复换向运行的时候,摩擦的影响会更为严重。因此,准确地获得伺服系统的摩擦特性并对其进行有效补偿显得尤为重要。一个好的静态摩擦模型可以非常准确地模拟真实的摩擦现象,对应的摩擦补偿算法也可以有效地减轻摩擦带来的不良影响。 伺服系统中摩擦现象的特点-低转速时摩擦转矩与转速呈指数关系,高转速时摩擦转矩与转速呈线性关系。 对于线性摩擦部分和非线性摩擦部分分开进行讨论,利用线性最小二乘技术得到线性和非线性摩擦的相应参数,这种方法简洁,但由于伺服系统静态摩擦的模型比较复杂,因此,
2、应用这种方法比较麻烦,准确性也不是很高。 采用遗传算法,研究伺服系统静态摩擦采用遗传算法,研究伺服系统静态摩擦参数辨识的仿真和设计方法。参数辨识的仿真和设计方法。1.1 伺服系统的静态摩擦模型伺服系统的静态摩擦模型 机械系统可描述为机械系统可描述为: (1)其中其中 为转动惯量,为转动惯量, 为转角,为转角, 为控制输为控制输入力矩,入力矩, 为摩擦力。为摩擦力。JuFJuF 考虑摩擦力为静摩擦力的情况,静摩擦力与转速之间的稳态对应关系为: 2sVcscFFFF esgn(2) 伺服系统在正反转动速度方向运行时,其静态摩擦力的静态参数取不同的值,当 时,静态参数值为 ; 当 时,静态参数的值为
3、 表示如下: 22()(),0,0isisVcsciiiiVcsciiiFFFesgnFFFFesgn 00(3)cFsFsVcFsFsV 由上式所确定的转速-摩擦力矩曲线称为Stribeck曲线。 1.2 静摩擦模型静摩擦模型Stribeck曲线的获取曲线的获取 由式(1)可知,当 时,摩擦模型为静态摩擦模型,此时 , 。故采用一组恒速跟踪,可获得一组相应的控制输入信号和静态摩擦力,从而获得Stribeck曲线。0uF 具体方法为:取闭环系统的一组恒定转速序列 作为速度指令信号,通过采用PD控制律,实现被控对象精确的速度跟踪,得到相应的控制力矩序列 ,从而获得一组相应的静态摩擦力矩序列 。
4、PD控制律为:1Nii 1Niiu 1NiiFipidiuk ek e(4)1.3 基于遗传算法的静态摩擦参数辨识基于遗传算法的静态摩擦参数辨识 取待辨识静态摩擦参数向量为个体,遗传算法的每步迭代得到静态摩擦参数的辨识值为: (5)其中, 为种群规模。TsscsscmVFFVFFx1,2,mMM则由下式得到相应的摩擦力矩辨识值 22,0,0isisVcsciiiisVcsciiiFFFesgnFFFFesgn 辨识误差为isisiFFe1,2,iN其中 值根据所建立的Stribeck曲线得到。isF(6)取目标函数为选择个体适应度函数如下: 采用十进制浮点编码格式,选择操作采取保存最优个体的随
5、机采样选择方法,交叉操作采用均匀交叉算子,交叉概率 ,0/90cP 211,1,2,2NmiiJemMmaxmaxmaxmmmCJfCJ1 ,2,mM 变异概率随进化代数自适应调整, 其中g为当前遗传代数。 遗传算法的步骤如下: Step 1. 置进化代数计数器为 ,随机产生初始化种群 ;Step 2. 计算个体适应度 , ; GggPm001. 01 . 01 . 00t 0PifX1,2,iMStep 3. 判断是否达到最大进化代数,若是,则算法终止,否则,转step 4;Step 4. 经过选择操作,产生新一代种群 ;Step 5. 以概率 进行交叉操作;Step 6. 以概率 进行个体
6、变异操作;Step 7. ,转step 2; P tcpmp1tt 一旦辨识得到的参数估计值,便可以设计摩擦力矩的补偿环节,实现对系统的摩擦进行补偿,基于摩擦力矩补偿的控制系统描述为:JuFF1.4 仿真实例仿真实例被控对象为(1)式,取 ,控制律取PD控制。0.20J 仿真之一:仿真之一:Stribeck曲线的设计曲线的设计 恒速跟踪时,为静态摩擦, ,实际系统的静态摩擦模型取(3)式,取 取速度信号作为指令信号, 共41个速度指令信号。针对每个指令信号,采用PD控制律,取 。 仿真结果如图1-2所示。仿真结束后,将所得到的静摩擦力矩保存在文件Fi_file.mat中。sFF1 1.0:0.
7、05: 1.0Nii 0.28,0.32,0.02,0.01cssFFV0.29 ,0.33 ,0.03 ,0.015cssFFV200,100pdkk图1 恒速斜波跟踪(速度指令为1.0时)00.050.10.150.20.250.30.3500.050.10.150.20.250.30.35timePosition tracking图2 Stribeck 曲线辨识-1.5-1-0.500.511.5-0.5-0.4-0.3-0.2-0.100.10.20.30.4wIdentified static friction force图3 Stribeck 曲线辨识误差-1.5-1-0.500.
8、511.5-8-6-4-20246810 x 10-4speedStatic friction force identification error程序清单主程序:%Static Lugre friction model identificationclear all;close all;ts=0.001; %Sampling timefor j=1:1:41jv=-1+(j-1)*0.05dr(j)=v;xk=zeros(2,1);u_1=0;for k=1:1:300t(k)=k*ts;r(k)=dr(j)*t(k);para=u_1;tSpan=0 ts;tt,xx=ode45(chap
9、9_1plant,tSpan,xk,para); %被控对象xk=xx(length(xx),:);y(k)=xk(1); dy(k)=xk(2); %Practical speed valuee(k)=r(k)-y(k);de(k)=dr(j)-dy(k); u(k)=200*e(k)+100*de(k);u_1=u(k);endpause(0.001);figure(1);plot(t,r,r,t,y,b);xlabel(time),ylabel(Position tracking);w(j)=dy(300);F_iden(j)=u(300); % Identified static fr
10、iction forceendfigure(2); % Practical Static friction modelfor j=1:1:41 if j21 Fc=0.15;Fs=0.6;alfa=0.02;Vs=0.05; F(j)=Fc+(Fs-Fc)*exp(-(w(j)/Vs)2)*sign(w(j)+alfa*w(j); elseif j0 Fc=0.15;Fs=0.6;alfa=0.02;Vs=0.05; F_static=Fc+(Fs-Fc)*exp(-(x(2)/Vs)2)*sign(x(2)+alfa*x(2); % Static friction modelelseif x
11、(2)21 F_GA(j)=(Fcp+(Fsp-Fcp)*exp(-(w(j)/Vsp)2)*sign(w(j)+alfap*w(j); elseif jtemp alfa=rand; %交叉方法 TempE(i,:)=alfa*kxi(i+1,:)+(1-alfa)*kxi(i,:); TempE(i+1,:)=alfa*kxi(i,:)+(1-alfa)*kxi(i+1,:); end end %*变异操作* Pm=(0.20-(0.1-0.001)*kg/G); %变异概率 Pm_rand=rand(Size,CodeL); Mean=(MaxX + MinX)/2; Dif=(MaxX
12、-MinX); for i=1:1:Size for j=1:1:CodeL if PmPm_rand(i,j) %变异方法 TempE(i,j)=Mean(j)+Dif(j)*(rand-0.5); end end end TempE(Size,:)=BestS; %保存最优个体 kxi=TempE;%*endBestS %最佳个体Best_J=BestJ(G) %最大目标函数值figure(1); %辨识前后的Stribeck曲线plot(w,F,xr);hold onplot(w,F_GA,-b);xlabel(Speed);ylabel(Friction moment);legend(
13、Practical value by Test,Identified value by GA);hold offfigure(2); %最大目标函数值变化曲线plot(time,BestJ,r);xlabel(Times);ylabel(Best J);TempE(Size,:)=BestS; %保存最优个体 kxi=TempE;图4 目标函数值变化曲线05010015020025030035040045050000.0050.010.0150.020.0250.030.0350.040.0450.05TimesBest J图5 辨识Stribeck曲线与实际Stribeck曲线-1-0.8-0.6-0.4-0.200.20.40.60.81-0.5-0.4-0.3-0.2-0.100.10.20.30.4SpeedFriction moment Practical value by TestIdentified value by GA