自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

找不到服务器的博客

飞控 控制 仿真 C/C++ Python

  • 博客(110)
  • 资源 (22)
  • 收藏
  • 关注

转载 LATEX中优化问题如何排列 max—s.t. 格式

做优化的同学可能会碰到排列形如的格式,既要要求max和s.t.对齐,又要令约束式的=>等符号对齐,下面几个代码以供参考。

2024-03-16 17:48:26 444

转载 什么是P问题、NP问题和NPC问题

  这或许是众多OIer最大的误区之一。  你会经常看到网上出现“这怎么做,这不是NP问题吗”、“这个只有搜了,这已经被证明是NP问题了”之类的话。你要知道,大多数人此时所说的NP问题其实都是指的NPC问题。他们没有搞清楚NP问题和NPC问题的概念。NP问题并不是那种“只有搜才行”的问题,NPC问题才是。好,行了,基本上这个误解已经被澄清了。下面的内容都是在讲什么是P问题,什么是NP问题,什么是NPC问题,你如果不是很感兴趣就可以不看了。接下来你可以看到,把NP问题当成是 NPC问题是一个多大的错误。 

2024-02-20 20:15:10 41

原创 欧拉角速度推导与不建议使用欧拉角的原因

欧拉角速度指欧拉角对时间的微分与角速度的关系,用于刚体姿态运动学建模,本文从一种复杂但严谨(应该)的角度推导这一关系,并解释为什么不建议使用欧拉角来描述姿态。

2024-01-23 00:16:36 1024

原创 证明四元数乘法与旋转矩阵乘法等价

刚体四元数姿态控制 一文中没有证明的公式在这篇文章中证明。首先找几个数测试是否等价。下面的代码中,为了测试准确,四元数还要保证归一化,不如事先拿几个欧拉角转成四元数。然后测试一下 sympy 计算四元数转旋转矩阵的公式是否正确。最后正式验证等价性。输出结果如下,公式特别复杂,两个矩阵的误差为0。

2023-12-16 22:42:19 1087

原创 刚体四元数姿态控制

首先给出刚体被控对象的微分方程,然后对四元数微分方程线性化求出合适的PD控制参数,然后详细分析了误差四元数的概念和性质,并提出四元数和旋转矩阵的等价性,然后简要介绍了非对角转动惯量矩阵的一些特点,最后分别仿真验证了调节问题、跟踪问题和误差四元数,附录中给出了使用拉塞尔不变性原理证明PD控制稳定性的过程。

2023-11-24 09:27:06 1349

原创 攻角、侧滑角、倾侧角与欧拉角的关系

欧拉角定义在地面坐标系上,气动角定义在航迹坐标系上。本文里当所有坐标系重合,欧拉角和气动角都是0°时,所有坐标系都是x轴朝前,y轴朝上,z轴朝右,但也有文献给出x轴朝前,z轴朝下,y轴朝右的定义;尽管坐标系的定义可以不一样,但欧拉角和气动角的定义不能因为坐标系定义的不同而变化。另一方面,侧滑角和和俯仰角都是向量和平面的夹角,而攻角和偏航角都有向量到平面的投影,只是向量和平面各不同。航迹系和速度系的x轴都朝向飞行器速度方向,两个系的y轴分别位于地面系的XOY平面内朝上和本体系的XOY平面内朝上,z轴都朝右。

2023-11-02 21:34:12 1815

原创 simucpp系列教程(7)坟墓

最近使用simucpp在做某预研航天项目中逐渐发现,simucpp没有明显优势,不如直接手撕ODE4,从代码量上来看两种方法其实差不多,而且simucpp更容易出现编程上的错误,比如空指针和参数配置等,而且运行速度肯定是直接用ODE4更快。我目前觉得只有在下面两种情况下使用simucpp有优势。

2023-10-28 22:38:40 271

原创 自用的四元数、欧拉角、旋转矩阵转换代码

【代码】自用的四元数、欧拉角、旋转矩阵转换代码。

2023-10-28 15:06:21 179

原创 连续离散混合系统控制与仿真

以二阶积分器串联型系统为例,分析了混杂系统的控制器参数设计方法,比较了控制器周期对控制效果的影响,仿真展示了简单混杂系统的良好控制效果,并与纯连续系统与纯离散系统对比,得出的结论是混杂系统的设计方法与纯连续/离散系统区别非常大。

2023-10-27 11:33:34 200

原创 向量形式四阶龙格库塔法的仿真细节

给出了四阶龙格库塔法(ODE4)的向量形式,推导了二阶积分器串联型系统的ODE4更新公式,解释了在使用ODE4仿真高阶系统和带外部输入系统时的各种注意事项,最后给出四阶龙格库塔法只能使用一次的重要结论。

2023-10-22 11:25:06 327

原创 角速度变化时四元数和旋转矩阵微分方程的证明

本文证明了在角速度向量不是常数时,四元数和旋转矩阵微分方程依然成立,成立的条件和性质等,并指出了大部分资料里给出的四元数微分方程中的一个错误,最后给出仿真验证。

2023-09-18 18:58:12 739 2

原创 线性系统使用PD控制的可控性

PD控制

2023-09-13 20:56:09 90

原创 [论文解读]二阶非线性不确定系统的PID控制器设计

PID controller design for second order nonlinear uncertain systems摘要 复现一下论文的推导过程,补充一些推导细节,证明PID可以控制满足一定条件的二阶非线性系统并全局稳定,最后跑个仿真。

2023-09-07 16:01:27 209

原创 刚体姿态动力学推导与进动现象仿真

摘要 首先推导角速度公式和角加速度公式,并举一个例子说明角速度公式的细节,然后从加速度公式出发推导转动惯量矩阵 J 和姿态动力学方程 Jw’=w×Jw,并解释为什么需要进行一次坐标变换。最后总结从力矩到姿态四元数的完整过程,并对无力矩输入时的进动现象进行仿真。

2023-09-05 15:52:39 424

原创 特征模型(2)简单二阶系统的证明

这是我在看书中的正式推导前自己的推导过程,只推导了二阶系统,比较简单,可以跳过本文直接看正式证明。正规的推导见 特征模型(3)证明全系数之和等于1。

2023-07-10 16:45:08 207 3

原创 特征模型(1)简介

(待补充。。。)

2023-07-07 18:52:24 236

原创 特征模型仿真例1:参数辨识

考虑被控对象Gss45s310s26s43s4​和特征模型ykϕTk−1θk其中ϕk−1θk​yk−1​yk−2​uk−1​Tf1​k​f2​k​g0​k​T​控制输入uuk10uk0.97uk−10.31uk10cos2πkT1uk10signcos2πkT))采样周期取Δt0.05。

2023-07-07 17:14:55 316

原创 强化学习复现笔记(3)Robbins-Monro算法证明

都没证完,感觉都有问题。

2023-06-22 11:09:44 810

翻译 [翻译]一种基于学习的脉冲机动轨道追逃博弈的高效算法

本文利用基于人工智能的方法全面研究了脉冲轨道追逃博弈(Orbital Pursuit-Evasion Games, OPEGs)的问题。首先,构建了追逐者和逃避者都通过施加脉冲速度增量来执行轨道机动的脉冲OPEG数学模型。其次,将脉冲OPEG问题转化为在终端时间方面具有最小-最大优化指数和机动性、总燃料消耗、任务时间等多重约束的双边优化问题。为了确定双方的最优脉冲动作,在多智能体强化学习框架中设计了一种PRD-MADDPG(预测-奖励-检测多智能体深度确定性策略梯度)算法。

2023-06-15 23:22:56 766 8

原创 强化学习复现笔记(2)策略迭代

上一节的压缩映射在实际迭代时可以分成两种方法,分别称作值迭代和策略迭代。本文用走迷宫的例子(将1维迷宫扩展到2维)讲这两种迭代。对应第一节参考链接[2]的前4章。

2023-06-14 11:01:58 682

原创 强化学习复现笔记(1)基本概念

一条线上包含起点和终点共有6个格子,起点在左终点在右。假设智能体已经学到了最优的策略,并且在每一步行动时,以 $0.9$ 的概率选择最优策略(也就是往右),以 $0.1$ 的概率选择随机策略。各个概念的定义见文末参考链接,本文举实际的数值例子帮助理解。

2023-05-26 18:42:37 1001

原创 Python通过SWIG调用C++时出现的ImportError问题解析

win10系统,编译器为mingw,按照教程封装C++的一个类并用python调用,一步步进行直到最后一步运行python代码时,在python代码中。

2023-05-10 11:19:55 640 1

原创 python多次调用exe文件运行不同的结果

有个C++项目是读取配置参数文件并打印对应的结果,后来需要多次修改配置文件并运行,于是想到写个python脚本执行这一过程。

2023-05-07 14:05:03 691

翻译 使用深度Q网络(Deep Q Network)学习控制倒立摆

我们将尝试使用Deep Q网络(通常称为DQN)来解决单摆向上的问题,该网络结合了Q学习(一种强化学习方法)和深度神经网络。{我完全不会日语,很多表达可能跟原文完全不一样。}

2023-05-05 23:14:50 280

原创 raylib一些示例代码

3D预览图视角:鼠标拖动,滚轮缩放。只能沿着中心点。第一视角:WSAD分别控制视角的前后左右移动,EQ分别控制上下移动,滚轮控制移动速度。

2023-04-30 22:37:43 333

原创 带遗忘因子的递推最小二乘法推导

首先,已知最小二乘法的解后,推导出解的递推形式;然后通过一个简单的公式y=x+w的形式引入遗忘因子,并改写成递推形式,最后将遗忘因子引入带递推的最小二乘法中。

2023-04-20 21:57:40 3113 2

原创 特征模型(3)证明全系数之和等于1

证明线性系统的特征模型的系数之和为1。

2023-04-04 11:06:00 423 2

原创 自用的四元数、欧拉角、旋转矩阵笔记

自用

2023-04-02 20:57:49 334

原创 非线性系统的反步法

  当被控对象含有未知参数时,通过设计李雅普诺夫函数使参数估计和被控对象的输出同时收敛。本文主要内容为,第一部分介绍使用李雅普诺夫法估计参数的基本原理,第二部分介绍参数不匹配情况下的反步法,第三部分对其中一个问题进行仿真。

2023-03-24 11:30:44 477

原创 非线性系统的反馈线性化

本文介绍仿射非线性系统的反馈线性化方法的基本原理和实现细节,介绍相对阶、李导数、微分同胚、最小相位、内部动态等名词解释,并举一个例子来说明线性化过程,最后展示仿真结果。

2023-03-21 20:45:31 928 7

原创 自用的矩阵运算库zhnmat使用说明

代码仓库安装教程建议参考(二)EGE安装与配置 -CSDN博客其它功能与MATLAB对应的初始化方法MATLAB 写法:zhnmat 写法:修改打印格式下面的代码可以将矩阵输出成可用于 markdown 或 LaTeX 的格式。

2023-03-03 09:57:35 183

翻译 多星分布式任务分配中的博弈自组织

针对多卫星系统的自组织任务分配,我们从博弈论的角度解决了这一问题,并通过博弈论中的学习提出了DT2A,其中每个卫星都被视为一个自主玩家,试图仅依靠本地信息来最大化自己的收益。遵循精彩的生活效用,我们将系统级目标分解为个体玩家的局部效用,并证明最终博弈是一个势博弈。为了以分布式方式导出接近最优的解,DT2A遵循同步迭代,其中每个卫星与邻居交换信息,并通过遵守有限贪婪和有限记忆的随机规则来更新其分配。

2023-03-01 11:27:09 493 7

原创 自用的姿态与轨道动力学笔记

由位置和速度向量计算远拱点。根据平近点角计算真近点角。已知初始位置和速度计算经过指定时间后的位置和速度。四元数/旋转矩阵/欧拉角。

2023-02-19 10:08:27 387

翻译 基于博弈学习的分布式卫星任务规划

Distributed Satellite Mission Planning via Learning in Games对地观测卫星群的任务规划是一个复杂的问题,它提出了重大的理论和技术挑战,尤其是在分布式环境中。为了实现仅依赖于局部信息的高效合作,我们将每个卫星视为一个理性参与者,将问题转化为一个网络化的势博弈,并提出了一种分布式协调和优化算法。通过每个玩家与邻居交互,并按照受限贪婪和基于记忆的规则调整局部规划,证明了稳定的纳什均衡以概率1出现。

2023-01-30 11:48:24 1192 3

原创 [论文复现]演化博弈方法用于多智能体系统最优资源分配

有6个个体分配2种资源

2022-12-31 13:17:42 1187

翻译 演化博弈方法用于多智能体系统最优资源分配

一群行为体在分布式环境中需要一组资源来完成任务,它们必须合作决定每个个体接受的资源数量来最大化系统性能。我们从演化博弈论的角度解决了这个问题,并提出了一种基于局部复制动态方程的完全分布式算法。通过使用最优性条件,我们证明了我们的算法在连通通信拓扑下的收敛性和最优性。一个示例说明了该方法在动态环境中的有效性。

2022-12-30 18:18:24 1254

原创 演化博弈、复制动态方程与仿真

关于演化博弈的相关推导和复制动态方程的引入过程,和鹰鸽博弈的仿真。

2022-12-29 23:20:15 6458

原创 水下潜航器的建模与控制

水下潜器模型,可能是潜艇或者鱼雷等对象。一个主推进螺旋桨,前后两对水平陀翼,后面一对垂直陀翼。潜器前进过程中,通过调节助推进螺旋桨推力,以及三对陀翼的角度变化,对潜器的五个自由度,X轴和Z轴方向的速度,以及垂直、滚动和俯仰方向角速度,进行控制,实现潜器的各种机动以及在运动过程中的姿态平稳。

2022-12-16 16:34:57 1973 2

原创 无量纲处理、量纲变换与实时仿真理论

分析描述系统动态变化的微分方程中时间的单位和仿真步长对仿真精度的影响。进行了两次仿真实验。第一个实验中,把时间单位由秒改成毫秒,步长仅在数值上缩小了1000倍,但总的仿真精度并没有减小;第二个实验中,时间单位不变,只把步长缩小了1000倍,虽然仿真步数多了1000倍,但仿真精度还是提升了。

2022-10-09 18:09:25 503

原创 raylib部分源代码功能解读

持续更新中,目前包括:延时函数与FPS显示,全屏显示

2022-08-20 10:23:29 905 3

刚体姿态动力学推导与进动现象仿真

刚体姿态动力学推导与进动现象仿真

2023-10-02

ADRC-vs-PID 韩京清老师97年在CSU做的第一个ADRC运动控制的实验

实验结果见 https://www.bilibili.com/video/BV1et41157tZ。压缩包里有simulink仿真文件和论文,出自adrc的QQ群,但群里的文件是个几百M的压缩包,这里把这个实验对应的仿真单独拿出来。

2023-08-26

简单的强化学习C++代码走直线

将原本的python代码改写成C++代码 https://www.bilibili.com/video/BV13W411Y75P?p=6

2023-03-28

Riccati Equations in Optimal Control Theory

最优控制理论中的Riccati方程。国外的一篇硕士论文,讲数值求解Riccati方程,最后有附matlab代码。

2022-02-09

pytorch实现lenet5

Pytorch 搭建的LeNet-5网络,使用Minist数据集,测试集准确率接近98.4%。文件内包含代码、Minist数据集和训练好的模型参数。

2020-08-14

常用初等函数的快速算法

以损失一部分精度为代价来节省代码量并提高运算速度,包括:正弦、余弦、反正切、全角度反正切、反正弦、反余弦、平方根、平方根倒数、自然指数、自然对数、数字低通滤波器等。

2020-06-07

c#实现井字棋小游戏

c# winform实现井字棋小游戏,可选择人机对战或双人对战,以及谁先谁后。博弈算法使用一层最小最大算法,可实现不输。

2020-05-11

MATLAB径向基函数神经网络

径向基函数神经网络进行异或分类,首先在4个象限随机生训练数据,然后进行FCM聚类,取4个隐层神经元代表分成4类,最后通过伪逆求出输出层神经元权重,输出通过0和1区分

2020-05-03

matlab模糊C均值聚类(FCM)

matlab实现模糊C均值聚类,附带包含600个2维数据的数据集,可视化展示结果。数据集有3类,分别分布在第一、二 三象限。

2020-04-28

c++实现简单hopfield神经网络

简单hopfield神经网络实现4个神经元组成的吸引子,W矩阵由(-1,1,1,-1)和(-1,1,-1,1)构造。

2020-03-31

C++实现简单BP神经网络

BP神经网络实现简单的异或二分类器,没有任何工具包,单隐层,2个隐层神经元。没有构建神经网络类,只有神经元结构体。

2020-03-24

差分进化算法与模式搜索法配合求函数最小值

用四次多项式拟合反正切函数,采用差分进化算法与模式搜索法配合求四次多项式的系数,使其在多个离散点上与被拟合的反正切函数误差最小。

2020-02-08

mpu6050加速度计六面校准MATLAB程序

包含主文件caliberate.m,代价函数Cost_Function.m和模式搜索函数Pattern_Search.m,思路是用最优化方法使三轴加速度计的测量值与实际值的误差最小。

2020-02-08

C语言最小二乘曲面拟合

北航数值分析第三次大作业,使用普通的多项式方法和正交基函数方法。求解非线性方程组使用梯度下降法,与曲面拟合完全独立。

2020-02-08

幂法求矩阵特征值与条件数C语言

北航数值分析第一次大作业,用幂法和反幂法求矩阵的特征值进而求出2范数条件数。上下边带压缩以提高运行速度,计算完所有矩阵的条件数耗时约12秒

2020-02-08

c++双人贪吃蛇小游戏

回合制游戏,双方轮流按键控制蛇的移动试图卡死对方并避免被对方卡死,双方同时按可加速,取消意外碰撞,只有卡死才能判负。使用EGE图形库xege.org。游戏演示:https://www.bilibili.com/video/BV1C7411e78w

2020-02-08

QR分解求矩阵特征值和特征向量

颜庆津版数值分析编程作业,C语言(少量C++语法)实现矩阵的QR分解法迭代求矩阵的全部复数格式特征值,先对矩阵进行拟上三角化再迭代,迭代求出全部特征值后使用列主元素高斯消元法求出所有实特征值对应的特征向量。

2019-11-04

MATLAB实现差分进化算法示例

用MATLAB程序实现差分进化算法,程序包含5个文件,分别为主程序、初始化种群、适应度函数(选择)、交叉、变异。程序示例为设计一阶控制器使离散传递函数(z-1)(z+0.3)/z(z-2)(z-0.5)稳定。

2019-10-09

C++二叉堆实现A*算法及方向优化

由两部分组成,my_map.cpp用OpenCV实现读取地图等图像处理操作,main.cpp实现A*算法。二叉堆为类,格子为结构体。生成结果后进行优化,使原本只能走8个方向的结果优化为任意角度和方向,也就是真正的全局最短路径。

2019-01-20

C++实现8方向A*算法

由两部分组成,my_map.cpp用OpenCV实现读取地图等图像处理操作,main.cpp实现A*算法,经测试500*500的有复杂障碍物的地图一般不超过10秒即可跑完

2019-01-06

MPU6050卡尔曼滤波解算姿态

由陀螺仪和加速度计解算欧拉角,自己根据Steven M.Kay的《统计信号处理基础》给出的公式编写的程序,矢量状态-标量观测。除卡尔曼滤波外还有陀螺仪和加速度计的数据校准程序。

2018-09-28

MPU6050用卡尔曼滤波解算姿态

由陀螺仪和加速度计解算欧拉角,自己根据Steven M.Kay的《统计信号处理基础》给出的公式编写的程序,矢量状态-标量观测。除卡尔曼滤波外还有陀螺仪和加速度计的数据校准程序。

2018-09-20

QPSK调制与解调的simulink仿真

用simulink搭出QPSK调制与解调的框图,在m文件中设置码元数量、载波频率、采样频率等参数,生成基带波形、调制波形、解调波形、基带和调制信号的功率谱密度、星座图等。

2018-09-20

STM32用DMA串口发送

简化正点原子的DMA发送程序,添加DMA发送中断,发送中断内更改引脚电平 简化正点原子的DMA发送程序,添加DMA发送中断,发送中断内更改引脚电平

2017-09-10

ADI参考电路合集 (第2册)

ADI参考电路的设计通常用作独立的解决方案,或者用于构建更为复杂的电路和子系统。ADI的应用专家构建并执行功能与性能测试,提供: 全面的文档 完整的设计和集成文件 经工厂测试的评估硬件

2017-08-20

空空如也

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

TA关注的人

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