自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (3)
  • 收藏
  • 关注

原创 u8,u16,u32,int数据类型介绍

u8是unsigned char类型,从其名称就可以看出u8占1个字节(因为1个字节是8位),所以它的范围是0~(2^8)-1。u16是unsigned short类型,从其名称就可以看出u8占2个字节,所以它的范围是0~(2^16)-1。u32是unsigned long类型,从其名称就可以看出u8占4个字节,所以它的范围是0~(2^32)-1。int是有符号整数类型,int占4个字节,它的范围是-(2^31)-1~(2 ^31)-1。

2023-05-16 15:38:17 11160 1

原创 I2C总线的通讯距离

I2C总线不适合远距离通信,尤其是使用线缆与接口器件进行通信时一般不选择 I2C。使用I2C总线都是在用一个开发板上或者距离比较近,如果是远距离通信,比如说超过2米,这个时候对硬件就有特殊的要求了。① 通信线缆小于0.2米,一般可以采用10K的上拉电阻,这个也是很多I2C芯片的说明书中推荐的上拉电阻。② 通信线缆在 0.2到2米之间,一般可以采用 4.7k 上拉电阻。③ 通信线缆在2米以上,一般可以采用 1~2.2 k上拉电阻。

2023-05-11 17:24:23 4171 1

原创 opc服务器与plc以及matlab通讯

打开桌面上的“Matlab”软件,在命令行窗口输入opctool并点击回车,点击弹出的窗口左上角的”File”>>”Open Session” ,选择存放程序的文件夹,找到目标文件,单击“打开”按钮。,打开桌面上的“S7 200 PC Access SMART”软件,点击左上角的“文件”,在下拉菜单中点击“打开”,选择目标文件单击“打开”按钮。点击菜单栏中的“PLC”,再点击工作栏中的“ PLC”,在弹出的对话框中点击“查找CPU“,待找到后点击“确定”。

2022-11-24 16:27:00 2366

原创 计算成像技术

计算成像是为了克服传统光电成像存在的固有问题而产生的,由于受到光学系统衍射极限、光学加工工艺、光在水等介质传播时散射的限制等,尤其是受到传统光电成像理论的限制,对于去运动模糊、全景深成像、穿透云雾、突破极远弱小目标极限探测等难以成像的问题理论上存在缺陷;同时,随着光电装备的飞速发展,对光电载荷的要求越来越高,作用距离与光学系统的焦距和口径有着直接的关系,这就导致光电成像系统的体积、重量、功耗和成本(SWaP, Size, Weight and Power)都制约着光学系统的发展。计算光学成像是集光学、信号处

2022-08-02 19:16:44 3552 1

原创 多光谱成像技术与应用

成像技术结合不同的光谱分光技术,形成了相应的成像光谱仪器,由于工作原理不同,各类仪器有结构差异,适用于不同的使用需要。多光谱、超光谱成像技术不同于传统的单一宽波段成像技术,而是将成像技术和光谱测量技术相结合,获取的信息不仅包括二维空间信息,还包含随波长分布的光谱辐射信息,形成所谓的“数据立方”。近年来,随着技术的发展,出现了一些原理新颖的红外成像光谱仪器,典型的有美国太平洋高级技术公司研制的利用单个透镜的轴向色差色散成像的成像光谱仪,以及美国固态科学公司研制的计算层析型超光谱成像光谱仪。

2022-08-02 19:12:45 1669

原创 太阳能小屋的设计

摘 要太阳能作为经济环保的能源之一,越来越受到人们的重视,太阳能小屋可实现节省用电支出和改善环境效益。文章针对陕西省西安市的地理位置和气象数据条件设计考虑到太阳光的直射、反射和散射等三种辐射,建立了倾斜面上太阳辐射总量的计算模,合理地选择铺设材料,对给定小屋的铺设形式作了分析与模拟,选取光伏电池的最优安装方式,以最优铺设方案为基础设计太阳能光电小屋模型,降低成本,实现收益最大化。关键词:太阳能小屋;光伏电池;铺设方案1绪论1.1课题背景及研究意义随着我国“绿色能源、可持续发展”的倡导,太阳能作为经

2022-08-02 19:09:16 2464

原创 simulink仿真pid控制伺服系统

用simulink仿真建模无非就是在明确系统传递函数(或状态空间函数)或系统框图的情况下,通过可视化的图形模块将模型搭建出来。笔者仿真的对象是一个非线性的较为复杂的伺服系统。很难用传递函数将其表达出来(也许可通过系统辨识表达),所以采用搭建系统框图的方式仿真,系统框图如下。将simulink中恰当的模块拖拽出,并用鼠标进行连线,即可得到如下所示的系统模型。其中,G2、(V0/Be)S*Ct、JS+Bm、JS^2模块我们采用了子系统的方法将其简化,使得整体系统模型的可视性更强。......

2022-07-30 18:15:35 5228 4

原创 伺服系统分段变系数PID控制算法

分段变参数控制算法通过检测系统误差所处的区域,采取不同的控制策略将误差从小到大分为一二三,三个区,采取不同的控制策略。当系统误差处于III区时,采用Bang_Bang 控制(输出正最大值或负最大值的控制量),使系统由一个区域经历最短的时间运动到另一个区域。这种控制方法动态响应快,能将误差尽快的引入到小误差区间,不足之处则是控制量过大,必须在进入较小的误差区间后切换为其他控制算法。当系统误差处于II区时,采用了与误差值相关的开方算法,即控制量等于误差值乘以开方系数再开二次方,开方系数是一个根据误差分区情况而定

2022-06-07 19:10:00 1658 2

原创 STM32如何使用内置外设(以流水灯为例)

需要理解的是APB1和APB2的区别:APB1上面连接的是低速外设,包括电源接口、备份接口、CAN、USB、I2C1、I2C2、UART2、UART3等等APB2上面连接的是高速外设包括 UART1、SPI1、Timer1、ADC1、ADC2、所有普通IO口(PA~PE)、第二功能 IO 口等在以上的时钟输出中,有很多是带使能控制的,例如 AHB 总线时钟、内核时钟、各种 APB1 外设、APB2 外设等等。在使用一个内置外设的时候,我们首先要使能相应的GPIO时钟,然后使能复用功能时钟和内置外设.

2022-05-30 18:22:13 1246

原创 STM32 Keil如何新建一个工程

STM32的开发(一)一、STM32官方库包介绍固件库是不断完善升级的,所以有不同的版本,我们使用的是V3.5版本的固件库STM32F10x_StdPeriph_Lib_V3.5.0。下面看看官方库包的目录结构:文件夹介绍:Libraries 文件夹下面有 CMSIS 和 STM32F10x_StdPeriph_Driver 两个目录,这两个目录包含固件库核心的所有子文件夹和文件。其中CMSIS目录下面是启动文件,STM32F10x_StdPeriph_Driver 放的是STM32 固件库源码文

2022-04-18 13:42:25 1740

原创 STM32开发方式及基本介绍

STM32的开发有三种方式1.寄存器版本 2.库函数版本 3.HAL库版本一、库函数开发与寄存器开发的关系很多人都是从学51单片机转而想进一步学习STM32,他们习惯了51单片机的寄存器开发方式,ST官方库摆在面前会不知道从何下手。其实简单来说,固件库就是函数的集合,固件库函数的作用是向下负责与寄存器直接打交道,向上提供用户函数调用的接口。举一个例子来解释 STM32 固件库到底是什么,和寄存器开发有什么关系。在51的开发中我们常常是直接操作寄存器,比如要控制某些 IO 口的状态,我们直接

2022-04-14 21:54:21 7429

原创 回传速率和测量带宽及两者之间的联系

回传速率数据传输速率(Data Transfer Rate),是描述数据传输系统的重要技术指标之一,是指通信线上传输信息的速度,也可以指单位时间内由数据通路传输数据的数量。它通常包括三方面的内容:1.数据信号速率,表示一秒内传输数据信息的比特数,单位为比特/秒 (b/s)。2.调制速率,调制速率反映信号波形变换的频繁程度,其定义是每秒传输信号码元(波形)的个数,又称符号速率、码元速率或波特率,单位为波特(baud) 。(“波特率9600与波特率115200的区别就是:波特率115200传输快但传输距离

2022-04-03 22:15:28 3828

原创 解决vc++运行窗口一闪而过的方法

1.可以在程序添加头文件#include<Windows.h>,然后在main函数最后的 return 0;前面加上system(“pause”);2.不要手动按运行键,而用快捷键ctrl+f5

2022-01-19 12:07:07 4706 1

原创 matlab跟踪目标图像边缘并计算长轴短轴

题目如下:对图像进行处理和分析,跟踪出目标边缘,并计算出目标的长轴和短轴及方向,原始图像如图1所示。图1 原始图像一、处理过程1.边缘提取目标边缘提取在图像处理学科中属于数学形态学,在提取目标边缘之前有认真思考过应该用什么方法?是用4连通方向码、8连通方向码,还是腐蚀与膨胀呢?由于本人编程水平有限,再加上对知识的熟练程度不一,最终选择较为简单的腐蚀与膨胀。膨胀在数学形态学的作用是把图像周围的背景点合并到物体中。如果两个物体之间的距离比较近,那么膨胀运算就会使着两个物体联通在一起,所以膨胀对填补

2022-01-11 12:02:49 5446 1

原创 单8通道数字控制模拟电子开关CD4051

笔者需要将同一种电压信号的正负值在不同条件下发给伺服阀,经过查阅资料,发现单8通道数字控制模拟电子开关CD4051可以实现此功能。得到同一种电压信号的正负值的实现通过LM358的同相跟随和反相跟随实现,具体可参考文章基于LM358的同相跟随电路和反相跟随电路一、CD4051介绍CD4051有A、B和C三个二进制控制输入端以及INH共4个输入,具有低导通阻抗和很低的截止漏电流。幅值为4.5~20V的数字信号可控制峰峰值至20V的模拟信号。例如,若VDD=+5V,VSS=0,VEE=-13.5V,则0~5V

2021-12-05 16:35:56 16426 1

原创 基于LM358的同相跟随电路和反相跟随电路

LM358是双运算放大器。内部包括有两个独立的、高增益、内部频率补偿的运算放大器,适合于电源电压范围很宽的单电源使用,也适用于双电源工作模式,在推荐的工作条件下,电源电流与电源电压无关。它的使用范围包括传感放大器、直流增益模块和其他所有可用单电源供电的使用运算放大器的场合。一、同相跟随以通道一为例,当用通道一输出同相跟随连线如图二、反相跟随反相跟随以通道二为例,接线如图所示需要注意的是图中的两个电阻需大于1.5k,且跟随输出需要两个电阻大小相等;如若需要按比例输出,则需自行调整电阻比值(此处为运

2021-12-05 16:09:26 5629

原创 STM32串口接收及发送的数据程序分享

上一篇文章分享了CVI发送数据给STM32的程序,(LabwindowsCVI上位机通过串口向STM32发送数据程序分享)确实已经过去很长时间了,现在才动手做接收部分属实是有些懒惰了。话不多说我们进入正题。如果只是单纯的想接受CVI发送的数据,那其实并不困难,但是考虑到接受数据的准确性以及何时发送数据何时终止发送,我们就需要写一个简单的通讯协议(只判断帧头帧尾即可)。除此之外,什么时候让程序运行,什么时候让程序终止也是应该考虑到的,所以我的程序如下。 if(USART_RX_STA & 0x

2021-10-29 21:33:10 2615 4

原创 LabwindowsCVI上位机通过串口向STM32发送数据程序分享

#include "toolbox.h"#include <ansi_c.h>#include <rs232.h>#include <cvirte.h> #include <userint.h>#include "chuankou.h"static int panelHandle;int com;void CVICALLBACK com_callback (int portNumber, int eventMask, void *callb

2021-09-18 21:01:51 1490

原创 STM32串口接受和发送数据的程序(USART/UART)

本实验中,STM32通过串口1和串口2上位机对话,STM32通过串口1在收到上位机发过来的字符串(以回车换行结束)后,通过串口2原原本本的返回给上位机。一、配置USART1#include "sys.h"#include "usart1.h" #if SYSTEM_SUPPORT_OS#include "includes.h" //ucos 使用 #endif#if 1#pragma import(__use_no_semihosting) //标准库需要

2021-09-06 19:07:04 17328 22

原创 STM32串口通信配置(USART/UART)

在配置USART和UART之前,得先明白什么是USART和UART以及它们之间有什么区别,其实两者是同步和异步的区别。UART:universal asynchronous receiver and transmitter通用异步收发器;USART:universal synchronous asynchronous receiver and transmitter通用同步异步收发器。一般而言,单片机中,名称为UART的接口一般只能用于异步串行通讯,而名称为USART的接口既可以用于同步串行通讯,也能

2021-08-26 18:28:59 9589 9

原创 程序源码分享-STM32的PID实验(含DAC和ADC)

一 PID 算法原理在工业应用中 PID 及其衍生算法是应用最广泛的算法之一,是当之无愧的万能算法,如果能够熟练掌握 PID 算法的设计与实现过程,对于一般的研发人员来讲,应该是足够应对一般研发问题了,在我所接触的控制算法当中,PID 控制算法又是最简单,最能体现反馈思想的控制算法,可谓经典中的经典。经典的未必是复杂的,经典的东西常常是简单的,而且是最简单的,想想牛顿的力学三大定律吧,想想爱因斯坦的质能方程吧,何等的简单!简单的不是原始的,简单的也不是落后的,简单到了美的程度。先看看 PID 算法的一般形

2021-08-15 11:12:35 2400 21

原创 程序源码分享-STM32将mpu6050的数据DAC并用LCD显示

本次硬件选用的是正点原子STM32精英版开发板、维特智能的mpu6050(JY62)。通过将JY62读取到的角度数据用lcd显示再DAC并用ADC进行验证。一、DAC配置1)开启 PA 口时钟,设置 PA4 为模拟输入。STM32F103ZET6 的 DAC 通道 1 在 PA4 上,所以,我们先要使能 PORTA 的时钟,然后设置 PA4 为模拟输入。DAC 本是输出,但是为什么端口要设置为模拟输入模式呢?因为一但使能 DACx 通道之后,相应的 GPIO 引脚(PA4 或者 PA5)会自动与 DA

2021-08-14 19:19:20 841

原创 程序源码分享-MATLAB仿真数据融合卡尔曼滤波算法

本文将用MATLAB模拟加速度计得到的加速度和陀螺仪的到的角速度进行卡尔曼滤波数据融合,得到更为精确的输出。一、用卡尔曼滤波的数据融合算法的原因加速度求解的数学原理是三角函数关系。通过将测得的加速度矢量分解在三轴上,再根据反三角函数计算就可得到角度。在物体处于静止状态下时,此种方法的精度能够得到保证,但是当物体处在运动状态下,这种方法带有一定的不准确性:加速度测量的结果除有重力加速度外还有物体运动的加速度,这样就导致通过加速度的反三角函数计算得到的角度值不准确。另外,加速度测量的值本身精度较低,测到的结

2021-08-12 18:47:39 4234 13

原创 程序源码分享-51单片机用LCD1602显示MPU6050角度数据

硬件方面选择的是51单片机,显示屏LCD1602,姿态传感器MPU6050的型号为维特智能的JY60,具体设计思路见笔者的文章基于单片机的云台姿态测量系统设计。1.头文件和定义数据类型/*预处理命令*/#include <reg52.h> //包含单片机寄存器的头文件#include <string.h>#include <stdio.h>/*=================================================*自定

2021-08-12 10:20:27 2785 4

原创 基于单片机的云台姿态测量系统设计(四)

本文是该论文正文的最后一部分,主要内容是对系统的调试以及总结和展望5 调试本次设计的调试从硬件和软件两个方面来进行。其中硬件调试是在单片机最小系统、传感器模块、显示模块、供电模块都焊接完成后进行的,上述元件均焊接在系统电路设计所绘制的系统PCB图印刷的电路板上。硬件调试应该首先检查外观,如有没有出现虚焊、漏焊、物理性损伤的情况,没有上述问题后应使用万用表检测是否出现短路,没有上述问题后应把程序烧写进去试运行系统;软件调试则主要是在确定硬件没有问题后,根据系统试运行的情况判断软件的问题所在,调试修改程序

2021-08-12 10:00:59 763

原创 基于单片机的云台姿态测量系统设计(三)

本文接上文 基于单片机的云台姿态测量系统设计(二),本文主要介绍系统的软件设计,包括卡尔曼滤波的原理、姿态结算的基本过程、matlab仿真卡尔曼滤波等4 系统软件设计4.1卡尔曼滤波算法加速度求解的数学原理是三角函数关系。通过将测得的加速度矢量分解在三轴上,再根据反三角函数计算就可得到角度。在物体处于静止状态下时,此种方法的精度能够得到保证,但是当物体处在运动状态下,这种方法带有一定的不准确性:加速度测量的结果除有重力加速度外还有物体运动的加速度,这样就导致通过加速度的反三角函数计算得到的角度值不准

2021-08-11 18:29:40 1022

原创 基于单片机的云台姿态测量系统设计(二)

本文接上文基于单片机的云台姿态测量系统设计(一),主要对选用的姿态传感器进行介绍和简单的原理分析,涉及到MEMS加速度计和陀螺仪的原理、卡尔曼滤波的原理等。3.4传感器模块本次设计需要测量三轴的加速度和角速度,选用的六自由度的姿态传感器MPU6050刚好可以满足需求。MPU6050之所以能够输出三轴的加速度和角度,是因为其内部集成了三轴的加速度计和陀螺仪。在静止情况下,加速度计可以根据重力加速度在各轴上的分量的三角函数关系得到三轴的角度值并输出;陀螺仪则可以根据转动时角度的变化率记录其角速度,通过积分得

2021-08-11 17:47:45 1191

原创 基于单片机的云台姿态测量系统设计(一)

本课题针对人们对安防系统的迫切需求,设计一种基于单片机的云台姿态测量系统。运行该测量系统后,可以较精确并实时获取云台姿态的数据,进而为云台姿态控制提供准确的输入信息。该技术方法可以广泛应用于对安防有较高要求的行业。主要工作如下:(1)该云台姿态测量系统在硬件上由MPU6050姿态传感器、STC89C52单片机最小系统、显示屏LCD1602和+5V电源组成。在AD软件上画出该系统的原理图并设计电路板的布局,根据布局画出系统的PCB图并印刷电路板,在电路板上用选型好的元器件进行焊接、调试和优化,最终做出实物且

2021-08-11 15:21:17 2682 1

压缩包包括PID参数的意义与整定方法、PID控制算法的C语言实现、PID算法原理、调试经验和代码、由入门到精通吃透PID等

几乎涵盖了一切关于pid的基础知识,对于用c语言编写pid有重大指导作用。并在文章中举出了大量实例以及详细注释,从原理入手到编写说明再到具体实例程序分析和详细注释。会对你有大量启发。

2022-08-02

simulink仿真分数阶工具箱

simulink仿真分数阶工具箱,参考文献为薛定宇《分数阶微积分学与分数阶控制》。分数阶微积分是一个古老而又“新鲜”的概念,早在整数阶微积分创立的初期,就有一些学者开始考虑它的含义,然而,由于缺乏应用背景和计算困难等原因,分数阶微积分理论及应用的研究一直没有得到太多实质性进展。近年来,随着计算机技术的跨越式发展和分数阶微积分理论的不断深入研究,人们发现分数阶微积分特别适合描述具有记忆特性、与历史相关的物理变化过程,如黏弹性特性,而实际系统中具有这样性质或动态特性的对象随处可见。目前,研究人员在软物质、控制工程、反应扩散、流变学等诸多领域开始采用分数阶模型进行描述,并得到了一些特殊性质和更精细化的结果,这极大地鼓舞和促进了人们对分数阶动力学系统理论和应用的研究。众所周知,整数阶微分系统表征的是对象属性(或状态)的瞬时变化特性,而分数阶微分系统表征的是对象属性(或状态)的变化。因此,从一定意义上说,用分数阶微积分学理论进行建模更能真实地刻画与反映对象的某些特殊性质。已取得的研究成果表明,分数阶动力系统具有其独特优势。

2022-08-02

stm32单片机的pid算法实例

在工业应用中 PID 及其衍生算法是应用最广泛的算法之一,是当之无愧的万 能算法,如果能够熟练掌握 PID 算法的设计与实现过程,对于一般的研发人员来 讲,应该是足够应对一般研发问题了,而难能可贵的是,在我所接触的控制算法 当中,PID 控制算法又是最简单,最能体现反馈思想的控制算法,可谓经典中的 经典。经典的未必是复杂的,经典的东西常常是简单的,而且是最简单的,想想 牛顿的力学三大定律吧,想想爱因斯坦的质能方程吧,何等的简单!简单的不是 原始的,简单的也不是落后的,简单到了美的程度。

2022-08-02

空空如也

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

TA关注的人

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