2自由度陀螺仪滑模控制和PID控制跟踪目标轨迹

2023-05-16

目录

 

前言

1.陀螺仪模型

2.滑模跟踪控制

3.PID控制

4.总结


 

1.陀螺仪模型

ccf0fd2152944760bf67620c3d4d5f2a.png

2.滑模跟踪控制

对于2自由度陀螺仪有两个方向x、y跟踪,所以需要分别为两个方向单独设计滑模面,这里仍以简单的线性滑模面设计分析,有兴趣的读者可以查阅我的往期滑模文章专栏

激励选取简单的白噪声: 

3b6d0939ffad46e28b1fdb1965e3b499.png

跟踪轨迹选取简单的正弦曲线: 

79cab554338046d18ed78bc3761285ce.png

 x方向位移跟踪效果:

1952ebbccca04a9c8ca4d83c74a16af5.png

 x方向速度跟踪效果:

bba851fc166b4766b452a4200ffc63c4.png

 x方向跟踪误差:

c18d34401dfb4b8484d42b1c653fb34e.png

 由于x和y方向选取的跟踪轨迹、扰动相同,所以y方向跟踪效果和x方向一样,这里不再累赘展示。

控制输入曲线:

d99bef1f153f42caa703ebb05dcac3e6.png

3.PID控制

为了比对两者效果,同样扰动和跟踪曲线均选取与滑模控制相同,PID控制仿真结果如下:

7cb03a39914240b1b808d03d7d668803.png

60cac856fdba4a369afcb79524226356.png

27a99882e5484a67aea324c209323a53.png

82d3ecd80ede4d1892c1f662ca7b3422.png

 这里为了对比有、无控制、PID和滑模控制的效果,进行汇总x方向位移跟踪曲线,如下所示:

3bbdee94edd94a9ea065b4b61b1e5bf1.png

f3acc4b3d09440eaa73de1aa3cba48a2.png

4.总结

①可以看到PID控制和滑模控制均能跟踪目标轨迹,证实了PID参数调节和滑模控制设计的合理性;

②从PID和滑模控制跟踪效果上来看,滑模控制跟踪的误差更小,说明这里设计的滑模控制跟踪效果优于常规的PID控制。

 

 

 

 

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2自由度陀螺仪滑模控制和PID控制跟踪目标轨迹 的相关文章

  • 单相Boost功率因数校正电路(PFC)设计与仿真(Simulink & Saber):第一章 PFC基础知识与电路参数设计

    写在前面 教程是根据Mathworks公司的有源功率因数校正教程 点这里跳转 和那日沙等老师编著的 电力电子 电机控制系统的建模及仿真 改写的 设计思路基本与之一致 嫌看文章麻烦的同学可以直接跳转看视频和查阅相关书籍 Simulink仿真部
  • PID稳压

    思路说明 我们设置一个目标值 这是我们要调节的目标 我们通过AD采样 PC3 采集到当前电压 通过减法运算我们得出当前电压与目标电压的差值 接下来我们只要发现当前电压与目标电压不同 我们就要想办法改变当前单片机的输出电压 PA8 也就是当前
  • 基于LabVIEW的PID算法解读

    记录一下 方便以后翻阅 下图是基本的PID算法实现方式 以及实现PID控制器所需的假设和转换 为实现PID控制器 LabVIEW要求算法对输入信号进行采样并离散积分和微分操作 一 误差计算 e k SP k PV k 上式中 e k 表示当
  • PID算法与PID自整定算法

    本文是由于研发恒温槽项目故需要了解PID控制算法和PID自整定算法 为方便本人日后需要故作此记录 直接粘贴代码吧 这是PID位置式控温算法 函数名 void Pid positional float speed 用途 PID输出 说明 参数
  • PID控制算法(PID控制原理与程序流程)

    PID控制算法 PID控制原理与程序流程 暗影玄极 博客园 cnblogs com
  • 如何在C++中使用system()命令获取执行进程的pid

    当我们使用system 命令 程序等待完成 但我正在执行process using system 并使用负载平衡服务器 因为该程序在执行系统命令后立即进入下一行 请注意 process可能不完整 system my script after
  • copy_from_user() 的任何示例吗?内核和用户空间

    我正在寻找将 PID 值从用户空间复制到内核空间 这是我的代码快照 内核模块 include
  • 将手柄传递到管道中

    说我有 node foo js node bar js 有没有办法将 foo 的标准输入句柄传递给 bar js 我有一个罕见的情况 我想在管道中进行向后通信 至少我知道我可以发送node bar js的pidnode foo js 鉴于
  • C++ 在 Windows 中发送简单信号

    Windows 上是否有相当于kill 的函数 int kill pid t pid int sig 如果没有 是否可以根据进程的 PID 来测试进程是否正在运行 Thanks Windows 没有 Unix 意义上的信号 您可以使用Ope
  • C - 获取用popen打开的进程的PID

    我有一个用 C 编写的程序 它使用 popen 打开另一个程序 我想获取该程序的 pid 或某种处理程序 以便在一定时间限制后 或者在它超出某些 ram 和 stdout 限制时杀死它 我认为这必须用ptrace来完成 它需要PID 但我不
  • 如何迭代 PCB 以显示 Linux 内核模块中的信息?

    我想编写一个 Linux 内核模块 它可以显示所有正在运行的进程的 PID 我有以下代码 procInfo c My Kernel Module for process info include
  • 如何在 OSX 10.9 中从 ProcessSerialNum 获取 PID?

    GetProcessPID在 OSX 10 9 中被标记为已弃用 并附有注释 使用适当的 processIdentifier 属性 NSRunningApplication 对象 问题是构造类方法NSRunningApplication没有
  • mac os x 下进程使用的内存

    给定PID 如何获取进程当前使用的内存 具体来说 我正在寻找 进程使用的私有物理内存 RAM 进程使用的交换空间 但我对映射文件和共享内存不感兴趣 简而言之 我想确定通过终止 PID 将释放多少内存 RAM 和交换 这有用吗 您可以使用ps
  • Ubuntu Java:查找特定程序的 pid 并终止该程序

    我正在尝试创建一个应用程序来检查此特定应用程序是否正在运行 然后在指定的时间后终止该应用程序 我打算获取应用程序的 pid 如何获取应用程序的 pid Thanks 你可以尝试ps aux grep foobar获取 pid 然后发出kil
  • 打印 pid_t 的正确 printf 说明符是什么

    我目前正在使用显式转换为 long 并使用 ld用于印刷pid t 是否有一个说明符 例如 z for size t for pid t 如果不是最好的打印方式是什么pid t 没有这样的说明符 我认为你在做什么 铸造pid t to lo
  • 查看用户最近执行的Android任务

    我想查看我的 Android 手机最近的任务 我尝试了一些来自互联网的代码 但没有一个能正常工作 我只想获取用户最后执行的应用程序的PID和名称 例如 如果我执行计算器应用程序 然后执行我创建的最近任务应用程序 则该应用程序应该能够告诉我类
  • PID和TID的区别

    PID和TID有什么区别 标准答案是 PID 用于进程 而 TID 用于线程 然而 我发现有些命令可以互换使用它们 例如 htop有一个 PID 列 其中显示同一进程的线程的 PID 具有不同的值 那么PID什么时候代表线程或进程呢 这很复
  • 如何通过VBA获取当前Excel实例的进程ID,而不使用标题?

    如何获取运行 VBA 代码的当前 Excel 实例的进程 ID 我不想通过标题中的名称来请求它 当我有两个或多个具有相同标题的 Excel 实例时 这会导致问题 您可以使用此方法来获取当前进程ID Declare Function GetC
  • 如何在不使用adb shell的情况下获取android应用程序的pid?

    如何在不使用 adb shell 的情况下获取 Android 应用程序 pid 有没有API可以获取pid 任何帮助将不胜感激 由于每个应用程序都有自己的进程ID 因此可以通过 int pid android os Process myP
  • 如何停止rabbitmq服务器

    我正在尝试启动一个节点应用程序 但我认为rabbitmq 妨碍了我 与此线程类似 名为 rabbit 的节点已经在运行 但也 无法连接到节点 rabbit https stackoverflow com questions 8737754

随机推荐

  • python列表list的index方法的用法和实例

    目录 1 index方法的用法和实例 xff08 1 xff09 语法 xff1a list index xff08 object start end xff09 xff08 2 xff09 用法 xff1a 从列表中获取指定索引元素的第一
  • python的列表list排序方法——sort、reverse用法及实例

    目录 1 sort方法的用法和实例 xff08 1 xff09 语法 xff1a list sort key reverse xff08 2 xff09 用法 用于对列表进行排序 xff08 3 xff09 实例 简单的用法实例 与lamb
  • python数据类型之间的互相转换

    目录 1 将元组转为列表 xff08 1 xff09 语法 xff1a list tuple xff08 2 xff09 实例 简单的用法实例 与for函数 if函数 split函数结合使用 2 将列表转为元组 xff08 1 xff09
  • excel的frequency函数的用法和实例

    目录 1 语法和用法 xff08 1 xff09 语法 xff1a frequency data array bins array xff08 2 xff09 用法 xff1a 用于统计指定分组区间的频率 xff0c 以已裂垂直数组返回一组
  • Linux系统下通过命令行获取bios等相关信息

    查看服务器型号 xff1a dmidecode grep 39 Product Name 39 查看主板的序列号 xff1a dmidecode grep 39 Serial Number dmidecode t 1 查看序列号及品牌型号
  • python如何获取时间和格式化时间和日期 ?

    目录 1 time time xff08 1 xff09 用法 xff1a 用于获取当前时间戳 xff08 2 xff09 实例 2 time localtime xff08 1 xff09 语法 xff1a time localtime
  • python的datetime模块常用的语法和实例

    目录 1 datetime类获取日期时间 xff08 1 xff09 datetime datetime now 用法 xff1a 获取系统当前时间 xff08 2 xff09 datetime datetime today 用法 xff1
  • python的自定义函数的用法和实例

    目录 1 自定义函数的语法和用法 xff08 1 xff09 引入 xff08 2 xff09 语法 xff08 3 xff09 用法 xff1a 用于自定义目标函数语法 xff08 4 xff09 调用函数 语法 解释 2 实例 xff0
  • python的字典dict实例

    1 获取目标字典 xff0c 将字典中的字键和值调换 xff0c 读取名字 dict 61 39 Zara 39 39 Name 39 7 39 Age 39 39 First 39 39 Class 39 dict items 以列表返回
  • python利用read()、readline()、readlines()读取文件

    目录 1 语法和用法 2 实例 1 语法和用法 with open file mode 61 39 r 39 encoding 61 None as f 读取所有文本 data1 61 f read 读取第一行数据 data2 61 f r
  • python的panda库读写文件

    目录 1 读取excel文件 xff08 1 xff09 语法 xff08 2 xff09 实例 2 读取cvs文件 xff08 1 xff09 语法 xff08 2 xff09 实例 3 读取txt文件 xff08 1 xff09 语法
  • frankmocap

    1 配置和报错 1 1 模块缺失 ModuleNotFoundError No module named detectors body pose estimator pose2d models 下载问题 xff0c 下载完之后该文件夹下面的
  • java的三种代码注释方式

    1 注释的作用 注释是对程序语言的说明 xff0c 有助于开发者之间的交流 xff0c 方便理解和维护程序 注释不是编程语句 xff0c 不会被编译器执行 一些代码量少较少的程序 xff0c 我们加不加注释对我们的理解和修改代码没有太大影响
  • UCOS的多任务

    初学UCOS多任务调度 xff0c 总是有这样一个疑惑 xff1a 为什么多使用多任务 xff0c 写多个函数不就可以了吗 xff1f 随着不断学习 xff0c 后面终于有了一个答案 多任务是并发执行 xff0c 每个任务都做一点 xff1
  • IAR编译成功,但烧录不进去

    把默认的Simulator改为ST LINK试试 xff1f
  • ipmitool使用

    BMC IPMI常用命令 BMC Baseboard Management Controler 提供了多种通道来和主机通信 xff0c 进而检测主机的温度 风扇转速 电压 电源和现场可替代器件 为了便于用户使用 xff0c 它提供了非常丰富
  • 基于LMI的等效滑模控制

    目录 前言 1 一阶欠驱动倒立摆系统 2 基于LMI的等效滑模控制器 3 simulink仿真 3 1 simulink模型 3 2 结果分析 3 2 结论 前言 关于LMI和滑模控制的结合上两篇文章已有介绍和仿真分析 xff0c 本篇文章
  • 基于扩张观测器(LESO)的滑模控制

    目录 前言 1 二阶系统LESO观测器设计 2 基于LESO的滑模控制器设计 3 仿真分析 普通高增益项 3 1仿真模型 3 2仿真结果 3 3 总结 4 仿真分析 优化后的高增益项 4 1 优化高增益项 4 2仿真结果 4 2 1 高增益
  • 基于遗传算法和粒子群算法的PID悬架控制、LQR悬架控制和滑模悬架控制

    目录 1 基于遗传算法和粒子群算法的的PID悬架控制 1 1 两种悬架系统 1 1 1 将路面激励整合到悬架系统 1 1 2 不将路面激励整合到悬架系统 1 1 3 总结 1 2 PID经典控制理论 1 3 优化PID参数的目标函数和约束条
  • 2自由度陀螺仪滑模控制和PID控制跟踪目标轨迹

    目录 前言 1 陀螺仪模型 2 滑模跟踪控制 3 PID控制 4 总结 1 陀螺仪模型 2 滑模跟踪控制 对于2自由度陀螺仪有两个方向x y跟踪 xff0c 所以需要分别为两个方向单独设计滑模面 xff0c 这里仍以简单的线性滑模面设计分析