自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

龙猫的博客

做点想做的事

  • 博客(85)
  • 资源 (10)
  • 收藏
  • 关注

原创 px4的时钟配置宏

例如v6x,PX4的时钟配置宏在 px4/fmu-v6x/nuttx-config/include 文件夹中。时钟配置宏的含义对照 cubemx 的时钟树来看会更清晰。v6x使用的是16M的外部晶振,最终需要配置 480M 的系统时钟,一般使用的是25M,但从配置难度上,16M会比25M配置更容易一些。v6x默认使用 HSE ,即外部晶振作为时钟源。PLL输入源的频率根据配置选择不同的范围。最终得到 480M 的最大时钟频率。

2025-03-24 10:46:51 368

原创 px4的垂向控制

例如手控的垂向控制,在手控高度规划 FlightTaskManualAltitudeSmoothVel 中,根据垂向的目标速度,与xy轴的速度轨迹规划一样,也是将目标速度带入速度S曲线,生成相应的轨迹(加加速度,加速度,速度,位置)等垂向信息,之后作为控制输入,代入旋翼的位置控制类 MulticopterPositionControl ,在此类的主循环中,更新位置与悬停油门(推力)的估计数据,调用位置控制类 PositionControl 进行 PVA 控制。1)正常飞行时,高度目标不设置,即为NAN。

2025-03-22 13:43:01 731 1

原创 px4协处理器bootloader

它的结构很简单,针对不同的硬件配置使用 #if --- #elif --- #end 宏条件编译语句进行配置。也就是说,设置的 200ms,如果在进入 bootloader 后,200ms之内,没有接收到数据,则判断超出时间,则跳转到 app 偏移地址中,如果 200ms 之内,接收到了数据,则停止计时,开始进入接收数据状态。:包含 Makefile,Makefile.f1,Makefile.f3,Makefile.f4,Makefile.f7 五个文件,分别对应系统总的编译流程以及各系列芯片的编译流程。

2025-03-14 14:56:09 1004

原创 八叉树地图的原理与实现

八叉树地图适合做大地图的建模,因为地图较大的情况下,体素图会占据大量的空间,不利于存储,因此八叉树地图适合做全局地图建模,用于做全局规划。体素图因为数据结构简单,建模速度快,因此适合做局部小地图的建模,用于局部规划,做动态避障。也就是说,在一定大小的三维空间内,

2025-03-13 23:54:36 289

原创 RTK与RTD基础原理

因为每个卫星都有原子钟,因此每颗卫星的时间基本上都是相同的,不过卫星发射信号的时间点有可能不同,但在发送的报文中,会包含时间戳信息。3)移动端(无人机)将载波相位与自身的载波相位做差,得到载波相位差,进而求解出与基站的距离,再根据基站的坐标与自身解算出来的坐标,求解出定位精度更高的位置坐标。在实际的定位应用中,伪距精度不如载波相位高,但是伪距可以实现绝对定位,通常是两者结合进行综合定位,即RTD与RTK相结合实现准确定位。对一个飞机还有一颗卫星来说,假设卫星的坐标为 X1,Y1,Z1,时间为T1。

2025-03-12 21:32:05 610

原创 px4中的UAVCAN_V1特点与仲裁原理

在 2021 年,UAVCAN 进行了升级,名称也修改为了 OpenCyphal,这是由于其将协议内容扩展到了 UDP,串口,以后也将扩展到更多底层协议,而不单单只能用于 CAN,因此名称修改了。而最初此协议就是基于 CAN 来做的,因此最初名称为 UAVCAN。

2025-03-11 18:16:01 1092 2

原创 px4中的uavcan进程

PX4 中的 uavcan 模块梳理起来是有点杂的,就像 commander 中的内容一个较为杂乱。如果要梳理划分的话,可以按照主题消息的类型来划分,PX4 中的 uavcan 模块需要接收处理的消息主题非常多,因此将其主要分为三类:1)需要收发的非传感器主题消息2)只需接收的传感器主题消息3)服务器消息(用于固件升级)框图如下:在 PX4 中的 uavcan 进程中,在 uavcan_main 中创建主节点,并且在创建主节点时,会将所有的主题消息挂载在主节点上,主节点也就是飞控。服务器消息有一定的条件,即

2025-03-10 20:39:30 816 2

原创 px4中的DroneCAN

一条完整消息中,消息长度可能超过 8 字节(CAN 一帧最多发 8 个字节),超过 8 字节的消息在 CAN 协议中,会分多帧发送,多帧发送的 请求/响应消息的 ID 都是相同的,不同的是负载内容。如果按照长度的话,可以看作单帧消息与多帧消息,由于 CAN 帧最大就是 8 字节,因此小于等于 8 字节的消息可以单帧发送,大于 8 个字节的只好拆分为多个 CAN 帧发送。--- 如果此主题消息单帧发送不完(超过7个字节),则必然会发送多帧数据,如果此帧是第一帧,则此位为1,否则为0;

2025-03-09 01:17:07 695 2

原创 无人机如何根据航线重叠率与相机参数计算航线间隔与拍照点

对于一块地表,无人机每隔N秒在空中间隔的拍照地表的一块区域,在整个任务执行结束后,拍到的所有区域照片能够完整的表达出一块地表,那么本次任务就是成功的。例如,在 QGC 中,使用横版放置,选择一个相机,航线高度设置 100 米,重叠率都设置为 70%,根据前向重叠率计算拍照间隔,根据旁向重叠率,计算航线间隔。要通过用户设定的航线重叠率来计算航线间隔与拍照点间隔的话,按照上面的重叠率定义,还缺少照片的覆盖面积是未知的,,指无人机在一条航线前进拍照时,,根据上面的示意图可以看出,因为重叠率是 70%,那么。

2025-03-07 17:58:41 1137 1

原创 PX4中的UAVCAN_V1的实现库libcanard与数据格式DSDL

由于发送的是广播消息,结合 libcanard 中对于发送结构体 CanardTransfer 的定义,广播消息的 remote_node_id 设置为 CANARD_NODE_ID_UNSET,而 transfer_id 与上次相比,自加即可。由于发送的是广播消息,结合 libcanard 中对于发送结构体 CanardTransfer 的定义,广播消息的 remote_node_id 设置为 CANARD_NODE_ID_UNSET,而 transfer_id 与上次相比,自加即可。

2025-03-06 23:36:54 874 2

原创 PX4中的DroneCAN的实现库Libuavcan及基础功能示例

--此模块运行活动节点监视器,当远程节点响应 uavcan.protocol.GetNodeInfo请求时,模块会检查其固件映像是否比当前运行的节点固件版本更新。如果当前模块是主机的话,会同时再创建一个从机运行,这是做的一个冗余机制,当检测到网络中有更高优先级的主机时,当前节点会启用从机 (suppress(false)),之后与新主机进行同步。在单线程配置中,库的线程应该在 Node<>::spin() 内阻塞。具体在 PX4 中的体现,在 uavcannode 进程中的 uavcannode 类,

2025-03-05 22:54:24 775 3

原创 PX4中的uavcan进程

传感器消息是非常多的,传感器模块都在 uavcan/sensors 目录下,正是由于种类多,因此 PX4 单独为传感器创建了一个管理器 sensor_bridge ,在管理器中统一创建各个传感器的实例,并且创建了一个默认4个通道的列表,管理所有传感器消息的 uORB 主题发布。由于传感器种类太多,PX4 不仅要接收传感器发送的主题数据,同时在接收之后,还要根据数据更新相应的 uORB 主题消息,因此 PX4 使用这 4 个通道来发布相应的 uORB 主题消息,避免同时发布的数据太多,节省资源,在。

2025-03-04 23:19:48 586 2

原创 编队飞行如何找到最佳排序

在进行编队飞行时,如果进行队形变换,则需要为当前的飞机寻找一个最优的新队形的编号,当然也可以随机,或者不处理,直接一对一,那样可能整体的耗能会比较大,而且会出现很多需要避障的场景,增加风险,因此需要一个算法来为当前队形到目标队形变换提供一个序号的排列,常用的就是KM算法了。二分图的概念可以理解为:二分图是针对无向图的问题(两个集合之间的元素点的连接边没有方向),所有的元素点可以分为两个集合,一个集合中的所有点都与另一个集合的点相连,但是两个集合内部的点不相连。,即与其相连的边中的最大权重,记作顶标。

2025-03-02 15:09:48 472

原创 自制px4日志工具

在无人机的日常问题排查过程中,看日志是必不可少的一个环节,飞机的本地日志是记录最全的信息,结合自己调试飞机经常查看的字段,制作了这个软件,也算是可以给大家一个新的工具选择吧,方便 px4 开发者以及无人机爱好者查看飞行日志。

2024-09-29 11:40:26 942

原创 【EKF】EKF原理

卡尔曼滤波可以在线性模型,误差为高斯模型的情况下,对目标状态得出很好的估计效果,但如果系统存在非线性的因素,其效果就没有那么好了。其中,f 是非线性状态函数,h 是非线性量测函数,w 与 v 分别是高斯噪声,协方差矩阵为 Q 与 R,在上式中省略了。对于非线性系统的问题,比较常用的方法是将非线性的部分进行线性化处理,其中,EKF 就是对非线性系统进行线性化,即,将非线性函数,在上次估计值 x_hat(k-1) 处进行泰勒展开,其中,结合上面的非线性方程,之后将线性化的泰勒展开式代入上面的非线性方程。

2023-09-10 02:08:58 1801 4

原创 【Matlab】根据伯德图计算pid参数方法原理

在控制器的前面,再增加一个系数 k,用于调整幅频响应的增益,就可以调整穿越频率到指定的值上,系数 k 的计算原理也比较简单,求出不加 k 时,整个控制器加系统在期望穿越频率下的幅值,记作 g,然后求倒数赋给 k 即可。求解参数时,可以根据自己看重系统的哪些性能来联立方程,例如,给定系统的滤波系数T2,期望的系统截止频率 wn_ref,期望的系统穿越频率 wc_ref,期望的系统相位裕度 PM。证明计算是无误的,有一点点的误差关系不大,matlab画图与计算的精度有一些区别,不完全一样关系不大。

2023-06-27 21:46:38 6651 1

原创 【传感器】一种鲁棒的imu比例系数与偏移的校准算法

以上的代价函数是有加法的,运用最小二乘法来估计参数比较困难,因此使用 LM 算法来进行非线性估计,具体 LM 算法的原理与实现,参考主页中的上一篇文章《LM迭代估计法》,其与标准正交坐标系有一定的偏移,将各轴的偏移记作 β,之后建立误差模型,建立代价函数,进而求解估计参数。其中,T 为旋转矩阵,W(O) 表示陀螺仪的正交标准轴,与 AOF 重合,W(S) 是当前的陀螺仪轴。此方程中,含有 9 个未知量,三轴的轴偏移,三轴的比例系数,三轴的零偏。,理想的三轴坐标系,加速度计的理想坐标系可以记作 AOF,

2023-06-24 02:02:10 909

原创 【Matlab】LM迭代估计法

其中 y(i) 为第 i 组数据的真实值或理论真实值,fi(θ) 为第 i 组数据的预测值,目的就是找到一组 θ,使得代价函数达到最小值。7.更改估计参数之后,再次使用 n 组采样数据,重复 6 步骤,如果代价函数值变化小于设定的迭代精度,或达到最大迭代次数,则停止迭代,返回跌代后的参数向量 θ。6.迭代更新参数向量,雅可比矩阵(有一些简单的情况雅可比矩阵只与采样值有关,就可以只计算一次),这里将收敛补偿设置为1,即α = 1。迭代次数为 1000 次,采样 100 组 x,y 数据。

2023-06-18 22:13:19 3197 1

原创 【传感器】最小二乘法实现磁力计椭球校准

磁力计的数据在实际中是椭球的形状,在此之前使用了球体拟合进行校准,也就是简化为正球体的模型,得出的结果比较差,航向计算不准,还是需要用椭球的模型来估计偏移量,先使用标准的椭球方程,进行化简与变形,得到最小二乘法可以进行估计的标准形式,之后对原始数据进行最小二乘法矩阵的赋值,求解方程,最终观察拟合效果。但使用此方程会有问题,可以求出多个解,使用matlab求解的话,很容易就会求出异常的解,也就是Rx,Ry,Rz很大的时候,也是会满足方程的,但这个解肯定是不对的。实际输出为:y = φT * θ。

2023-06-02 15:15:40 2390

原创 【EKF】卡尔曼滤波的二维应用实例

在上期,使用一个简单的一维应用实例来加深了卡尔曼滤波的印象后,使用一个二维的例子来看一下卡尔曼的效果。将上式写作状态方程的形式,定义 x1 代表位移,x2 代表速度,x1_dot = x2 (x1的微分就是x2),将x1,x2合并为一个二维的状态矩阵 x。其中,r 为测量噪声,传感器只能观测位移,不能观测速度。

2023-05-09 18:48:14 1713 1

原创 【EKF】卡尔曼滤波的一维应用实例

在实际中,测量噪声 v 的方差是比较容易得到的,因为是传感器的方差,可以预先测量 n 组数据来计算出来,计算出的方差 R 与真实方差也是接近的,但过程噪声方差 Q 是比较难确定的,它是由建模引起的,需要实际判断与调试。推导了卡尔曼滤波的原理之后,使用一个简单的一维应用实例来训练一下,加深印象。对于此一维的系统,矩阵 A = 1,H = 1,B = 0。其中 w 为过程噪声,方差为Q, v 为测量噪声,方差为R。温度计的测量噪声 v 的方差为 R,假设为1.0^2。绿色为测量值,红色为估计值,蓝色为实际值。

2023-05-09 15:47:48 1415 3

原创 【EKF】卡尔曼滤波原理

1)当估计误差远大于测量误差时,k>>1,此时 x_hat(k) = x_hat(k-1) + z(k) - x_hat(k-1) = z(k),此时就完全信任测量值。在上一小节中求解出了卡尔曼增益的表达式,但在表达式中的先验误差的协方差矩阵 P-(k) 的未知的,因此接下来就需要求解先验误差的协方差矩阵 P-(k)。结合上面的两个公式,对 w,v 来说,期望值都为0 ,也就是 E(w) = 0,E(v) = 0,则。其中 e(k) 表示估计误差,x(k) 表示真实值,x_hat(k) 表示后验估计值。

2023-05-08 18:05:40 1593

原创 【云台】开源版本SimpleBGC的传感器校准与姿态融合

在云台中,陀螺仪的角速度是短期可靠的,加速度计容易受到振动的影响,在长期是可靠的,互补滤波就是给陀螺仪积分得到的角度与加速度计得到的角度分别给权重,利用测量值(加速度计测量得到的角度)校正预测值(陀螺仪积分得到的角度)。陀螺仪直接测量到的角速度是机体角速度,在转换为欧拉角速度后,乘以时间间隔,再加上上次的估计值,就得到一个陀螺仪积分计算的角度,作为预测值。俄版云台也是同样,在采集了多轴旋转的数据之后,通过最小二乘法拟合出数据形成的球体,计算球心,就是磁力计校准需要记录的数据。

2023-05-08 10:51:38 1799

原创 【云台】开源版本SimpleBGC的电机驱动与控制方式

上面的图是单相的 SPWM 信号,电机中的三相线一般是用 U,V,W 或 A,B,C 来表示。最近想学习一下云台,发现资料确实还不太好找,比较有参考价值的是俄版的开源版本的云台代码,后面就不开源了,开源版本的是比较原始的算法,差不多是玩具级别的,不过还是决定学习一下,了解一下基础。云台的功能是要通过调整电机的机械角度来达到相应的姿态角,如果说通过校准,得到电角度与机械角度的偏移量,或者电角度与姿态角度的偏移量,会非常的麻烦,而且容易出错,的方式来控制三相无刷电机,并且为节省成本,直接使用的。

2023-05-01 11:36:55 3361 4

原创 【路径规划】Dubins路径

Dubins路径

2023-04-18 11:44:51 1945

原创 【路径规划】VFH

vfh局部路径规划绕障

2023-03-13 15:15:15 2027

原创 【自校正控制】自校正PID

自校正PID是自校正控制的一种,其核心思想是使用在线辨识来辨识系统参数的变化,之后使用极点配置的思想来计算PID参数,达到自动调节的目的。

2022-07-24 16:28:04 2034 1

原创 【自校正控制】递推最小二乘法

上节介绍了批处理最小二乘法,它比较适合数据的预处理,也即离线辨识,在实时性方面就不如递推最小二乘法,递推最小二乘法也就适合在线辨识。

2022-07-19 00:38:43 1795

原创 【路径规划】使用垂距限值法与贝塞尔优化A星路径

在之前使用通用的A*算法来规划出路径之后,可以发现路径上其实是有许多的冗余点的,如下图所示:上图中可以明显看出有一些折弯点是冗余的,因此本节内容就介绍使用垂距限值法来优化冗余点。垂距限值法的思想也是比较简单的,概括一下就是:计算当前节点到上节点与下节点连线的距离,超过一定的阈值就从总集合中删除当前点。总体思想就如它的名字一样。这里我写成了一个函数Vertical_distance_limit:正在上传…重新上传取消当然,此函数中我又封装了一个函数,即计算垂距的函数compute_vertical_dista

2022-07-05 18:31:12 1293 3

原创 【路径规划】RRT增加动力模型进行轨迹规划

在上篇增加了一个运动对象之后,就可以考虑给这个运动对象增加动力模型,之后按照动力模型来进行轨迹规划。这个动力模型我的思路是参照开源飞控中使用向量法指定速度方向,使用S曲线来规划速度轨迹的方式,最终做出来的效果看起来还是可以的。这里可以补习一下开源飞控中的速度S曲线规划的知识,总体思想为:保证加速度,速度连续,以固定加加速度来改变速度。总体的效果就是:先以恒加加速度将加速度a加到最大加速度a_max,时间为T1,之后以恒加速度运行T2时间,之后以恒加加速度将加速度从a_max减到0。这里PIX4的源码中也给出

2022-07-03 17:55:17 613

原创 【路径规划】如何给路径增加运动对象

在上一篇的路径规划文章中,使用多段五阶贝塞尔曲线优化RRT搜索后的路径,虽然视频上看起来还好,但还是不够好玩,为了让其有趣一些,突然想增加一个运动对象(例如一个三角形),在生成平滑曲线后,沿着平滑曲线运动,这个是本期想要实现的目标,在实现之后,后面可以考虑再增加一些运动模型来使得这个运动对象符合生活中的一些运动对象。首先我们使用一个三角形来表示一个运动对象的话,需要找到一个画三角形的方法,这个需要借助 matlab 的 fill 函数,这个函数的作用大致是这样:给出几个点的横纵坐标,然后使用 fill 函数

2022-06-23 02:25:49 402

原创 【路径规划】辅助点与多段贝塞尔平滑RRT

在上一篇关于贝塞尔曲线平滑路径的文章中,只是大致的介绍了一下贝塞尔曲线的原理,并且初步测试了一下,最终平滑的效果,还是不尽人意的,最开始是使用了简易的多段二阶贝塞尔,得到的曲线有很多的尖锐:然后使用了全局的贝塞尔,也就是所有的点全一次用上,得到一个N阶贝塞尔,但是这样就会有一个缺点,那就是当转弯很多的时候,它的效果就并不那么好了,就像这样:有时就会出现上述的情况,比较容易压到障碍,并且与原路径差别较大。那么在实际的贝塞尔优化路径的使用中,经常使用的方法可以直接告诉大家:使用多段五阶贝塞尔 + 插辅助点的方法

2022-06-21 12:47:18 1904 4

原创 【自校正控制】批处理最小二乘法

想要学习自适应控制的话,需要先学习系统辨识,系统辨识中比较常见的是最小二乘法,因此后续会先介绍最小二乘法,再去完成自适应控制假设一个单输入单输出的系统如下:其离散传递函数为:将传递函数写成差分方程:则:上式是一组输入与输出的关系,扩展到N组输入输出,则矩阵变为:小知识:矩阵的转置乘以矩阵本身即为最小二乘法最小二乘法归根结底是时域的辨识方法,当输入信号频率增高时,在高频段,最小二乘法的辨识结果往往是错误的,但在低频段,辨识结果还是可靠的。根据理论实际进行Matlab编程:假定我们的传递函数Z变换之后为:

2022-06-18 12:06:50 1544

原创 【控制原理】使用C语言模拟simulink算法仿真

在上几篇文章中建立了ADRC算法的仿真,后续肯定是要在实物上进行验证,在编写C代码的过程中突发奇想,如果我可以用C语言来模拟simulink的传递函数,不就可以验证代码的准确性了,相当于不用在实物上实际测试就可以检查算法代码的正确性。说干就干,直接开撸验证。首先必然是需要先将算法代码给编写好,之后就可以模拟simulink中的积分环节。假设我们的控制对象为:G = 1 / (s + 0.5),那么我们就可以根据此传递函数转化为微分方程来进行C代码的编写。G = 1 / (s + 0.5) ==&gt

2022-05-25 00:43:16 1893 5

原创 【ADRC】自抗扰控制

在根据前面四篇文章的自抗扰控制各个功能部分的分解介绍以及对于PID算法原理的分析之后,具体可以查看我的主页。之后我们可以画出自抗扰控制的框图,并作出自抗扰的仿真了。自抗扰的组成部分ADRC说得更直白一些,就是PID算法的改进版本,它的许多模块都是针对PID算法的一些缺点来进行的改进。1.对于阶跃响应,或者说初始误差较大时,PID容易难以兼顾快速性与超调之间的矛盾,或者说调试参数需要耗费非常多的时间,因此ADRC引入了跟踪微分器来输出一个过渡信号来跟踪目标信号,避免初始误差大的情况;2.对

2022-05-17 11:34:16 8999 10

原创 【ADRC】根据ADRC的思想改进PID

根据前面两篇关于ADRC的文章以及PID原理的文章,我们可以利用ADRC的思想来对PID算法做一些改进来看看效果,可以将改进的PID称之为非线性PID。主要可以利用跟踪微分器,针对PID的两个缺陷来进行改进:即当初始误差较大时,PID算法容易产生超调与快速性之间的矛盾,可以使用跟踪微分器来对目标阶跃信号进行缓冲过渡;另外微分信号在实际中难以获得可靠的信号,因此也可以通过跟踪微分器产生目标信号与实际状态的微分信号来对PID算法进行改进。改进的话,可以按照跟踪微分器的思想,去给初步的误差信号一个过渡

2022-05-15 13:24:28 2443 5

原创 【ADRC】扩张状态观测器(ESO)

扩展状态观测器是自抗扰控制中非常重要的一个环节,在我学习这部分内容后,在写本篇文章时,大致可以按照三个步骤来做实验,推导,由这三个步骤来由浅入深地去理解扩张状态观测器(ESO),即:线性状态观测器,非线性状态观测器,扩张状态观测器。前面这两个名称是我为了区分自己起的,不一定是专业术语,不过可以跟着步骤一起来看一下。线性状态观测器这类状态观测器可以称之为最基本的状态观测器,推导过程可以不用赘述,可以查看我之前的相关文章。大致的含义就是我们知道系统的模型是怎样的,系统状态的各个参数我们都可以获取,这种情

2022-05-12 23:46:59 16228 21

原创 【ADRC】跟踪微分器

在上一篇文章中,分析了PID算法的基本数学原理,从PID算法的原理与实际应用,是可以看出其PID的优点与缺点的,ADRC算法(自抗扰控制)也可以说是针对PID算法的一些缺点,或者说工程中难以实现的点做的一个改进的算法。因此后续我会将ADRC的各个部分分别介绍与分析,本节即从最先出现的比较重要的环节---跟踪微分器开始。PID的缺点在开始学习跟踪微分器之前,有必要简要的介绍一下PID算法的主要缺点:1.从PID的原理可以看出PID的稳定裕度是不小的,但其动态性能的裕度并不大。也就是说,如果被控对象

2022-05-08 22:44:45 9235 11

原创 【控制原理】解析PID如何使系统稳定,PID为何应用广泛

最近在学习自抗扰控制,学习自抗扰的时候,就不得不先复习一下PID,并进行对比,在重新学习PID的时候,就不能仅仅停留于PID是如何调试的,PID各个参数怎么用。应该更深一层,深入到控制理论中,确实对我帮助较大,大致能够解释PID如何使系统稳定,并且从算法原理的角度解释PID为何应用广泛。下面是我个人的一些理解与笔记:比例环节假设被控对象是一个一阶惯性系统,其传递函数可以表示为:G = 1 / (s + a)转换为状态方程为:假设我们的控制目标记作v,则纯比例环节的话,框图可以简化为以

2022-04-24 19:28:09 4999 1

原创 【MPC】模型预测控制原理推导与实验

模型预测控制在实际的应用中还是非常广泛的,因此后续想要多花一些时间去学习这个算法,在实际学习,找资料的过程中,也是重点学习了DR_CAN的视频,这个博主我也是经常关注的,大部分的视频都看了几遍,可以推荐一下:https://space.bilibili.com/230105574/?spm_id_from=333.999.0.0MPC了解在我的理解看来,MPC大概的思想就是在最优控制的基础上叠加了一下预测控制,也可以叫做滚动优化的过程,即预测未来几步的系统状态,根据未来的预测状态来进行最优控制量

2022-04-14 15:16:00 2198 1

单片机计时器

单片机计时器,时分秒计时,锁存器控制数码管6个数码管显示,程序工程+protues仿真

2019-05-05

单片机DS18B20

51单片机DS18B20,程序工程+protues仿真,1602显示温度

2019-05-05

单片机使用PCF进行AD采值并使用MAX232双机通信,程序加仿真

使用两块单片机,A单片机使用PCF进行AD采值(IIC通信),使用MAX232与B单片机进行通信,B单片机接收数据,并用LCD1602显示出来,程序+仿真

2018-07-30

opencv2.4.9实现简易人脸美颜

使用opencv实现简易人脸美颜程序,压缩包内附带运行结果效果图。程序可做学习参考。

2018-05-09

使用AndroidStudio开发简易进制转换计算器

使用AndroidStudio开发简易进制转换计算器,内含工程文件以及最终在手机上的效果图

2018-05-01

简易波形发生器

压缩包内包含51程序文件,protues仿真文件,简易波形发生器,可发生正弦波,三角波,矩形波

2018-03-13

单片机超声波测距

压缩包内包含程序工程,实物图,使用1602显示超声波测距

2018-03-13

Matlab实现感知哈希算法

参考网上博客的感知哈希算法的理论知识,实现基本的感知哈希算法,内有几张图片用来测试,程序可参考。

2017-11-12

Android Studio使用opencv打开摄像头.java以及.xml

本资源只包含两个重要文件,活动文件与界面文件,包含使用opencv打开摄像头部分,而且解决使用opencv打开摄像头会旋转90度的问题,解决办法仅供参考。

2017-05-14

16*16点阵汉字滚动显示C51程序,仿真,protues16*16点阵元件库,以及中英文取模软件

16*16点阵汉字滚动显示C51程序,protues仿真,protues16*16点阵元件库,以及中英文取模软件一起打包,可用作学习用,protues没有16*16点阵,资源内包含16*16点阵元件库,以及加入protues的方法描述

2017-04-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除