首页 > 其他分享 >自抗扰(ADRC)控制原理及控制器设计

自抗扰(ADRC)控制原理及控制器设计

时间:2022-11-16 14:26:13浏览次数:82  
标签:控制器 relevant pidCtrller 自抗扰 Float blog ADRC FH td

https://blog.csdn.net/weixin_43487974/article/details/127163824?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2defaultYuanLiJiHuaPosition-2-127163824-blog-122591196.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2defaultYuanLiJiHuaPosition-2-127163824-blog-122591196.pc_relevant_default&utm_relevant_index=5

//最速控制综合函数
FH_Float fhan(FH_Float x1, FH_Float x2, FH_Float ctrlError, int r, FH_Float h)
{
	FH_Float d = r*h;
	FH_Float d0 = d*h;
	FH_Float y = x1 - ctrlError + h*x2;
	FH_Float a0 = sqrt(d*d + 8*r*fabs(y));
	FH_Float a,f;
	if(fabs(y) <= d0)
		a = x2 + y/h;
	else
		a = x2 + 0.5*(a0 -d)*Sign(y);
	if(fabs(a) <= d)
		f = -r*a/d;
	else
		f = -r*Sign(a);
//	LogPrintf("fhan f=%f,a=%f,a0=%f,y=%f,pid=%f,x1=%f,x2=%f./n",f,a,a0,y,ctrlError,x1,x2);
	return f;		
}


//TD微分跟踪器
FH_Float TD_differential_track(struct PIDController_t* pidCtrller)
{
//	int r = 10; //调节系数
	struct PIDControllerParams_t* pidParams = (struct PIDControllerParams_t*)pidCtrller->base.params;
	int r = pidParams->td_r;
	FH_Float h = 0.02; //滤波因子 略大于步长(0.01)
	FH_Float x_1k = pidCtrller->td_x1;
	FH_Float x_2k = pidCtrller->td_x2;
	FH_Float rtn = fhan(x_1k,x_2k,pidCtrller->ctrlError,r,h);
	pidCtrller->td_x1 = x_1k + AgvSamplePeriod*x_2k;
	pidCtrller->td_x2 = x_2k + AgvSamplePeriod*rtn;
	pidCtrller->ctrlError = pidCtrller->td_x1;
 
}

标签:控制器,relevant,pidCtrller,自抗扰,Float,blog,ADRC,FH,td
From: https://www.cnblogs.com/penuel/p/16895733.html

相关文章

  • 3-1、Pod控制器-deployment
    Pod控制器:ReplicationController(简称RC,已经淘汰)ReplicaSetDeploymentDaemonSetJobCronjobStatefulSetk8s名词解释:https://www.kubernetes.org.cn/deployment自......
  • 3-5、Pod控制器-Daemonset
    DaemonSetDaemonSet确保全部(或者某些)节点上运行一个Pod的副本。当有节点加入集群时,会为他们新增一个Pod。当有节点从集群移除时,这些Pod也会被回收。删除DaemonSe......
  • 3-4、Pod控制器-ReplicaSet
    Pod控制器:ReplicationController(简称RC,已经淘汰)ReplicaSetDeploymentDaemonSetJobCronjobStatefulSet自主式POD:deletepod后不会被重新拉起的,不是由pod控制器控......
  • 3-5、Pod控制器-StatefulSet
    StatefulSet有状态的集合,管理所有有状态的服务,比如MySQL、MongoDB集群等。StatefulSet:是一种给Pod提供唯一标志的控制器,它可以保证部署和扩展的顺序。Pod一致性:包含......
  • 实验6:开源控制器实践——RYU
    搭建下图所示SDN拓扑,协议使用OpenFlow1.0,并连接Ryu控制器,通过Ryu的图形界面查看网络拓扑。阅读Ryu文档的TheFirstApplication一节,运行当中的L2Switch,h1pingh2或h3,......
  • 实验4:开源控制器实践——OpenDaylight + 实验2:Open vSwitch虚拟交换机实践
    实验4:开源控制器实践——OpenDaylight1.基础要求1)扑生成并连接控制器的结果2)启动ODL3)打开Postman接口调试工具4)DELETEURL:http://127.0.0.1:8181/restconf/conf......
  • 实验6:开源控制器实践——RYU
     一、实验目的能够独立部署RYU控制器;能够理解RYU控制器实现软件定义的集线器原理;能够理解RYU控制器实现软件定义的交换机原理。二、实验环境Ubuntu20.04Desktop......
  • 实验5:开源控制器实践——POX
     一、实验目的能够理解POX控制器的工作原理;通过验证POX的forwarding.hub和forwarding.l2_learning模块,初步掌握POX控制器的使用方法;能够运用POX控制器编写自定义......
  • 【ASP.NET Core】MVC控制器的各种自定义:应用程序约定的接口与模型
    从本篇起,老周会连发N篇水文,总结一下在MVC项目中控制器的各种自定义配置。本文内容相对轻松,重点讨论一下MVC项目中的各种约定接口。毕竟你要对控制器做各种自定义时,多......
  • 实验6:开源控制器实践——RYU
    (一)基本要求1.搭建下图所示SDN拓扑,协议使用OpenFlow1.0,并连接Ryu控制器。 a.建立拓扑sudomn--topo=single,3--mac--controller=remote,ip=127.0.0.1,port=8080......