自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 1_控制系统总体结构

黑色块为参数、黄色块为计算模块。

2023-12-05 21:42:59 107

原创 FreeRtos学习笔记------------延时函数

FreeRtos的延时函数一、绝对模式vTaskDelayUntil() 绝对模式延时函数保证延时时间严格但中断会打断函数导致延时时间变化。二、相对模式vTaskDelay() 相对模式延时函数使用前将INCLUDE_vTaskDelay 置 1相对模式的延时时间不精确,根据情况不同延时时间会变化。...

2021-02-18 16:05:12 398

原创 如何快速理解模糊PID---(二)

模糊控制规则上文只介绍了误差这一个输入量,我们可以用相同的方法对误差的变化率这一输入量进行模糊化。模糊控制规则主要有两种,Mamdini和T-S型模糊控制器这里只介绍Mamdini型模糊控制器Mamdini型模糊控制器就是一堆“如果 x是U1 y是U2 那么 z是W1”的语句组成先上图设误差为E,误差的变化率为EC,而输出量我们也用上文的方法将他划分出六个区域,并规定出它的模糊论域(NB,NM,NS,Z0,PS,PM,PB)例如我们规定输出也是介于 (- 90 , + 90) 之间的

2021-02-09 14:46:18 6187 6

原创 如何快速理解模糊PID算法 ---(一)

一、前言想通过此文章够快速理解模糊PID的前提条件是:已经了解PID控制算法,并且利用该算法控制过一些玩意。这篇文章是我参考了四篇学位论文之后写下的,如果有错误,恳请各位大佬批评指正,后面我也会提到这几篇论文关于模糊PID的不足(不全面)的地方。二、传统PID的缺点以及为什么我们要使用模糊PID使用过PID的同学都知道,PID控制器是一个简单但是控制效果非常好的算法。PID算法有很多种类,包括位置式,增量式,单级,串级等等。如果参数整定的好,那么在一定的情况下,PID控制器是可以做到非常不错的

2021-02-09 04:26:02 12990 3

原创 FreeRtos学习笔记-------------------串口控制CAN控制的电机

一、实现的功能能够接收串口输入的数据数据范围设定为 0 — 65535,并设置超出范围设置错误提示利用freertos任务向电机发送数据利用串口控制电机位置二、功能实现省略基础配置首先构建电机增量式位置环float PID_Increase(Error sptr, PID_increase pid, float NowPlace, float Point){ float iError,//当前误差 Increase; //最后得出的实际增量 iError = Po

2021-02-07 00:10:03 2400 3

原创 STM32串口收发

一、与串口收发以及中断相关的函数1 void USART_Init()串口初始化2 void USART_Cmd()使能串口3 void USART_ITConfig()使能中断4 void USART_SendData()发送数据5 uint16_tUSART_ReceiveData();接收数据6 FlagStatus USART_GetFlagStatus()获取状态标志位7 void USART_ClearFlag()清除状态标志位8 ITStatus USART_Ge

2021-02-06 19:09:26 779 1

原创 FreeRtos学习笔记----------------------内核控制函数

内核控制函数临界段代码保护临界段是指必须完整运行不能被打断的代码FreeRtos进入临界段之后需要关闭中断,处理完临界段之后再打开中断临界段代码保护函数如下在中断中void Task_test( void * pvParameters){ u16 x; while(1) { x = taskENTER_CRITICAL_FROM_ISR(); //进入临界保护区 vTaskDelay(3000); vTaskGetRunTimeStats(Infor

2021-02-06 16:45:36 87

原创 FreeRtos学习笔记-----------------任务状态等参数的查询

API函数展示实验实验内容:统计各个任务的运行时间和CPU使用时间占比等信息所用API函数:void vTaskGetRunTimeStats( char * pcWriteBuffer ) PRIVILEGED_FUNCTION; /* pcWriteBuffer表示存储数据的内存 */首先,在FreeRtosConfig.h中 更改如下两个宏#define configGENERATE_RUN_TIME_STATS 1...

2021-02-06 00:24:39 252

原创 Python学习笔记----------------python的数据类型

一、python的数据类型整形浮点型布尔类型e记类型字符串二、类型转换转化成浮点型 float()转化成整形 int()转化成字符串 str()1、int()浮点型转化成整形,python直接将小数部分砍掉2、str()将其他数据类型的数据变成字符串类型的数据二、type()和isinstance()函数type()函数用于获取某一变量的数据类型isinstance()有两个参数,第一个是变量,第二个是给定的数据类型isinstance函数用来判断变量的类型

2021-02-05 21:23:15 107

原创 Python学习笔记-----------基本函数

一、input,print函数和变量变量不需要定义temp = input("请输入")test = int(temp)print(test)运行结果二、if函数temp = input("请输入")test = int(temp)if test>5: print("比五大")else: print("比五小")运行结果注意事项:if后空格然后写条件,条件后跟冒号,冒号后按回车自动在下一行缩进。若条件为真则执行缩进后的语句,若为假则执行else:下一行缩进后的语

2021-02-05 21:06:11 142

原创 FreeRtos学习笔记----------列表和列表项

列表列表是把列表项全部穿起来,与链表相似,是用来跟踪freertos中的任务,与列表相关的函数都在list.c和list.h列表的结构体typedef struct xLIST{ listFIRST_LIST_INTEGRITY_CHECK_VALUE //检查列表完整性 configLIST_VOLATILE UBaseType_t uxNumberOfItems; //表示列表项的数量 ListItem_t * configLIST_VOLATILE pxIndex;

2021-02-05 02:29:43 119

原创 C语言------------链表

静态链表链表概念我理解的就是几个结构体变量串在一起的链式结构静态链表创建 图片借用b站#include "stdio.h"#include "stdlib.h"struct Node{ int number; struct Node *next;};void main(){ struct Node Node1 = {1,NULL}; struct Node Node2 = {1,NULL}; struct Node Node3 = {1,NULL}; Node1.ne

2021-02-05 01:46:36 86

原创 FreeRtos学习笔记---------任务的挂起与恢复

任务的挂起与恢复一、任务挂起和恢复的含义挂起意思其实就是让任务暂停,与删除任务相似,但是任务的堆栈和内存都没有被删除。恢复顾名思义就是恢复被挂起的任务。二、任务挂起与恢复使用的API函数vTasksuspend() //挂起函数vTaksResume() //恢复任务的运行vTaskResumeFromISR() //中断服务函数中恢复任务的运行其中 vTaskResumeFromISR()有返回值返回值含义pdTRUE被

2021-01-26 00:10:08 333 1

原创 FreeRtos学习笔记---------------创建任务(静态方法)

使用静态方法创建任务一、打开configSUPPORT_STATIC_ALLOCATION#define configSUPPORT_STATIC_ALLOCATION 1之后需要配置定时器和空闲任务所需内存// 空闲任务所需堆栈static StackType_t IdleTaskStack[configMINIMAL_STACK_SIZE];static StaticTask_t IdleTaskTCB;//定时器任务所需堆栈static StackType_t

2021-01-23 16:27:01 816 3

原创 电脑电源

电脑电源一、电脑电源分类1.AT电源AT电源的功率一般都在150—250W之间,由4路输出(±5V,±12v),另外向主板提供一个PG(接地)信号。输出线为两个6芯插座和几个4芯插头,其中两个6芯插座为主板提供电力。AT电源采用切断交流电网的方式关机,不能实现软件开关机,这也是很多电脑用户不满的地方所在。AT电源在市场上已不多见,在安装AT电源到主板的电源插座上时,一定要分清两个插头的方向,两个插头带黑线的一边要紧挨靠拢,然后再插入主板插座中,不然插反了就会烧坏主板,如图10一l所示。2.ATX电源

2021-01-22 00:31:48 722

原创 FreeRtos学习笔记-------------用动态方法创建和删除任务

FreeRtos动态方法创建删除任务利用函数xTaskCreate/*任务创建函数*/xTaskCreate( TaskFunction_t pxTaskCode, const char * const pcName, /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ const configSTACK_DE

2021-01-21 18:11:05 102

原创 FreeRtos学习笔记---------------初识API

FreeRtos学习笔记一 API函数API函数xTaskCreate函数参数xTaskCreateStatic函数参数xTaskDelete参数API函数freertos的任务创建与删除本质上是API函数的调用函数名称功能xTaskCreate()使用动态的方法创建一个任务xTaskCreateStatic()使用静态的方法创建一个任务xTaskCreateRestricted()创建一个使用MPU进行限制的任务,相关内存使用动态分配xTaskDelete

2021-01-19 18:23:29 108

原创 【C语言基础】利用复合梯形求积公式计算定积分

【C语言基础】利用复合梯形求积公式计算定积分一、复合梯形求积公式这是数值分析中一种求解定积分的近似方法。适用于被积函数的原函数不能用初等函数表示的情况。基本思路将被积函数 f(x)与x轴围成的区域分成n个梯形,把n个梯形面积求和得到积分的近似值。若精度不满足需要,则可以将每个区间再等分一次,得到2n+1个等分区间,然后再求和,直到精度满足需要。公式∫abf(x)dx≈h2[f(a)+f...

2020-04-03 01:22:38 8054

原创 利用递归方法解决汉诺塔问题

利用递归方法解决汉诺塔(Hanoi)问题一、汉诺塔问题汉诺塔问题是一个经典的古典数学问题,它由三根柱子和若干个圆盘组成。游戏规则如下:1.每次只能移动一个圆盘2.任何时候必须保证大圆盘在下,小圆盘在上3.目的是在1,2条件下将一根柱子上所有圆盘转移到另一根柱子上。二、递归算法想要利用递归解决这个问题,首先我们要确定几个概念:1、初始柱A 也就是游戏开始时所有圆盘所在的柱子。...

2020-03-20 02:24:47 2359

空空如也

空空如也

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

TA关注的人

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