- 博客(30)
- 收藏
- 关注
原创 机器学习笔记三——强化学习的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
原创 matlab的solve函数解方程组
上述函数中的第一变量为方程组,第二个为待求变量。其中eqn表示方程组的表达式,var表示变量。用于求解方程组或者方程的符号解。一、solve函数的用途。2.建立方程组再调用。
2023-12-21 14:27:34 2135
原创 关于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
原创 遗传优化算法学习
一、遗传算法的出发点是一个简单的群体遗传模型,基于如下假设: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
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人