非线性状态误差反馈NLSEF

一、作用
找到一种非线性的控制组合代替传统的PID控制器的线性组合,获得更有效的误差反馈控制率,只需将误差信号换成关于误差的非线性函数如fst函数(fhan函数)和fal函数等,可实现“小误差大增益,大误差小增益”的效果。

二、理论分析
有了跟踪微分器TD之后,我们就可以利用误差e1=v1-x1和误差微分e2=v2-x2组成PD控制u=Kp*e1+Kd*e2,甚至可以实现PID控制u=Kp*e1+Kd*e2+Ki*e0,其中

但是这种线性组合不一定是最好的,韩京清老师在论文中提到“大量仿真研究表明采用e1,e2和e0的适当非线性组合效果更好”,于是他提出常用的两种形式的非线性组合:

对于第一种非线性组合来说,α和δ是可以调节的参数,一般取a0<0<a1<1<a2,δ根据工程经验一般取0.1。在二阶系统的控制中一般只用误差e1和误差微分e2来组成非线性PD控制器:
第二种非线性组合用到的fhan(e1,c*e2,r,h0)与跟踪微分器TD中用到的fhan(e,x2,r,h)不同,用于误差反馈时,其参数c叫“阻尼因子”,相当于PID的微分增益,h0叫精度因子,决定跟踪设定值的跟踪精度,1/h0相当于PID的比例增益。

三、Matlab仿真
3.1 .m文件
function u0  = NLSEF(e1,e2)
k1=2;k2=4;
a1=0.5;a2=0.25;
delta=0.1;
u0=k1*fal(e1,a1,delta)+k2*fal(e2,a2,delta);
end
fal.m

function [f] = fal(e,a,d)
if abs(e)<d
    f=e*d^(a-1);
else
    f=(abs(e))^a*sign(e);
end
end
3.2 simulink仿真
和ESO结合使用时,非线性误差反馈控制律的输出u0往往要减去干扰估计值z3



posted @   阿风小子  阅读(289)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
历史上的今天:
2023-01-10 端对端OCR算法-PGNet
2023-01-10 用opencv的DNN模块做Yolov5目标检测(纯干货,源码已上传Github)
2023-01-10 使用深度学习检测混凝土结构中的表面裂缝
2023-01-10 YOLO-Z | 记录修改YOLOv5以适应小目标检测的实验过程
点击右上角即可分享
微信分享提示