微分---跟踪器(TD)

方法参考自

——微分跟踪器的研究与应用

张海丽

张宏丽

传统的PID 从含有噪音的信号提取具有降将噪音增大或超调量增大的特点。将微分跟踪器应用于PID,可以得到原始信号的最佳逼近。

优点:TD与PID有效地提取了原始信号,克服消极因素,有较强的抗噪声的能力,无超调的跟踪原始信号。

TD的控制公式如下:

float fst(float x1, float x2, float v)
{
    float td_y = 0;
    float a0 = 0;
    float a = 0;
    float fhan = 0;
    float d = 0;
    float d0 = 0;

    d = r*h;
    d0 = h*d;
    td_y = x1 - v + h*x2;
    a0 = sqrt(d*d + 8 * r*fabs(td_y));

    if (fabs(td_y)>d0)
        a = x2 + 0.5*(a0 - d)*sign(td_y);
    else
        a = x2 + td_y / h;

    if (fabs(a)>d)
        fhan = -r*sign(a);
    else
        fhan = -r*a / d;
    return(fhan);
}
float ADRC(float v, float y)             // v是控制系统的输入,y是控制系统的输出
{
    float u0;
    float e = 0;
    float e1 = 0;
    float e2 = 0;
    //**********   TD  ************
    td_x1 = td_x1 + h*td_x2;                        //td_x1=v1;
    td_x2 = td_x2 + h*fst(td_x1, td_x2, v);           //td_x2=v2;
        e1 = td_x1 - y;
    e2 = td_x2 ;
        u0 = P* e1 + D * e2;
        if(u0 > 10) u0 = 10;
        if(u0 < -10) u0 = -10;
    return(u0);          

经过实际检测!

时间: 2024-11-02 01:35:09

微分---跟踪器(TD)的相关文章

HTML5-新API-geolocation-实例-距离跟踪器

1 <body onLoad="loadDemo()"> 2 <header> 3 <h1>oldmeter演示</h1> 4 <h4>距离跟踪器</h4> 5 </header> 6 <section> 7 <article> 8 <header> 9 <h1>你的位置</h1> 10 <p class="info"

《Entity Framework 6 Recipes》中文翻译系列 (45) ------ 第八章 POCO之获取原始对象与手工同步对象图和变化跟踪器

翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 8-6  获取原始对象 问题 你正在使用POCO,想从数据库获取原始对象. 解决方案 假设你有如图8-7所示的模型.你正在离线环境下工作,你想应用在获取客户端修改之前,使用Where从句和FirstDefault()方法从数据库中获取原始对象. 图8-7.包含一个单独实体Item的模型 按代码清单8-9的方式,在获取实体之后,使用新值更新实体并将其保存到数据库中. 代码清单8-9. 获取最新

《Entity Framework 6 Recipes》中文翻译系列 (40) ------ 第七章 使用对象服务之从跟踪器中获取实体与从命令行生成模型(想解决EF第一次查询慢的,请阅读)

翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 7-5  从跟踪器中获取实体 问题 你想创建一个扩展方法,从跟踪器中获取实体,用于数据保存前执行一些操作. 解决方案 假设你有如图7-7所示的模型. 图7-7. 包含实体Technician和ServiceCall的模型 在这个模型中,每个技术员(technician)都有一些业务服务请求(service call),业务服务请求包含联系人姓名,问题.使用代码清单7-4,创建一个扩展方法获取

C++ Primer 学习笔记_29_操作符重载与转换(4)--转换构造函数和类型转换运算符归纳、operator new 和 operator delete 实现一个简单内存泄漏跟踪器

C++ Primer 学习笔记_29_操作符重载与转换(4)--转换构造函数和类型转换运算符归纳.operator new 和 operator delete 实现一个简单内存泄漏跟踪器 一.转换构造函数 可以用单个实参来调用的构造函数定义从形参类型到该类型的一个隐式转换.如下: class Integral { public: Integral (int = 0); //转换构造函数 private: int real; }; Integral A = 1; //调用转换构造函数将1转换为In

Android+GPS轨迹跟踪器(一)

Android+GPS轨迹跟踪器-------今天的第一步:获取Key 使用高德地图,查看高德官方API:http://lbs.amap.com/ 使用Android studio做开发平台(我还纠结了QT,但是作为菜鸟看见Android有很多官方示例,我瞬间没脾气) 步骤:http://lbs.amap.com/api/android-sdk/guide/create-project/get-key 1.进入控制台,创建一个新应用(必须有账号) 2.在创建的应用上点击"添加新Key"

用户空间程序的函数跟踪器 (Function Tracer)

翻译说明:这是一个日本人写的用户态下的函数tracer, 我们知道系统调用可以用strace, 库调用可以使用ltrace, 但是linux下竟然没有一个比较有名的用户程序的tracer, 这真是比较奇怪.目前这个工具只支持x86架构,arm之类的嵌入式环境不支持.以后有时候自己写一个tracer. 原文来自: http://binary.nahi.to/hogetrace/ tracef - function call tracer 该网页尚未完成. 之前用的名字hogetrace比较过分,自

windows服务器中关闭事件跟踪器的方法

关闭系统事件跟踪程序 WindowsServer 2003加入了关机事件跟踪的新特性,每次关机时要询问关闭原因,以详细记录服务器关闭原因用于以后故障排除备用.对于服务器来说这是必要的选择,但对于个人用户却没什么大用,反而带来麻烦,所以我们可以禁止它. 单击"开始→运行",输入gpedit.msc,打开组策略编辑器.在左窗口中选择"计算机配置→管理模板→系统",在右边窗口双击"显示关闭事件跟踪程序",在出现的对话框中选择"已禁用"

一起赚美元 | 个人饮食和健康跟踪器Cronometer——Aaron

英文原文链接:将我的小型项目变成生意,每月赚4万美元 本文主要向大家介绍,Aaron是如何靠毅力和坚挺的产品,将原本只是一个小小的副业转变为一门每月收入4万美元的生意的传奇经历. 1主人公简介我是Aaron Davidson,一个快接近40岁的中年大叔, 在读完计算机科学专业的本科和硕士后,我先后在一些有趣的软件公司任职员或联合创始人,涉猎的领域有生物科学.在线棋牌游戏和通讯软件. Cronometer.com是一个记录个人饮食和健康情况的网站,专注于对营养膳食数据的详细记录和分析,致力于向用户

MySQL 事件跟踪器

/*第一步 创建以下两个 日志表 */ CREATE TABLE `slow_log` ( `start_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, `user_host` mediumtext NOT NULL, `query_time` time NOT NULL, `lock_time` time NOT NULL, `rows_sent` int(11) NOT NULL,