自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 matlab串口数据交互的使用

输出结果。

2024-01-15 00:02:51 686

原创 arduino串口输入数据转16进制

这个找了好多资料,试了好多次,终于可以了,小小记录一下~

2024-01-10 17:06:41 849

原创 笔记:蒙特卡洛方法——通过随机样本估算真实值

参考教材:深度强化学习 (王树森、黎彧君、张志华著)

2024-01-07 23:19:45 372

原创 机器学习笔记三——强化学习的V值计算

把智能体放入环境的任意状态——从这个状态开始按照策略进行动作选择,并进入新状态——重复步骤2,直至进入最终状态——从最终状态往前回溯,计算每个状态的G值——重复1~4状态多次,平均每个状态的G值,这就是所需的V值1.具体G值计算如下:按照策略往后走,过程中不进行计算,只记录每一步的奖惩r从终点往前走,到某一状态获得的奖励总和就是G值。此时G=r+gamma*G_1,即这一步的G值等于奖惩r加上上一步的G值(G_1)乘以一定的折扣率(小于1)。

2023-12-31 16:47:42 552

原创 机器学习笔记二——强化学习

强化学习就是让智能体可以独立自主的完成某个任务。独立自主指的就是不需要人去指挥。比如扫地机器人,打开开关就会自动去清理。自动驾驶的汽车,在定好目的地后,可以自动安全达到目的地。强化学习的过程Agent(智能体)——产生Action(行动)——Environment(环境)——产生new state(状态)以及reward(奖惩)——返给Agent强化学习的本质:学习的是一种策略Policy,如何去选择行为,如何确定下一步的动作。

2023-12-31 09:50:10 911 1

原创 机器学习笔记一

计算机程序可以针对某个任务T和某个性能指标P,从经验E中学习。在任务T上被性能指标P衡量的性能,会随着经验E的增加而提高。机器学习本质就是最优化的过程例如:任务T——编写计算机程序识别菊花与 玫瑰花经验E——一大堆菊花和玫瑰花的图片,(训练样本)性能指标P——不同算法有不同,这里可以选择识别率随着训练样本逐渐加大,识别率越来越大任务T——编写程序让机器人冲咖啡经验E——机器人多次尝试的行为和这些行为产生的结果性能指标P——在规定时间内成功充好咖啡的次数。

2023-12-27 17:20:36 1025

原创 计算直线在平面上的投影

参考:第八章 向量代数与空间解析几何——第四讲(空间直线) - 知乎 (zhihu.com)

2023-12-21 17:09:02 388

原创 matlab的solve函数解方程组

上述函数中的第一变量为方程组,第二个为待求变量。其中eqn表示方程组的表达式,var表示变量。用于求解方程组或者方程的符号解。一、solve函数的用途。2.建立方程组再调用。

2023-12-21 14:27:34 2135

原创 机器人逆运动学求解——矢量积法计算雅可比矩阵

机器人学——雅可比矩阵的建立

2023-12-17 12:07:06 830

原创 arduino实现RS485通信控制电机

Arduino实现RS485通信控制电机

2023-10-14 14:27:15 2356

原创 模糊控制理论总结

本文主要介绍了模糊理论基础与模糊控制系统及其设计方法

2023-09-11 15:53:21 1344

原创 Arduino控制电机转动,并读取编码器数据

Arduino之步进电机编码器脉冲数据读取

2023-08-02 18:05:56 2587

原创 关于matlab控制arduino板实现电机正反转控制

以下程序为驱动电机正反转,由于我的驱动器采用的是双脉冲模式,即PUL为顺时针旋转IO口,DIR为逆时针旋转IO口,所以正反转只需要对不同引脚进行脉冲输出即可。writePWMVoltage(a,'D3',4) %在数字引脚3上产生4V的PWM信号,一般arduino uno的电压为0-5V。2.writePWMDutyCycle() 在PWM引脚上产生具有指定电压的PWM信号。

2023-07-28 10:55:16 538 8

原创 Ardunio建立电机类控制步进电机转角与转向、转速

通过驱动细分,一般会有不同的细分结果,以下程序为200/转,表示每转对应200个脉冲。//一个脉冲转一个步长 总步数为200步/圈 循环一次实现一个脉冲 总计转三圈。//一个脉冲转一个步长 总步数为200步/圈 循环一次实现一个脉冲。#define STE 9// 脉冲位。

2023-07-27 12:35:16 2274

原创 Ardunio实现PWM舵机驱动

/将角度转化为500-2480的值 1980/180=11 1980是总脉宽变量 180是总角度 11是单位角度对应的脉冲量。//将舵机接口电平置高。//将舵机接口电平置低。//设定舵机接口为输出接口。//设置波特率为9600。//将0~9的数字转化为0~180 并让LED闪烁相应的次数。//设置舵机驱动口为数字3。//将数值转化成角度。//设置电机转角变量。

2023-07-19 16:57:46 319 3

原创 LED数字显示板单片机程序

如果要显示数字1,则需要b,c输入高电平,如果要显示数字3,则需要a,b,g,c,d输入高电平,根据这个原理,可以知道每个数字对应的a,b,c,d,e,f,g,h应该输入高电平还是低电平。2.再根据每个数字的a~h的引脚应该是高电平还是低电平,定义一个二维数组,每行对应一个数字中各引脚的电位,0代表低电位,1代表高电位。3.定义一个数字显示函数,输入为需要点亮的number,输出为空。即,a接数字口7,b接数字口6,具体如下代码。一、数字显示板(共阴极,即输入高电平点亮对应位置)的引脚与位置关系图如下。

2023-06-26 19:47:21 739 1

原创 数组、字符串数组

可知,数组作为函数的参数,传递的实际是数组的地址;因此在m程序里面赋值给形参实际就是赋值给实参,与之前数值的赋值不同。可以采用如下方法定义:string str("java");//string对象直接初始化。数组可以作为形参也可以作为实参,作为实参调用时,本质是将这个数组的首地址传递到形参中。1.字符串以'\0'为结尾,即遇到空字符,则字符串在此位置结束。2.因此实际存放时,数组长度要=字符串长度+1。char 字符数组名[常量表达式];

2023-06-21 19:13:17 51

原创 C++程序设计及注意事项

指的是在同一个域中,用同一个函数名来定义多个函数,但其参数类型应有不同,编译器将通过实参和形参的类型、个数等确定最佳匹配调用,不同类函数不采用函数重载。//声明一个max函数,其返回类型为int,两个输入为a,b,其类型均为int。多人编辑同一个项目时,一般在前面加static,使其只在某特定文件中使用,而不是全局,避免两人采用了同一函数名报错。6.C++允许为形参指定默认值,如果调用时该形参变量未给定实参值,则使用该形参值,如果给定了,则采用实参值。//采用以下方式,可以将后面定义的变量,在前面使用。

2023-06-21 12:09:06 156

原创 C++ 判断、选择、循环语句学习

注意:C++的复合语句需要添加{}一、顺序结构计算面积,先要输入半径,再计算面积#include<iostream>#include<iomanip>using namespace std;#define Pi 3.1415926 //定义符号常量Piint main(){ double r,area;//定义半径和面积 cin>>r;//输入半径 area=Pi*r*r;//计算面积 cout<<"

2023-06-20 16:58:40 222

原创 C++运算学习

int——unsigned——long——double由低到高会自动转化,即表达式中存在高等级的数据类型,则表达式结果会自动变成高等级类型。//先比较a>b为假,即0;再比较0和c的大小,则表达式的结果为假,及0。例如:x>y&&x<z;//先计算x>y,如果为0则结束,如果为1,则继续计算x<z,再判断表达式的值。三、关系运算符(> , < , >= , <=;//表示当x>=0时,y=a*x+b,否则y=x;例如:int a=3,b=4,c=5;例如:int a=3,b=4,k;

2023-06-20 13:42:50 156

原创 C++数据的表示方法学习笔记

加上const后该变量变为只读变量,在程序运行期间,无法修改其值,可以避免子程序中误操作而将输入变量的值进行了修改。注意,一个较大的浮点数与一个较小的浮点数相加,受精度影响,可能导致较小的浮点数就被忽略了,所以这种情况应该尽量避免。当一个数超过最大值的有符号整型数值时会产生溢出,超过最大值,会向上溢出变成负数,超过最小值会向下溢出,变成正数。字符型数据,存储为ASCII码,对应其ASCII码的值。若定义时,未进行初始化赋值,则其值是随机的,其运算结果也是随机的。在运行时,其值可以改变的为变量。

2023-06-20 11:46:20 121

原创 利用Matlab Coder 将matlab文件转化为c++文件导入到相应项目中

利用matlab coder将matlab文件成功转化C++,且导入到相应项目中,进行检验,结果与matlab计算一致!

2023-06-19 21:19:45 1797

原创 visual studio 2017 学习1——生成项目&cout使用

Visual C++控制台应用:适用于开发需要和操作系统交互的应用程序,如系统工具、驱动程序等。2.选择Visual C++控制台应用,可自行保存位置与名称。1.打开visual studio ,选择新建项目。3.此处为相应的源文件,可以进行对应修改操作。4.关于cout与cin的解释。5.可以得到以下结果。

2023-06-19 17:02:27 385

原创 模糊PID控制

模糊PID控制器仿真

2023-04-24 14:45:10 349

原创 单片机学习——蜂鸣器

单片机蜂鸣器设置

2023-01-03 22:09:56 446

原创 三自由度机械臂的轨迹规划实例

轨迹规划

2022-08-14 17:51:09 2824

原创 三次样条插值算法

本文为三次插值算法的推导全过程及插值实例与matlab程序

2022-08-05 16:00:55 10009

原创 遗传优化算法学习

一、遗传算法的出发点是一个简单的群体遗传模型,基于如下假设:1.染色体基因型:由一串具有固定长度的字符串组成,如10001就是一个5位的基因2.群体由一定数目的基因型组成3.每一个基因型有相应的适应度,表示该基因型的生存与复制能力。适应度,其实就是我们所需要的目标函数二、遗传算法的基本操作1.复制从旧的种群中选择生命力(适应度)强的基因串产生新的种群。2.交叉将两个基因型中的部分内容进行互换。例如:A=a1a2a3a4a5a6 B=b1b2b3b4b5b6若在位置

2022-04-08 10:47:10 779

原创 BP神经网络学习

BP神经网络结构框图函数信号正向传播:输入——隐层——输出,最终得到估算出来的误差误差信号反向调整:输出——隐层——输入,通过代价函数J(误差的平方和),采用梯度下降法对于权值进行逐一调整隐层输入in=输入层输入X*输入与隐层间的权值W1-阈值theta隐层输出out=f(隐层输入),其中f为sigmoid函数=(1/(1+exp(-β*in)))输出层y=w2*out例题:训练样本:input=[0,0.1,0.2,0.3,0.4]output=[4,2,2...

2022-03-25 13:55:48 761

原创 二关节机械手PD控制simulink仿真

simulink主程序其中的PDcontrol函数表示的是PD控制器,PD控制器共六个输入,分别是关节1、关节2的理想关节角,实际关节角,关节角速度;共两个输出,为关节1、关节2的驱动力矩。PD控制器的控制律为:PD控制器子程序:——PDcontrol%% 控制器程序function[sys,x0,str,ts]=spacemodle(t,x,u,flag)switch flag,case 0, [sys,x0,str,ts]=mdlInitializeSiz...

2022-03-11 18:57:48 7165 11

Arduino之步进电机编码器脉冲数据读取

Arduino之步进电机编码器脉冲数据读取

2023-08-02

arduino类函数实现电机正反转、角度控制、速度控制

arduino类函数实现电机正反转、角度控制、速度控制

2023-08-01

空空如也

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

TA关注的人

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