自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Cadence学习笔记-第四章-结果浏览器

4.1 “Results Browser”的作用可以读取所有电路节点的电压和端口电流的仿真结果。并且可以对数据进行预处理,在在合适的窗口类型中显示。此外,还提供了数据比较,“Y vsY”功能。具体功能:[1.] 察看仿真结果;[2.] 察看仿真环境设置;[3.] 察看器件工作点特性;[4.] 将结果在特殊的图标格式中显示,例如阻抗图和导纳图;[5.] 将仿真结果中的表达式直接送入到“Calculator”的缓存中。具体还是没有认识,可以在学习中体会。4.2 “Results Brows

2021-12-05 13:45:39 399

原创 Neurosim的manual细读(四)

Algorithm Level: PyTorch Wrapper算法级,PyTorch 包装器The algorithm we use to get the quantized DNN model for inference is the WAGE from [13]. The Pytorch code is modified based on [14-16].我们用来得到量化DNN模型的算法是[13]的WAGE。Pypouch代码在此基础上进行了修改。The same algorithm is r

2021-09-29 13:18:33 1026 1

原创 Neurosim的manual细读(三)

With various device technologies, the chip could operate in different modes, such as digital sequential (rowby-row) read-out for near-memory computing, or analog parallel read-out for in-memory computing. In thesimulator, the parameters of synaptic devic

2021-09-29 07:23:54 1504 1

原创 Neurosim的manual细读(二)

一下都写下来,实在有些乱,我觉得还是一章一写,好一些,那这篇就写Chip Level ArchitecturesIn this framework, we consider the on-chip memory is sufficient to store synaptic weights of the entireneural network, thus the only off-chip memory access is to fetch in the input data. Fig. 3 show

2021-09-28 06:32:22 1308

原创 Neurosim的manual细读(一)

最近收到这样一个课题,要做一个机器学习的这么一个东西。机器学习我也不太懂,电路仿真我也不太懂,处理器架构我也不太懂,总之就是要从头学起了。自带的manual都二十多页,好多英文,很多术语,真实的看不懂,一点一点来吧,争取看完能跑一跑基本的代码。。。这个东西也是乔治亚大学的于施蒙教授搞得,RRAM做的很厉害的那个。整个手册分为几个部分:1、介绍 2、新特性 3、使用方法 4、片级架构 5、电路级架构 6、算法级架构1、介绍DNN+neurosim是一种集成框架,自C++产生,pytorch封

2021-09-28 03:25:56 3524 11

原创 操作系统入门笔记

最近想建个网站但是不会用linux,在虚拟机上使用cadence也频频遇到莫名其妙的坑,之前一直很懒散,遇到问题会倾向于回避,但是总归要熟悉自己使用的工具,即使没有办法做到专业水平,还是会遇到大大小小的问题,但仍然应该一点一点的去积累和学习。所以想抽点时间学一学操作系统。今天先简略整理一下网络上的入门资料,有一个大概的理解。后续可能会看看书,看看网课,有一个比较深入的认识。一、操作系统百度百科的描述:操作系统(operating system,简称OS)是管理计算机硬件与软件资源的计算机程序。操作

2021-08-30 08:38:43 150

原创 电磁场理论复习笔记-第一章(下)

3、麦克斯韦方程组书上说,对电磁场认识的进一步深入是基于交流电的应用,人们发现不光有电荷产生电场,电流产生磁场,变化着的磁场和电场可以相互激发。这包括两个过程:①电场产生磁场(麦克斯韦位移电流假设)②磁场产生电场(法拉第电磁感应定律)...

2021-07-31 06:09:56 1207

原创 电磁场理论复习笔记-第一章(上)

东西全忘了,想要拾起来,纸笔记笔记太慢了,但是又不想发在知乎,因为真的是零碎总结,不会认真制作内容,排版,写公式,作图,标注之类的,也没有精力和时间去做这些,只能给自己理一遍思路。重要的概念和难点会提一下,争取写快一点吧。教材仍然是本科教材,小小一本,内容不多。其实真的学下来只有四个部分:①基本定理和方程 ②静电场 ③静磁场 ④电磁波第一章 电磁现象的普遍规律属于是前言了,先分析静电场和静磁场的实验规律,在研究变动情况下新的实验定律,由此总结出麦克斯韦方程组和洛伦兹力公式。这些方程式宏观电磁场理论的基

2021-07-21 19:35:34 1119 2

原创 matlab学习-第六、七章-微分方程部分

到了最麻烦的部分了,matlab比较重要的一点就是做计算,换句话说就是解方程。经常会遇到非线性的、非齐次的、高次的、微分的、多元的方程组,哪些可以解,哪些不能解,程序怎么写,有没有近似解法,算法怎么设计,等等,都是问题,需要系统整理。学习之后完成三个任务,整理方程求解方法、解决遇到的那个非线性方程组、解决泊松方程的求解。极限计算MATLAB 可以使用 limit 命令计算极限。最基本的使用方法就是输入你要计算的表达式。MATLAB 将会帮你找出独立变量趋于零时的极限。(isequal(A,k)可

2021-07-15 04:25:43 1901 7

原创 matlab学习-第五章-代数方程求解和其它符号工具

解基本代数方程x = solve(‘x+8’)书上的例子是这样的,但是我试了一下发现会报错,可能是版本的问题,新的版本写方程式要这样写:syms xeqn = sin(x) == 1;solx = solve(eqn,x)即先写变量,然后写方程式,然后利用solve指令解方程这样写起来会可读性高一点然后方程解出来经常会是分数,或者说是精确值,可以用vpa(a)转化为小数,或者直接用double()同时,对于方程ax + 5 = 0,a也要定义为变量syms,才能解二次方程求解对于多次方

2021-07-13 07:51:36 654

原创 matlab学习-第四章-统计和 MATLAB 编程介绍

创建柱状图没有特别的内容,记住几个指令就可以bar、barh、bar3、bar3h创建集合图:bar(x,y)即可,注意这里要把y设置成二维矩阵基本统计mean指令可以求平均数,如果输入的是一个二维矩阵,会得到一个行向量,每个元素是一列的平均数计算加权需要用到点乘sum可以对行向量和列向量求和编写MATLAB函数除了基本的格式外,需要注意下传入参数和返回值function 返回值 = 函数名(形参, 形参)最后要加end,且函数写在主函数下面matlab的语法不是很严格,需要梳理一下

2021-07-13 02:02:09 224

原创 matlab学习-第三章-绘图与图形

这部分内容应该是最多的额,三十多页,也是比较需要系统学习和总结的部分,尽量今天看完吧。。。2D绘图基础2D指的是只有一个变量的函数图形,包括三个部分:定义函数指定要绘制的函数图形的值范围调用 MATLAB 的 plot(x, y)函数指定范围:[ start : interval : end ],其中interval是增量,也就是计算的步长,这个值越小,曲线也会平滑例如可以写成:[0:0.1:10]plot(x, y), xlabel(‘x’), ylabel(‘cos(x)’); 可以

2021-07-09 02:48:30 554 5

原创 matlab学习-第二章-向量和矩阵

向量和矩阵感觉还是很重要的部分,概念必须清楚。。向量向量定义使用的是方括号,换行用分号;向量和常数的乘法可以直接用*号向量的转置使用单引号向量的加减运算也是可以直接写的,但是要求两个向量的长度、维数一致如果想要计算向量的元素的平方,需要用到x.^2,必须加一个点从已存变量创建大向量列向量的合并:直接用分号连接行向量合并:用逗号连接创建等差元素向量x = [xi : q: xe],其中xi为首元素,xe为末元素,q为差值但是实际上,xe不一定为末元素也可以用linspace 命令,l

2021-07-07 04:51:54 1462

原创 matlab学习-第一章-matlab环境

virtuoso还没学完,又有了新的任务。。。今天开始学习matlab和算法,参考就根据那个matlab揭秘,虽然说那个书还是xp时代的。。。加减乘除没什么好说的,注意可以用/表示除以,用\表示除优先级注意,可以加括号写表达式尽量加空格,读起来清晰一点赋值运算等于号=,一般不会用来写等式或者方程,在matlab中,一般是用来做赋值或者比较。直接在命令行写入 x + 6 = 9 ,他是不会帮你解出来的。可以写成x = x + 2,但是不能写成 x+=2,也不能写成x++。可以一行内写多个表

2021-07-06 02:28:57 353

原创 Cadence学习笔记-第三章-直流仿真

这章比较简单。。。3.1基本功能介绍两个方面:(1)直流工作点计算 (2)直流特性扫描对于直流工作点分析,仿真器会计算各个节点的电压,各支路电流,包括 MOS 管的各个直流参数,例如跨导(gm),阈值电压(Vth),工作区域(region)等。直流特性扫描中包含了电路的温度(Temperature),设计变量(Design Variable),器件参数(Component Parameter),器件模型参数(Model Parameter)等多个参数的特性仿真。3.2仿真参数设置如果需要将直流

2021-05-31 01:56:02 10808 5

原创 Cadence学习笔记-第二章-瞬态仿真

瞬态仿真可能计算量最大,相比较直流工作点仿真和交流小信号仿真。(想当然的理解)2.1 基本功能介绍瞬态仿真会经常涉及到精度和速度的折中。控制精度可以通过改变容差(?)、积分方式、步进大小等参数但我只会moderate和conservative。。。还可以对电路初始状态,输出数据保存量等条件参数设置。这里可能要学习一下,虚拟机内存老是超,可能是自动保存了太多仿真结果。2.2 仿真参数设置2.2.1 基本参数设置...

2021-05-30 19:35:50 33030 1

原创 Cadence刚刚使用遇到的小问题

初学者,用起来全是问题前几天遇到没有空间的问题(no space left on device)解决不了,还好虚拟机上没什么东西,程序也没做改动,就删掉虚拟机重新安装了一下旧问题就又出现了①文件读写权限chmod –R 777 文件名可以把带锁的文件改成可编辑的②加载已有的仿真设置因为仿真是需要设置工艺库的,但是老师给的虚拟机里,工艺库路径有问题所以更改一下modelsetup.state文件(或者在图形化窗口里改,就是比较麻烦)仿真就可以进行了有其他问题再记录...

2021-05-27 17:21:01 987

原创 Cadence学习笔记-第一章-基本设置

发现了一个版权不详的学习笔记,基于Cadence51的,看了一点发现写的很好,也适合初学者,所以打算学习一下,结合已有的开发环境和工程文件。今天开始第一章。1.1启动前的准备保证软件已经安装,并且可授权使用在shell中设置了正确的环境变量shell不知道是啥,看了看其他同学的解释,蛮清楚的。设置环境变量是程序正常运行必须的,更加具体的,就先放一放。(因为不懂1.1.1 启动配置文件:.cdsinit.cdsinit文件是在Cadence IC中启动时运行的SKILL脚本文件。该文件配置了很

2021-05-20 09:54:29 11139 3

原创 匿名无人机控制过程和模式总结

代码看了一阵,各个功能分成块,已经算是比较明白了,但整合到一起,系统开始运行时,就很容易懵比。。。难点就在于对飞行器的工作模式(定高自稳啥的到现在还没分清)以及各个标志位(上锁啊解锁啊锁定命令之类的),要说逻辑,肯定是有的,但就是非常的琐碎和复杂,因此想要对无人机实现控制,这些过程中的节点都是不能忽视的,还有灯啊什么的也要看看。。。...

2019-08-04 23:17:50 3404 2

原创 匿名无人机代码FlightCtrl简单分析

这个flightCtrl文件,是真的很长又很难。。。各种标志位啊,判断啊,开关啊,逻辑判断啊什么的,趁通宵把代码梳理一遍。这个文件里的函数虽不算最多,但引用的头文件相当多,也就是说这个东西跟整个系统各个部分都有关系,难度也就最大。。。不过仔细看应该还是能看懂的,就是费点时间。1、pid初始化:void All_PID_Init(void){ Att_1level_PID_Init();...

2019-08-02 08:14:52 2724 5

原创 无人机的DT部分

这里就有一个一直没能搞懂的问题:program_ctrl这些东西是啥玩意传过来的,是上位机还是啥?总之就先分析一遍代码。这个东西是相当的恐怖,一千行代码。。。头文件长这样:感觉没有机会细看了,最多把各个功能列举一下。///////////////////////////////////////////////////////////////////////////////////////...

2019-08-02 03:50:43 488

原创 无人机的RC部分

一直没能仔细看的几个文件就是DT(数据传输)、RC(遥控器控制)和flight_ctrl,一是长,二是难,不直观,太多flag啊什么的,与总体控制有关。今晚就看完这些然后对代码做一个更加全面的整理,后面就要去试飞机和自己写控制了。需要逐个函数进行分析。void Remote_Control_Init(){ RC_IN_MODE = Ano_Parame.set.pwmInMode; if...

2019-08-02 02:42:45 3187

原创 一直没看的无人机定高

除了定高的部分,其他没看的还有一些控制函数。定高的原理的话,也是利用了两级pid,按照原本的理解,从外环开始看的话,反馈高度比较容易获得,就是激光测距得到的高度。期望高度好像无法得到。内环的话,期望速度是外环的输出,实际速度不知道怎么测得的,应该是高度的微分,等下仔细看看。说期望高度“无法得到”,是因为没有必要,或者说我们通常不这么做。首先是因为我们通常不使用定高在某个高度这个功能(吧),...

2019-08-01 22:47:04 6522 1

原创 匿名无人机飞控代码整理

看了半天,各部分都看得都很零散,写的也很简略,但目前为止还是无法对系统各部分做具体一点的整合,今天试试看。。。1、先从主函数起,进入主轮询函数Main_Task();这个主函数的调用就在一个while里,循环没有设置延时。但是程序和任务的执行是需要时间的,我们通常是需要定时调用的,也就是说隔10ms,调用一次这个任务,就比如说是读取某个硬件的数据的任务,需要每10ms读一次数据,那就执行完...

2019-07-31 09:53:48 12448 1

原创 匿名无人机飞控代码整理7

最后来看定高。。。1、高度数据融合任务,WCZ_Fus_Task(11);GPS_Data_Processing_Task(11);数据融合好像也很重要?虽然不知道是干嘛的。。。语句很复杂,一点一点看一下。if(flag.taking_off){ baro_offset_ok = 2;}else{ if(baro_offset_ok == 2) { baro_offs...

2019-07-30 13:51:44 1789 1

原创 匿名无人机飞控代码整理6

色块追踪部分:也就是轮询的这两个任务:ANO_CBTracking_Task(20);ANO_CBTracking_Ctrl_Task(20);1、第一个是色块追踪的数据处理:void ANO_CBTracking_Task(u8 dT_ms){ ANO_CBTracking_Decoupling(&dT_ms,IMU_ROL,IMU_PIT); ANO_CBTrac...

2019-07-29 22:56:08 1146

原创 匿名无人机飞控代码整理5

先跳过高度部分,这里看location部分可以看出来这部分也是直接与我们的循迹、追踪任务相关的。所以这部分的掌握应该很重要把。

2019-07-29 21:23:55 2377 1

原创 匿名无人机飞控代码整理4

姿态角获取,这里的RPY应该是rollpitch和yawcalculate_RPY();看函数定义:void calculate_RPY(){ ///////////////////////输出姿态角/////////////////////////////// t_temp = LIMIT(1 - my_pow(att_matrix[2][0]),0,1); //i...

2019-07-29 15:05:07 1647

原创 匿名无人机飞控代码整理3

搞了半天还没看到有用的东西,接下来开始看角速度环、电机控制、姿态角获取、角度环这部分,一起看是因为联系比较紧密。下午看高度和位置部分。。。。首先看姿态角速度环控制:Att_1level_Ctrl(2*1e-3f);进入函数,开头有一个这个ctrl_parameter_change_task();注释说是改变控制参数任务,应该是用户进行pid参数调整的一个入口?回来再仔细看。 fo...

2019-07-29 12:48:34 1504

原创 匿名无人机飞控代码整理2

这次是开关状态任务Swtich_State_Task(1)首先,仍然不知道这是啥然后,开始看程序。。。switchs.baro_on = 1;命名带baro,通常是气压的意思,这里是气压开关打开?表示一个状态应该是然后一个超大的if括号:if(sens_hd_check.of_ok || sens_hd_check.of_df_ok){of是光流、of_df可能是光流解耦合?如...

2019-07-29 10:38:22 1405

原创 匿名无人机飞控代码整理1

工程估计要看很多遍才能顺下来,而且有的地方需要看的比较细,对于一些比较重要又比较难的部分打算写下来一点一点分析。姿态解算部分先跳过,姑且就认为它的imu算法(长的一批)可以得到正确的姿态信息。这次先分析飞行状态任务:Flight_State_Task(u8 dT_ms,s16 *CH_N)程序好长还没注释,在一直没能仔细看它的具体功能。先来认识几个结构体:typedef struct...

2019-07-28 16:43:04 7563 6

原创 光流传感,简称流感

匿名科创的无人机,加了个这个听起来很强的功能,不知道干嘛的,学习一下。开始以为是什么激光测距用来定高的,查了查发现不是,copy其他博客的定义:它是空间运动物体在观察成像平面上的像素运动的瞬时速度,是利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,从而计算出相邻帧之间物体的运动信息的一种方法。一般而言,光流是由于场景中前景目标本身的移动、相机的运...

2019-07-25 19:04:43 646

原创 一个简单无人机工程的总结

用了好些天才看完一个工程代码,北京中科浩电(好像是这个名字)的无人机源码,msp430的板子,imu是mpu6050,定高用了气压计spl06,遥控传输数据用的nrf24l01,开发平台IAR,小型的无人机没有拍摄功能,没有磁力计,没有光流传感,应该可以作为无人机控制的入门手段,用来了解控制流程和方法,对时序和原理的理解,以及一些必要的算法的运用。不知道该按照什么顺序来整理,因为自己现在也还顺不...

2019-07-24 22:57:54 1765 4

原创 无人机高度控制

这个第一次看就完全没看懂,现在再看还是没看懂orz,而且定高还是重要的功能和考点,详细分析一下程序吧。。。。首先是表示高度信息的结构体://数据结构声明typedef struct{ float Z_Speed; float Z_Acc; float Z_Postion; float Alt; uint16_t Thr;}HeightInfo_t...

2019-07-23 18:46:59 3312

原创 四周无人机的姿态解算(2)

接上一篇4、尽量直观地分析一下程序直接把小飞机的程序考过来了。。。说明: 函数名:姿态更新 输入:mpu6050结构体,也就是测得数据+初始偏置 输出:三个姿态角数据 函数变量的结构体定义: typedef struct{ int16_t accX; int16_t accY; int16_t accZ; int16_t gyroX; i...

2019-07-23 05:29:14 1217

原创 四轴无人机的姿态解算(1)

哇我哭了,对imu得到的数据进行姿态结算好像终于能通过去了,记录总结一下。。。对比了网上搜到的博客、代码和已有的代码,发现既简单又有效的解算方法好像比较固定,因为大家都用的一个程序。。。1、先从旋转物体的姿态的描述方法开始讲起。怎么描述一个旋转物体的当前状态呢?其实可以直观的想一下,一个物体的重心位置不变,就假设这个重心被固定在原点,然后整个物体可以绕这个点自由转动。为了直观,可以取一个正...

2019-07-23 03:04:38 4306 1

原创 飞控算法整理

主要就是飞行器姿态解算,卡尔曼滤波和pid了。。。这些词一直听人说,但就是没人给我讲解过原理。打算自学一下然后整理出来。途径就是通过查找博客和解析现有代码的算法,来进行理解,原理的话需要掌握到一个能直观解释的程度。具体包括卡尔曼滤波的原理,具体好像是什么方差最小?跟概率论有关,正好最近考研数学就复习到这里,以及算法流程,软件实现,使用方法。以及pid算法原理和算法流程,和软件实现。还有姿态...

2019-07-21 17:46:42 1128

原创 SPI和IIC协议解析3

本来不打算整理NRF24l01了,但是看了看发现还是很重要,而且有点东西,还是整理一下吧。同样头文件中的宏定义很多。。。1、先看头文件定义的函数:void NRF24L01_Init(void); void NRF24L01_RX_Mode(void); void NRF24L01_TX_Mode(void); u8 NRF24L01_Write_Buf(u8 reg, u...

2019-07-13 15:26:32 233

原创 SPI和IIC协议解析2

接下来就是mpu6050的使用了,是无人机中(最?)重要的模块使用了,而且好像里面的算法还是从msp430里移植过来的。这个使用的是IIC通信,IIC依然是通用的模拟方式,源文件也一样,先看看mpu6050的源文件怎么写的。1、首先看看头文件定义了那些函数u8 MPU_Init(void); u8 MPU_Write_Len(u8 addr,u8 reg,u8 len,u8 ...

2019-07-13 11:43:34 275

原创 SPI和IIC协议解析

看了半天还是不会写,只能反复看例程找到规律了。因为手上stm32的例程非常完整,还包括了对将要用到的无线通信模块和mpu6050模块的具体使用,所以就从这里入手开始学习,完了再仔细看看msp430的串口相关的例程,希望能比较顺利吧。。。一、IIC对24cxx的读写首先是模拟IIC的源文件,跟以前一模一样的。然后对24cxx模块的读取的头文件是这样的:u8 AT24CXX_ReadOneBy...

2019-07-12 17:11:42 817

空空如也

空空如也

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

TA关注的人

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