- 博客(10)
- 资源 (33)
- 收藏
- 关注
原创 Matlab 二阶Kalman
Second-Order-Kalman拿垂直速度来说事情。还是那次炸机日志。垂直速度和垂直高度Mission Planner中的数据如下:一、由速度来估算位置由速度建立模型得到高度,大概是下面这个样子,只有A阵没有B阵也没有噪声:写个获取数据函数:function h = GetVerticalVel()persistent VerticalVel k Initif isempty(Init) load VerticalVel k = 1; Init = 1;
2020-07-20 21:48:25 1106
原创 Matlab 一阶低通滤波/一阶IIR
LPF一阶低通滤波同样拿那个炸机气压计日志分析,可以更好对比新建变量,把高度存进去BaroAlt.mat写获取高度值函数写LPF函数function output = LPF(x)persistent lastx Initif isempty(Init) lastx = x; Init = 1;endalpha = 0.9;output = alpha*lastx + (1 - alpha)*x;lastx = output;写个调用脚本RunLPF.m
2020-07-18 23:26:59 2921
原创 Matlab 一阶Kalman
First-order Kalman一阶卡尔曼同样拿那个炸机的气压计来分析新建变量,把高度存进去https://gitlab.com/gkbytes/matlabfiltercoder/-/blob/master/DataBase/BaroAlt.mat写获取高度值函数function h = GetAlt()persistent BaroAlt % BaroAlt.matpersistent k Initif isempty(Init) load BaroAlt
2020-07-18 23:07:20 484
原创 Matlab 滑动窗口平均滤波
MAF滑动窗口平均滤波拿一个撞线炸机的气压计高度来分析下。新建气压高度变量:BaroAlt.mat写一个获取气压数据的函数:function h = GetAlt()persistent BaroAlt % BaroAlt.matpersistent k Initif isempty(Init) load BaroAlt k = 1; Init = 1;endh = BaroAlt(k);k = k + 1;写滑动窗口平均滤波函数:fu
2020-07-17 21:12:14 5938
原创 06_FreeRTOS队列(结构体队列)
06_FreeRTOS队列(结构体队列)如果要发送不同的数据类型,则必须使用结构体队列。xQueueHandle St_Queue_Handler;定义结构体:typedef struct { char *str; int counter; uint16_t large_value;} my_struct;创造队列: /***** create QUEUE *****/ osMessageQDef(Queue01, 1, my_struct); Queue01Handle
2020-07-08 22:41:39 1759 7
原创 05_FreeRTOS 队列(简单队列)
05_FreeRTOS 队列(简单队列)介绍如何使用Queue在任务之间进行通信。下面是队列如何工作的流程:队列是任务之间发送和接收数据的最简单方法。首先,我们将使用简单队列,其中队列中的所有元素都是相同的数据类型,然后我们将使用结构化队列,其中数据类型可以不同。简单队列在一个简单的队列中,所有元素都是同一类型。队列由其处理程序识别,因此我们首先需要为该队列创建一个处理程序:osMessageQId Queue01Handle;接下来,在main函数内部,我们将创建一个Queue,该队列可以
2020-07-08 22:41:29 865
原创 04_FreeRTOS 计数信号量
04_FreeRTOS 使用计数信号量本文将介绍:a. 使用CMSIS API ,介绍FreeRTOS中计数信号量b. 不使用CMSIS API,直接使用FreeRTOS函数简介计数信号量可用于控制对资源的访问。要获得对资源的控制,任务必须首先获得信号量。因此减少了信号量计数值。当计数值达到零时,将没有可用资源。当任务使用资源完成时,它将“give”信号量,从而增加信号量计数值。设置部分CubeMX中启用计数信号量:FreeRTOS中计数信号量3.1 使用CMSIS API
2020-07-08 22:41:19 265
原创 03_FreeRTOS 二进制信号量
03_FreeRTOS 使用二进制信号量本文介绍:二进制信号量的使用方法简介信号量Binary Semaphore之所以称为Binary信号量,是因为它存在(‘1’)或不存在(‘0’)。其中没有第三个条件。因此,任务要么具有信号量,要么根本没有。对于Task,我们可以创建一个条件,使其必须具有信号量才能执行自身。因此,如果Task没有信号量,则它别无选择,只能等待当前具有信号量的Task释放它。假设关键部分正在运行“低优先级任务”。高优先级任务可以在任何时间抢占低优先级任务。但是,如果低优先
2020-07-08 22:41:08 845 1
原创 02_FreeRTOS 任务管理
02_FreeRTOS 任务管理本文将介绍:a. 创建任务b. 任务执行c. 挂起任务和恢复任务d. 在一定状态停止任务一段时间附录:如何在STM32CubeIDE中加入printf打印解决STM32CubeIDE 用串口printf 进入hardfault配置STM32CubeIDE,把vTaskDelayUntil 设置为Enabled创建任务分三部:2.1 创建任务ID2.2 使用osThreadDef定义线程2.3 创建线程并将ID分配给任务处理程序。参照01
2020-07-08 22:40:53 386
原创 01_FreeRTOS 任务优先级
FreeRTOS 任务优先级RTOS即为操作系统。主要目的是使我们可以同时使用多个任务。本文将介绍:a. 使用CubeMX 设置的免费RTOS。b. 使用RTOS的好处。c. 在没有CubeMX情况下创建任务。d. 使用优先级来解决一些常见的问题设置CubeMX1.1 由于FreeRTOS v1大多数STM32设备都支持,故选择CMSIS_V1。1.2 转到Tasks and Queues, 注意Task name、priority和entry function即可。1.3 新建另外
2020-07-08 22:40:40 2146 1
GNSS 接收机锁相环最佳环路带宽的选取
2020-12-13
06_FreeRTOS_Structure_Queue.rar
2020-07-08
05_FreeRTOS_Simple_Queue.rar
2020-07-08
04_FreeRTOS_Counting_Semaphore.rar
2020-07-07
03_FreeRTOS_Bin_Semaphore.rar
2020-07-04
02_FreeRTOS_TaskMangement.rar
2020-07-03
01_FreeRTOS_TaskPriority.rar
2020-07-03
GitKraken-v6.5.1.rpm
2020-05-06
GitKraken-v6.5.1.deb
2020-05-06
driver.msi
2020-01-07
2016年无人机和机器人传感器市场报告
2018-04-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人