[关闭]
@wuqi0616 2017-10-28T05:44:11.000000Z 字数 5274 阅读 903

(4轴同步控制)非线性PID仿真结果分析

自抗扰技术(ADRC)

标签(空格分隔): 未分类


一.实验内容

  1. 4轴电机(伺服系统)设定位置同步控制
  2. 4轴电机(伺服系统)设定点轨迹同步跟踪控制

二.实验方案

  1. 辨识单轴伺服系统速度模式下的数学模型。
  2. 定义同步误差
  3. 定义耦合位置误差
  4. 根据耦合位置误差设计非线性PID控制器

三.实验具体步骤

数学模型:

同步误差:


耦合位置误差:

设计设定点位置同步控制器:


设计设定点轨迹同步跟踪控制器:

四.仿真程序


1、考虑用两个跟踪微分器来实现“非线性PD”

  1. %% Set-Point Position Control
  2. clear;clc;
  3. %% 参数配置
  4. H=diag([0.1 0.2 0.3 0.4]);C=diag([10 12 14 15]);%假设H,C
  5. I=eye(4);%单位矩阵
  6. T=[2,-1,0,-1;-1,2,-1,0;0,-1,2,-1;-1,0,-1,2];%同步转换矩阵
  7. a=0.5*eye(4);%k控制增益
  8. N=I+a*T;%耦合转换矩阵
  9. h=0.005;%反馈时间5ms
  10. maxit=20/h;%20s采样点个数
  11. h0=20*h;h1=20*h;h2=20*h;h3=20*h;h4=20*h;%各跟踪微分器滤波因子
  12. xd=zeros(1,maxit);%设定值,4轴相同
  13. x1=zeros(4,maxit+1);%状态变量x1
  14. x2=zeros(4,maxit+1);%状态变量x2
  15. e1=zeros(4,maxit+1);%位置误差e
  16. e2=zeros(4,maxit+1);%位置误差导数e
  17. E1=zeros(4,maxit+1);%耦合位置误差E
  18. E2=zeros(4,maxit+1);%耦合位置误差导数E
  19. vv=zeros(2,maxit+1);%xd的跟踪微分器1
  20. vv2=zeros(3,maxit+1);%xd的跟踪微分器2
  21. zz1=zeros(2,maxit+1);%1轴输出信号的跟踪微分器
  22. zz2=zeros(2,maxit+1);%2轴输出信号的跟踪微分器
  23. zz3=zeros(2,maxit+1);%3轴输出信号的跟踪微分器
  24. zz4=zeros(2,maxit+1);%4轴输出信号的跟踪微分器
  25. %% 设定点位置同步控制器参数
  26. KP=30*eye(4);%P
  27. KD=5*eye(4);%D
  28. KE=0*eye(4);
  29. for k=1:maxit
  30. %% 设定值xd=6
  31. xd(k)=6;
  32. %% xd的跟踪微分器1
  33. fh=fhan(vv(1,k)-xd(k),vv(2,k),r,h0);
  34. vv(1,k+1)=vv(1,k)+h*vv(2,k); % x
  35. vv(2,k+1)=vv(2,k)+h*fh; %v
  36. %% xd的跟踪微分器2
  37. fhh=fhan(vv2(1,k)-vv(2,k),vv2(2,k),r,h0);
  38. vv2(1,k+1)=vv2(1,k)+h*vv2(2,k); % v
  39. vv2(2,k+1)=vv2(2,k)+h*fhh; % a
  40. %% 输出y
  41. y=[x1(1,k),x1(2,k),x1(3,k),x1(4,k)]’;
  42. %1轴输出信号的跟踪微分器
  43. fh1=fhan(zz1(1,k)-y(1),zz1(2,k),r1,h1);
  44. zz1(1,k+1)=zz1(1,k)+h*zz1(2,k);
  45. zz1(2,k+1)=zz1(2,k)+h*fh1;
  46. %2轴输出信号的跟踪微分器
  47. fh2=fhan(zz2(1,k)-y(2),zz2(2,k),r2,h2);
  48. zz2(1,k+1)=zz2(1,k)+h*zz2(2,k);
  49. zz2(2,k+1)=zz2(2,k)+h*fh2;
  50. %3轴输出信号的跟踪微分器
  51. fh3=fhan(zz3(1,k)-y(3),zz3(2,k),r3,h3);
  52. zz3(1,k+1)=zz3(1,k)+h*zz3(2,k);
  53. zz3(2,k+1)=zz3(2,k)+h*fh3;
  54. %4轴输出信号的跟踪微分器
  55. fh4=fhan(zz4(1,k)-y(4),zz4(2,k),r4,h4);
  56. zz4(1,k+1)=zz4(1,k)+h*zz4(2,k);
  57. zz4(2,k+1)=zz4(2,k)+h*fh4;
  58. %位置误差
  59. e1(:,k)=[vv(1,k)-zz1(1,k),vv(1,k)-zz2(1,k),vv(1,k)-zz3(1,k),vv(1,k)-zz4(1,k)]’;
  60. %位置误差导数
  61. e2(:,k)=[vv(2,k)-zz1(2,k),vv(2,k)-zz2(2,k),vv(2,k)-zz3(2,k),vv(2,k)-zz4(2,k)]’;
  62. %耦合位置误差
  63. E1(:,k)=N*e1(:,k);
  64. %耦合位置误差导数
  65. E2(:,k)=N*e2(:,k);
  66. F=tanh(E2(:,k));
  67. %% 控制器
  68. U=KP*E1(:,k)+KD*E2(:,k)+(I/N)*KE*e2(:,k);
  69. Tempx2=[x2(1,k),x2(2,k),x2(3,k),x2(4,k)]’;
  70. %% 离散控制
  71. Tempx11=y+h*Tempx2;
  72. Tempx22=Tempx2+h*(I/H)*((-1)*C*Tempx2+U);
  73. %% 输出序列
  74. x1(1,k+1)=Tempx11(1);x2(1,k+1)=Tempx22(1);
  75. x1(2,k+1)=Tempx11(2);x2(2,k+1)=Tempx22(2);
  76. x1(3,k+1)=Tempx11(3);x2(3,k+1)=Tempx22(3);
  77. x1(4,k+1)=Tempx11(4);x2(4,k+1)=Tempx22(4);
  78. end

同理:

  1. %% Set-Point Tracking Control
  2. 设定点轨迹同步跟踪控制器参数
  3. KP=20*eye(4);
  4. KD=5*eye(4);
  5. KE=0*eye(4);
  6. KH=0.3*eye(4);
  7. KC=2*eye(4);
  8. KN=0;
  9. %% 控制器
  10. U=KH*(vv2(2,k)*[1,1,1,1]’)+KC*(vv2(1,k)*[1,1,1,1]’)+KP*E1(:,k)+KD*E2(:,k)+(I/N)*KE*e2(:,k)+F*KN;

2、考虑用不同误差组合方式实现“非线性PD”

  1. %% Set-Point Position Control
  2. %% (1)u=\beta_1 fal(e_1,\alpha_1,delta)+\beta_2 fal(e_2,\alpha_2,delta)\\
  3. Beta1=30*eye(4);
  4. Beta2=2*eye(4);
  5. alpha1=0.75;alpha2=1.5;delta=20*h;
  6. %% (2)u=-fhan(e_1,e_2,r_n,h_n)\\
  7. rn=30;hn=30*h;
  8. %% (3)u=-fhan(e_1,ce_2,r_2,h_2)\\
  9. rn=30;hn=30*h;c=2;

同理:

  1. %% Set-Point Tracking Control
  2. %% (1)u=\beta_1 fal(e_1,\alpha_1,delta)+\beta_2 fal(e_2,\alpha_2,delta)\\
  3. Beta1=20*eye(4);
  4. Beta2=20*eye(4);
  5. alpha1=0.6;alpha2=1.2;delta=h;
  6. %% (2)u=-fhan(e_1,e_2,r_n,h_n)\\
  7. rn=20;hn=30*h;
  8. %% (3)u=-fhan(e_1,ce_2,r_2,h_2)\\
  9. rn=20;hn=30*h;c=2;

五.实验结果

1、考虑用两个跟踪微分器来实现“非线性PD”
设定点位置控制
此处输入图片的描述
此处输入图片的描述
此处输入图片的描述
此处输入图片的描述

放大(“Set-Point Position Control”)图:
此处输入图片的描述
可以看到4个轴在大致3秒的时候就达到目标位置了。而位置误差和位置同步误差也在大致3秒的时候就收敛到0了。

设定点轨迹跟踪控制
此处输入图片的描述
此处输入图片的描述
此处输入图片的描述
此处输入图片的描述
放大(“Set-Point Tracking Control”)图:
此处输入图片的描述
可以看到4个轴在大致4秒的时候就达到目标位置了。而位置误差和位置同步误差也在大致4秒的时候就收敛到0了。

2、考虑用不同误差组合方式实现“非线性PD”
设定点位置控制


此处输入图片的描述
此处输入图片的描述
此处输入图片的描述


此处输入图片的描述
此处输入图片的描述
此处输入图片的描述


此处输入图片的描述
此处输入图片的描述
此处输入图片的描述

从这里可以看出,在同样的增益下,三种不同误差组合方式中第一种效果最好(暂态特性最好)。但是第一种的效果仍然与线性PD组合效果相近。

设定点轨迹跟踪控制


此处输入图片的描述
此处输入图片的描述
此处输入图片的描述


此处输入图片的描述
此处输入图片的描述
此处输入图片的描述


此处输入图片的描述
此处输入图片的描述
此处输入图片的描述
同样,从这里可以看出,在同样的增益下,三种不同误差组合方式中第一种效果最好(暂态特性最好)。但是在同步误差上可以发现非线性组合的第一种情况比线性PD组合的暂态特性要好,小了0.6。

六.主要参考文献

Sun D, Shao X, Feng G. A Model-Free Cross-Coupled Control for Position Synchronization of Multi-Axis Motions: Theory and Experiments[J]. IFAC Proceedings Volumes, 2005, 38(1):1-6.


添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注