STM32编码器模式的测试例程,代码中采用TIM2定时器的编码器模式,在主程序中利用延时函数监测单位时间内的脉冲数,并根据脉冲数计算速度。
程序中不包含电机输出控制和PID调速。
2024/6/10 16:25:18 316KB STM32 encoder 编码器
1
收到一些国内外朋友的来信,咨询关于容积卡尔曼滤波的问题(CKF),大家比较疑惑的应该就是generator或G-orbit的概念。
考虑到工作以后,重心必然转移,不可能再像现在这样详细的回答所有人的问题,更不可能再帮大家改论文、写(或改)代码了,请各位谅解!在此,上传一个CKF和五阶CKF用于目标跟踪的示例代码,代码中包含详细的注释,希望对大家以后的学习和研究有所帮助!此代码利用C++对五阶CKF的第二G-轨迹进行了封装(Perms.exe),能理解最好,如果无法理解,也无须深究其具体构造方法!可执行文件底层是用字符串+递归算法实现的,理论上可以应用于任意维模型。
但考虑到递归算法可能存在的栈溢出,重复压栈出栈带来的时间消耗等问题,我们利用矩阵的稀疏性和群的完全对称性,并通过分次调用,来尽可能减少栈的深度,提高计算速度。
容积点一次生成后,可以一直使用,通过对50维G-轨迹的生成速度(CoreT6600@2.2GHz)进行测试,包含数据读写在内的速度约为1.5秒,速度尚可。
而目前为止,本人尚未遇到达到甚至超过50维的系统,因此,暂时不作算法层面的优化。
注意:Perms.exe可以用于任意维模型,将可执行文件复制至工作目录下,调用时选择N/n,并输入你的模型维数,即可生成所需的第二G-轨迹。
如果无法理解相关的概念,请参考示例代码,并记住如何使用即可~~~相关理论基础及所用模型,请参考以下文献:References(youmayciteoneofthearticlesinyourpaper):[1]X.C.Zhang,C.J.Guo,"CubatureKalmanfilters:Derivationandextension,"ChinsesPhysicsB,vol.22,no.12,128401,DOI:10.1088/1674-1056/22/12/128401[2]X.C.Zhang,Y.L.Teng,"AnewderivationofthecubatureKalmanfilters,"AsianJournalofControl,DOI:10.1002/asjc.926[3]X.C.Zhang,"Cubatureinformationfiltersusinghigh-degreeandembeddedcubaturerules,"Circuits,Systems,andSignalProcessing,vol.33,no.6,pp.1799-1818,DOI:10.1007/s00034-013-9730-0
2024/5/26 2:39:13 239KB CKF 五阶CKF 目标跟踪
1
基于C语言的FFT快速傅里叶变换算法实现,计算速度很快,8388608个序列点数的运行时间为9.719000s
2024/5/21 10:12:23 3KB FFT C
1
A、方法:   连续取N个采样值进行算术平均运算      N值较大时:信号平滑度较高,但灵敏度较低      N值较小时:信号平滑度较低,但灵敏度较高      N值的选取:一般流量,N=12;
压力:N=4B、优点:   适用于对一般具有随机干扰的信号进行滤波   这样信号的特点是有一个平均值,信号在某一数值范围附近上下波动C、缺点:   对于测量速度较慢或要求数据计算速度较快的实时控制不适用   比较浪费RAM
2024/5/1 15:58:52 453KB PLC程序
1
惯性导航解算算法实现,根据加速度计,陀螺仪的数据来实时计算速度位置姿态
2024/3/15 10:56:58 5.1MB 惯导 实验
1
猜数字  猜数字  猜数字可以算是一种益智类小游戏,一般两个人玩,也可以由一个人和电脑玩,可以在纸上、在网上都可以玩。
这种游戏规则简单,但可以考验人的严谨和耐心。
  目录  1规则  1.1次数限制  1.2含重复数字的猜数字  2解法  2.1计算机解  2.2推理解  2.3代入解  2.4其他  3参看  规则  这个游戏的规则比较简单,一般两个人玩,一方出数字,一方猜。
出数字的人要想好一个没有重复数字的4位数,不能让猜得人知道。
猜的人就可以开始猜。
每猜一个数字,出数者就要根据这个数字给出几A几B,其中A前面的数字表示位置正确的数的个数,而B前的数字表示数字正确而位置不对的数的个数。
  如正确答案为5234,而猜的人猜5346,则是1A2B,其中有一个5的位置对了,记为1A,而3和4这两个数字对了,而位置没对,因此记为2B,合起来就是1A2B。
  接着猜的人再根据出题者的几A几B继续猜,直到猜中为止。
  次数限制  有的时候,这个游戏有猜测次数上的限制。
根据计算机测算,这个游戏,如果以最严谨的计算,任何数字可以在7次之内猜出。
而有些地方把次数限制为6次或更少,则会导致有些数可能猜不出来。
而有些地方考虑到人的逻辑思维难以达到计算机的那么严谨,故设置为8次甚至10次。
也有的没有次数上的限制。
  含重复数字的猜数字  有一种使用范围比较狭窄的猜数字,是允许重复数字存在的猜数字,但由于其规则较复杂,故没有得到广泛的推广。
其规则如下:  除了上面的规则外,如果有出现重复的数字,则重复的数字每个也只能算一次,且以最优的结果为准,  如正确答案为5543,猜的人猜5255,则在这里不能认为猜测的第一个5对正确答案第二个,根据最优结果为准的原理和每个数字只能有一次的规则,两个比较后应该为1A1B,第一个5位子正确,记为1A;
猜测数字中的第三个5或第四个5和答案的第二个5匹配,只能记为1B。
当然,如果有猜5267中的第一个5不能与答案中的第二个5匹配,因此只能记作1A0B。
  解法  对于不同的人,常常会用到不同的解法  计算机解  通常采用的计算机解是通过排除法,即遍历所有可能的数,将不符合要求的数剃掉。
  下面是一个计算机处理的例子:  for(inti=0;i<Array.Count;i++){if(Array与当前输出数字的比较!=用户输入的与正确答案对比的结果){Array.Remove(i);i--;}}    这个代码采用C#的语法,其中Array表示所有可能的数字的集合。
这个例子为了方便说明,结合了语言的描述。
  这样的方法充分利用了计算机计算速度快的优势,迅速排出不符合要求的数。
通常第一次猜测的时间(有的引擎为第二次猜测)会在10秒左右,而随着猜测次数的不断增加,猜测的时间会越来越短,最后几乎不需要时间,这是由于集合中的数越来越少,排除需要的时间也随之减少。
  推理解  计算机解释根据这种方法推广的。
这种解法的中心思想是假设猜的这个数字是正确答案,即如果它为正确答案,那么这个数应该符合已经猜测的数及其结果。
如已经有  12340A0B  那么下一步就不能猜含有1234中任一数字的数,因为如果正确答案含1234中任一,结果就不可能为0A0B。
  这种解法对猜者要求较高,通常,可能会被定式思维所干扰,导致难以猜出。
  基于这个解法,根据个人思维风格和起始数字选择的不同,以及对出题者出数风格的猜测,有时可以把猜测次数控制在5步内,但不总能在5步内猜出。
  使用这种解法需要考虑的时间很久,和计算机解正好相反,人使用这种方法,通常随着猜测次数的增加,需要考虑的东西不断增多,反而考虑的时间会变得越来越长。
  代入解  还有一种方法,在人的猜测中很常用,即将推理出不可能含有的数字,代入,察看那些数字是有的。
  但这种方法其猜测次数难以确定,且通常的猜测次数比推理解多。
  其他  可能还有其他的方法。
2024/3/11 20:56:10 20KB 猜数字游戏 C# GuessNumber
1
采用FFT方式计算二维矩形阵列的方向图,与采用求和的方式相比,计算速度成倍提高。
1
目前社区发现算法中计算速度最快的算法,由VincentD.Blondel等人在2008年提出,基于modularityoptimization启发式算法,代码可直接使用,在VincentD.Blondel个人官网上下载的
2023/12/19 2:14:24 31KB community detection
1
python代码的天牛须算法,天牛须算法是最近几年提出的优化算法,算法无需多个种群,因此计算速度快,
2023/12/1 11:57:33 1KB py
1
用均值漂移算法实现目标跟踪,均值漂移算法是一种基于核函数估计的无参数算法,它无需估计整个区间的概率密度也无需知道区间内样本的分布情况,由于其具有较低的计算量,且计算速度快,抗干扰能力强在解决计算机视觉领域尤其是目标跟踪方面表现出了良好的鲁棒性和实时性。
2023/11/15 6:17:54 8.86MB 均值漂移 目标跟踪
1
共 35 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡