- 博客(133)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 一个无聊的总结
每个人入职的时候有3个月的实习期,期间也不用干什么活,就看看代码,一周跟自己的mentor开一次会,说下看的内容,不会的地方请教请教。有时候羡慕别人的经历,有时候也同情别人的遭遇,更多的时候,是羡慕别人敢于尝试,敢于改变,能够坚持的能力。每天坐着人体工学座椅,用着升降桌,高分辨率显示器,狂拽酷炫的机械键盘,谈笑有鸿儒,往来无白丁。我去,不总结不知道,慢慢总结这将近三年的工作经历才发现,自己好像没啥长进啊:-((没考过任何证书,没跳槽,没有提升自己的英语听说技能,没有刷题,没有写博客…
2025-01-18 17:12:53
244
原创 LQR控制器——简单实现与仿真
对B站一位良心up主的视频学习总结安利:https://www.bilibili.com/video/BV1RW411q7FD/?spm_id_from=trigger_reload对于可镇定的线性系统:x˙=Ax+Bu\dot{x}=Ax+Bux˙=Ax+Bu, u=−kxu=-kxu=−kx写成闭环形式,也就是 x˙=Aclx\dot{x}=A_{cl}xx˙=Aclx我们的做法...
2020-04-13 16:49:15
20874
7
原创 (ANC)前三章思维导图总结
最近发现对于一本书,如果一点点事无巨细的做笔记,效率比较低。于是改变了一下之前的读书方式,用思维导图的方式做读书笔记,便于了解整本书的框架和每章的大致内容。也仅限于自己做笔记用。...
2020-04-10 11:16:15
1279
2
原创 第三章——Lyapunov理论基础
文章目录3.1 非线性系统和平衡点非线性系统自治与非自治系统平衡点常规运动3.2 稳定性的概念稳定性与非稳定性渐进稳定性和指数稳定性局部和全局稳定性3.3 线性化和局部稳定性3.4 Lyapunov直接法正定函数和Lyapunov函数平衡点理论全局稳定性的Lyapunov理论不变集理论局部不变集理论全局不变集理论3.5 基于Lyapunov直接法的系统分析LTI系统的Lyapunov分析克拉索夫斯...
2019-10-06 10:24:24
42002
8
原创 第二章——相平面分析
文章目录综述2.1 相平面分析的概念相图奇点相平面中的对称性2.2 绘制相图分析法等倾线法2.3 从相图中确定时间2.4 线性系统的相平面分析2.5 非线性系统的相平面分析非线性系统的局部特性极限环2.6 极限环的存在性综述相平面分析法是研究二阶系统的一种图像方法。他的主要思想是在相平面上绘制出与初始条件有关的运动轨迹,然后来分析这些轨迹的特征。优点:简单、直观。应用范围广泛:强...
2019-09-01 20:56:36
17092
1
原创 (ANC)第一章——介绍
文章目录为什么使用非线性控制器非线性系统的行为一些非线性系统的行为特性对于研究生生涯的第一门英文课程Slotine的《Applied Nonlinear Control》,也是自己导师的课程,感觉有必要做一下读书笔记,记录以下自己的学习过程。就以博客的形式放在自己的这里吧。其实文中很多都是翻译教材中的话来的,可能很多地方翻译的不好,专业术语掌握不够,以后还有待改善。高性能、低功耗微处理器的发...
2019-09-01 20:39:15
1436
1
原创 Runge-Kutta算法学习
文章目录原理欧拉方法改进欧拉方法遇到的问题MATLAB与C语言程序原理此方法主要用来求取微分方程或者微分方程组的数值解,主要思想是将微分方程化为差分方程,然后迭代解出差分方程在一系列点上的值。因此求解步骤主要分为两步:离散:将微分方程离散化,建立差分方程。而离散化的方法主要有差商法、泰勒级数法与数值积分法(利用矩形或者梯形的面积来计算积分)。递推:由已知的y(0)逐步计算出解在一系列点...
2019-08-10 09:38:38
7979
原创 c++(标准模板库STL)
STL是一种泛型编程(genericprogramming)STL提供了一组表示容器、迭代器、函数对象和算法的模板。 面向对象编程关注的是编程的数据方面,而泛型编程关注的是算法。 他们之间的共同点是抽象和创建可重用代码,但是他们的理念截然不同。1、容器(container)容器类是一个与数组类似的单元,但是他是管理序列的类,也是容纳一组对象或对象集的类。 通过容器类提供的成员函数...
2019-05-07 22:07:32
4619
3
原创 c++(string类型)
c++对于字符串的处理提供了两种方法: 按照c中的字符数组处理。 按照string类型的对象处理。 string类是一种抽象数据类型(ADT),不是内嵌的、原子数据类型;和int、float、double等不同。 与字符数组相比,使用string类型更加简单、直观,可以像处理其他类型的变量一样进行处理。考虑如下程序,了解string对象的定义和使用:#include ...
2019-05-05 22:04:47
4524
原创 c++(类模板的继承)
根据上一篇博客中举的数组的例子,这篇博客就对其进行继承,再继承一个模板类出来。下面程序中的searcharray模板就继承了之前的freearray模板类,然后在他的基础上实现对特定数组元素的查找操作://此模板继承自freearraytemplate <class T>class SearchArray:public FreeArray<T>{publi...
2019-05-03 22:05:53
12921
原创 c++(模板)
一、函数模板函数模板属于类属,使用模板可以实现用一个函数体就可以处理不同的数据类型。 函数模板并不是一个真正意义上的函数,它仅仅是对函数结构外观的声明,本身并不占用内存,只有当编译器遇到模板函数的调用时,才会在内存中创建一个函数实例。 函数模板有点类似于重载,但是比重载更加方便。 c++不但支持函数重载,也支持函数模板重载。与函数重载类似,模板重载也是根据形参列表进行区分。考虑如下程序...
2019-05-02 23:42:38
825
原创 c++(异常)
为了保证程序具有一定的容错能力,在出现意外的情况下不至于出现灾难性的后果,因此在程序中最好要考虑各种意外,并给出处理方法。异常就是程序中的突发性事件。设计异常的基本思想:让一个函数在出现了自己无法处理的错误时,抛出(throw)一个异常,然后它的调用者能够处理这些问题。C++之父Bjarne Stroustrup在《The C++ Programming Language》中讲到:...
2019-05-01 22:51:03
895
原创 c++(基类指针、多重继承与多继承)
一、基类指针一般的,如果定义一个指向基类类型的指针,那么这种类型的指针具有如下特性:指向基类对象的指针可以指向其子类对象。 如果子类覆盖了其基类中的函数成员,但通过基类指针所访问的成员仍然是基类的成员,而不是子类的成员。比如基类BaseClass拥有函数F,其子类ChildClass中覆盖了函数F,那么如下语句将仍然调用A的函数F:BaseClass *aptr; //基类...
2019-04-30 19:14:39
6677
原创 c++(虚函数、纯虚函数和抽象类)
目录一、虚函数1.1问题引入1.2虚函数二、纯虚函数三、抽象类1.1 注意:1.2程序举例一、虚函数1.1问题引入c++在默认情况下,对函数成员的调用实施的是静态连编(staticbinding),也叫静态绑定。此时,如果子类中的函数F覆盖了基类的函数F,那么基类中的其他函数调用函数F的时候,调用的仍然是基类中的这个函数F,而不是子类中覆盖...
2019-04-29 20:23:03
1942
原创 c++(继承——二)
一、子类与基类构造函数的关系 如果子类和基类都有构造函数和析构函数, 那么当实例化子类的对象的时候,先调用基类的构造,然后调用子类的构造;当程序结束时,顺序相反,先调用子类的析构函数,再调用基类的析构函数。 当基类的构造函数是默认(缺省)的时候,他们的调用是自动完成的,不需要在子类中显示的调用基类的构造函数。这也叫做隐式调用。 但是当基类的构造函数带有参数的时候,就需...
2019-04-28 15:06:58
255
原创 c++(继承)
c++允许在当前类的基础上构造新类,新类就继承了当前类的所有数据成员和函数成员,构造和析构函数除外。已有类叫做:父类、基类;新产生的类叫做子类、派生类。继承语法:class Child:public Father{ ...}上面这句话就是Child类继承了Father类。说明:public在此叫做继承修饰符:它决定了能够在子类中访问基类的成员。 但是任何情况...
2019-04-27 21:46:40
198
原创 c++(对象组合)
在C语言中结构体支持嵌套,同样,c++的类也支持嵌套。也就是让某个类的对象作为另一个类的数据成员出现,这就是对象组合。下面的例子是让IntArray类的对象作为Customer类的共有数据成员存在。在这里,IntArray类其实就充当了我们自己定义的一个抽象数据类型,通过各种运算符重载函数,实现对字符串很方便的操作与管理。IntArray类:class IntArray{pr...
2019-04-26 16:06:43
4258
1
原创 c++(重载[]运算符)
c++支持重载[]符,这样就可以像操作普通数组一样操作对象数组。下面创建一个intarray数组类,实现对数据下标的越界检查。class IntArray{private: int *aptr; int arraySize; void memError(); //处理内存分配错误 void subError(); //处理下标越界pub...
2019-04-25 17:50:32
1653
原创 c++(关系运算符、流操作符与类型转换运算符重载)
1、重载关系运算符与双目运算符的重载实现方式相似,唯一的区别是关系运算符重载函数的返回值是一个布尔值(true或者false)下面是大于号(>)的重载函数: //重载关系运算符> //就是对两个成员变量进行一一对比 bool operator>(const FeetInches &right) { if(this...
2019-04-24 19:10:57
773
原创 c++(重载单目运算符++)
因为单目运算符仅作用于当前对象,因此,当将这些运算符重载为函数成员时,就不再需要参数。1、重载前置运算符(++obj)在feetinches类中添加如下运算符重载函数成员: //重载前置++运算符 FeetInches operator++() { ++this->inches; //前置运算符,先加再返回 this->...
2019-04-23 12:53:58
3875
2
原创 c++(重载双目运算符)
重载加法运算符,实现对象的直接加法运算。例如,下面这个feetinches类:class FeetInches{private: int feet; int inches; //对feet和inches的值进行调整 void simplify();public: FeetInches(int f=0, int i=0) { ...
2019-04-18 22:38:55
2398
1
原创 c++(运算符重载与this指针)
1、重载赋值运算符 实现将对象A按位赋值给对象B。 例如定义一个person类的赋值运算符重载函数:class Person{private: int age; char *name;public: //省略。。。。 //重载赋值运算符 void operator=(const Person &right) ...
2019-04-17 22:27:16
3194
原创 c++(对象赋值与拷贝构造函数)
对象赋值 同一个类的对象之间可以相互赋值,默认情况下,进行的是对象成员之间的复制,也称为【按位复制】或【浅复制】。 当类的数据成员中没有指针类型的变量时,直接对两个对象进行赋值没有问题。 但是一旦类的数据成员含有指针变量,那么直接对这两个对象进行赋值操作之后,这两个对象的指针都将指向同一块内存。这时,一旦其中一个对象生存期结束,释放该内存,那么另一个对象的指针就变成了野指...
2019-04-16 21:45:13
5804
2
原创 c++(友元函数)
友元函数要点 友元函数不是类的成员函数,但是仍可以访问该类的私有成员。友元函数可以是一个外部函数,也可以是另一个类的成员函数。 当类A中的某个函数成员需要访问类B中的私有成员的时候,首先需要在类A的头文件中进行对类B的超前使用说明,这是必不可少的。其次需要在类B中将A的函数声明为友元函数。 友元函数的声明就是在函数原型前面加上friend。 可以将一个类定义为另...
2019-04-15 22:57:13
4403
2
原创 c++(静态数据成员和静态函数成员)
1、静态数据成员用static关键字修饰,在类中声明之后还需要在类外进行定义。//头文件class CharRange{private: static int temp; //类中声明}//源文件#include <iostream>using namespace std;#include "charrange.h"int CharRange...
2019-04-14 21:20:23
1049
原创 c++(数组的排序与查询操作)
1、该数组类的定义和前一篇文章中基本一样,只是增加了几个成员函数,实现对数组的一些特定的操作。#ifndef INTARRAY_H_INCLUDED#define INTARRAY_H_INCLUDED//创建一个数组类,实现下标的越界检查。class IntArray{private: int list[20]; //判断下标是否有效 bool isVa...
2019-04-14 10:12:54
4459
原创 c++(抽象数组,实现对下标的越界检查)
1、首先在头文件中定义一个抽象数组类#ifndef INTARRAY_H_INCLUDED#define INTARRAY_H_INCLUDED//创建一个数组类,实现下标的越界检查。class IntArray{private: int list[20]; //判断下标是否有效 bool isValid(int);public: IntArr...
2019-04-12 22:17:57
1388
原创 C++(重载,对象数组)
头文件:重载三个构造函数,根据实例化对象传入的参数自动调用。#ifndef RELOAD_H_INCLUDED#define RELOAD_H_INCLUDED#include <string.h>//构造函数的重载class Reload{private: char *myName; int myAge;public: //重载三...
2019-04-12 11:57:39
957
原创 混合使用cin>>和cin.get()的问题
1、cin>>和cin.get()如下示例代码会到导致cin.get()语句被跳过,不等用户输入数据。char ch; int number; cout << "Enter a number: ”;cin >> number; // 读取整数cout << "Enter a character: ";ch = cin.ge...
2019-04-10 20:46:36
3662
原创 c++学习(类、内联、构造、析构)
分文件组织工程结构:1、一个包含类定义的头文件,文件名就是自己的类名#ifndef RECTANGLE_H_INCLUDED#define RECTANGLE_H_INCLUDEDclass Rectangle{private: float width; float length; float area; char *boxName; ...
2019-04-09 16:29:42
538
原创 快速排序
#include <stdio.h>#include <stdlib.h>/*快速排序算法学习*/void swap(int *a, int *b){ int temp; temp = *a; *a = *b; *b = temp;}void quickSort(int arr[] ,int start, int en...
2019-04-08 11:16:46
203
原创 数据传输——基本程序流程
芯片初始化与基本配置 UDMA初始化(目前还不清楚他在哪里用了DMA) 引脚复用设置 串口初始化 IIC初始化(快速模式,400K/bps) 串口打印程序标语 初始化应用的变量(包括清空数据缓冲区,tcp通信需要的IP和端口号,发送的数据长度) 配置simplelink到默认模式(STA模式) 启动simpleli...
2019-01-24 21:43:06
2792
原创 传感器网络——基本模型认识
1、cc3200采集传感器数据后,经内部WiFi网络处理单元cc3100数据封装后无线发送至远端路由器。具体过程如下:cc3100利用内部的TCP/IP协议栈对数据进行封装,之后数据进入基带电路,经基带处理后输出基带信号,之后信号进入射频电路,经处理后,基带信号被调制到发射射频载波上,输出的射频频带信号经外部的2.4G带通滤波器滤波之后,通过外接的天线辐射出去。2、整体模型 无线...
2019-01-23 20:02:25
2622
原创 CC3200——TCP通信
利用SDK中的tcp_socket例程,实现局域网内的TCP客户端与服务器端的通信。整体思路就是将cc3200设置为STA模式作为客户端,向远端服务器发送1000个数据。基本程序流程:1、首先利用ConfigureSimpleLinkToDefaultState()函数配置cc3200的默认模式。默认配置包括STA模式,自动连接,删除之前存储的配置,使能DHCP,发射功率设置为最大...
2019-01-23 19:48:43
3227
原创 CC3200——ti_rtos工程导入失败解决方法
在CCS中导入station模式的例程,同时需要导入相关的ti-rtos的配置工程和驱动库。但是在导入的过程中,遇到无法编译的问题。ccs提示我的rtos版本太老:Buildfile generation error occurred..Product 'com.ti.rtsc.TIRTOSCC32XX' v2.15.0.17 is not currently installed ...
2019-01-22 20:45:56
3467
3
原创 CC3200——IIC从机地址计算
在SDK 的i2c_demo例程中,有两个IIC器件,温度传感器TMP006和三轴加速度传感器BMA222E,下面 以TMP006为例总结一下IIC从机地址的计算步骤:1、根据TMP006数据手册找到其从机地址定义的地方,有些设备的从机地址是 固定的,有些则根据其引脚的电平决定,这样就可以在一根总线上挂载多个从机设备,TMP006就是这样。 2、根据CC3200开发板的硬件原理图,可以...
2019-01-18 18:02:57
2205
原创 CC3200——PWM
1、PWM由定时器产生,且只能由16位的定时器产生。因此能够分频。每个引脚根据选择的功能,可以配置成不同的PWM模式,比如下面这个:工作在模式3时,作为GT_CCP07,只能输出PWM,不能作为捕获;工作在模式12时,作为GT_CCP02,只能捕获外部脉冲,不能输出。 2、定时器产生PWM时,是向下计数的,根据是否设置输出信号翻转,决定输出的PWM波形。由下面这个函数决...
2019-01-18 18:00:14
1203
原创 CC3200——CCS新建工程
配置:CCS8.3 + CC3200 + SDK1.3.0踩了一下午的坑,才完整的建立了一个可以用工程。为了方面说明,后面直接使用SDK中的PWM例程中的文件。1、红色框框为需要注意的地方 2、右键工程,选择添加文件,然后定位到SDK中的pwm例程中,选中三个文件,如下图: 然后点击打开,ccs会提示复制还是链接到工程中,如下图 这里需要注意:(1...
2019-01-18 17:46:26
1452
1
原创 CC3200——定时器中断
1、CC3200一共有4组定时器,每组两个16位定时器,这两个可以串联成一个32位的定时器。2、每个定时器都有5种模式可供选择3、使用定时器的配置 在SDK中提供了很好的定时器配置函数可供调用,可以很方便的完成定时器的配置。(1)初始化定时器,包括定时器的时钟使能和复位。定时器属于外设,任何外设使用前都要经过这两部——时钟使能和复位。 MAP_PRCMPeriphe...
2019-01-15 10:58:38
1057
实用桌面万年历
2017-10-29
关于stm32系统定时任务的问题
2017-10-12
TA创建的收藏夹 TA关注的收藏夹
TA关注的人