基于RISE的直流电机高精度伺服控制方法

RISE(robust integral of the sign of the error)误差积分符号鲁棒控制,该控制方法将参数误差,建模误差,未建模动态及外干扰归入到系统不确定性中,在不使用高增益反馈的条件下实现系统的渐近稳定性能,具有良好的鲁棒作用。

渐近稳定性:如果控制系统在其特性或参数的标称值处是渐近稳定的,并且对标称值的一个邻域内的每一种情况它也是渐近稳定的,则称此系统是结构渐近稳定的。

鲁棒性(robustness):就是系统的健壮性,用来表征控制系统对特性或参数扰动的不稳定性。

鲁棒控制:当系统中存在模型摄动或随机干扰等不确定性因素时能保持其满意功能品质的控制理论和方法。

直流电机系统的状态方程:

方程1.png
q.png
w.png

θ1 θ2 θ3 θ4 表示系统已知的的物理参数标称值。
c1 c2 c3 表示各种摩擦效应估计的摩擦系数。
d(x,t)是未知项,是建模不确定性和参数偏差效应的集中体现。

直流电机RISE控制器组成

图片1.png

RISE控制器设计

定义误差变量:
e.png

控制器设置:
r.png

Simulink 仿真实现

t.png
y.png
u.png
i.png

直流电机的S-函数

S-函数是系统函数的简称,是指采用非图形化的方式(即计算机语音,区别于Simulink的系统模块)描述的一个功能模块。可以采用MATLAB、C、C++、FORTRAN或Ada等语言编写S-函数。S-函数由一种特定的语法构成,用来描述并实现连续系统、离散系统、以及复合系统等动态系统,S-函数能够接收来自Simulink求解器的相关信息,并对求解器发出的命令做出适当的响应,往往S-函数模块是整个Simulink动态系统的核心。

S-函数的仿真流程图
s函数.png
S-函数代码

function [sys,x0,str,ts]=RISES(t,x,u,flag)
switch flag,
  case 0,
    [sys,x0,str,ts]=md1InitializeSizes;                      %初始化
  case 1,
    sys=md1Derivatives(t,x,u);                               %连续状态的更新
  case 3,
    sys=md1Outputs(t,x,u);                                   %计算输出量
  case {2,4,9}
    sys=[];
  otherwise
    error(['Unhandled flag=',num2str(flag)]);
end
function [sys,x0,str,ts]=md1InitializeSizes
sizes = simsizes;                                           %读入初始化参数模板
sizes.NumContStates  = 2;                                   %连续状态个数
sizes.NumDiscStates  = 0;                                   %离散状态个数
sizes.NumOutputs     = 2;                                   %输出量个数
sizes.NumInputs      = 1;                                   %输入量个数
sizes.DirFeedthrough = 1;                                   %直接贯通标示
sizes.NumSampleTimes = 1;                                   %采样时间的个数,至少有一个采样时间
sys = simsizes(sizes);
x0=[0,0];                                                   %状态值初始化
str=[];                                                     %str总是为空
ts=[0 0];                                                   %初始化采样时间
function sys=mdlDerivatives(t,x,u)
thetal=2.5*0.001;
theta2=0.02;
theta3=0.01;
theta4=0.205;
c1=700;
c2=15;
c3=1.5;
d=0.1*t;
sys(1)=x(2);
sys(2)=(u-theta2*tanh(c1*x(2))-theta3*(tanh(c2*x(2))+tanh(c3*x(2))-theta4*x(2)+d)/thetal;
function sys=mdlOutputs(t,x,u)
sys=[x(1),x(2)]

仿真结果

跟踪效果:
a.png
跟踪误差:
b.png
跟踪误差标准差与最大跟踪误差:
c.png

与PID控制器相对比,RISE控制器有以下优越性能

  1. 在RISE控制器的设计过程中考虑了系统的非线性特性,并利用前馈控制规律对其进行抵消,而PID控制器对于非线性没作特别处理。
  2. 在RISE控制器中,采用非线性鲁棒控制律来抑制系统的不确定非线性,而PID控制器对于这些建模不确定性仅具有一些鲁棒性。

积分鲁棒控制方法将参数误差、建模误差、未建模动态及外干扰归入到系统不确定性中,在不使用高增益反馈的条件下也实现了系统的渐近稳定性能。

最后修改:2019 年 09 月 21 日 06 : 11 PM
如果觉得我的文章对你有用,请随意赞赏

发表评论