代码整洁之道
时刻保持初心,保持代码整洁
变量命名规则
名副其实,见名知意
避免误导
做有意义的区分
使用读的出来的名称
使用可以搜索的名称
避免使用编码
成员前缀
匈牙利语标记法
避免思维映射
类名
类名和对象名应该是名词或名词短语
类名不应当是动词
方法名
方法名应当是动词或动词短语
别扮可爱
每个概念对应一个词
别用双关语
使用解决方案领域的名称
给这些事取个技术性的名称,通常是最靠谱的做法。
使用源自所涉问题领域的名称
添加有意义的语境,不要添加没用的语境
函数的定义规则
短小 函数的第一规则是要短小。第二条规则是还要更短小。
只做一件事
每个函数一个抽象层级
switch语句
使用描述性的名称
函数参数
最理想的参数数量是零(零参数函数),其次是一(单参数函数),再次是二(双参数函数),应尽量避免三(三参数函数)。有足够特殊的理由才能用三个以上参数(多参数函数)—所以无论如何也不要这么做。
标识参数丑陋不堪。向函数传入布尔值简直就是骇人听闻的做法。这样做,方法签名立刻变得复杂起来,大声宣布本函数不止做一件事。如果标识为 true 将会这样做,标识为 false 则会那样做 ...
git
前言git 是一个十分强大的远程项目管理的系统,对于开发者来说十分重要,它的版本管理功能也十分强大,而且存储空间也有 1GB,还算挺大的。
本人曾在一次事故中磁盘损坏导致丢失了自己做的项目,熬夜半年多完成的心血,很心痛。。。
所以在这里告诫大家, 一定要做好备份
SSH与githubSSH(安全外壳协议,Secure Shell 的缩写)是建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议,利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。简单来说,SSH就是保障你的账户安全,将你的数据加密压缩,不仅防止其他人截获你的数据,还能加快传输速度。
一般来说,安装 git bash 之后实际上是自带 SSH 的,所以可以检验一下,在终端输入指令 ssh 会显示出 usage 的内容,那就是装好了,有问题的话,可以自行百度一下。
没问题了就可以输入指令 ssh-keygen -t rsa ,使用 RSA 算法生成密钥,然后,如下
其中 红色圈里面是输入保存的地址,蓝色圈里输入的是 passphrase,可以不输入,直接回车就行。最终去 ...
双轮足式机器人控制器设计
github开源仓库
注意方向问题!意方向问题!方向问题!向问题!问题!题!,以下所有分析皆是顺时针为正
单侧系统状态方程求解首先双轮足式机器人可以将模型化简为一个倒立摆模型,如下
分块开始分析
轮子
水平方向上
m_w\ddot{x}=f-N_w竖直方向上
F_N=P_w+G转矩
I_w\frac{\ddot{x}}{r}=T_w-fr联立消去 $f$ 得到
\ddot{x}=\frac{T_wr-N_wr^2}{I_w+m_wr^2}~~~~\textcircled{1}摆杆
水平方向上
m_l(\ddot{x}+\frac{\partial^2}{\partial t^2}L_w\sin\theta)=N_w-N_b~~~~\textcircled{2}竖直方向上
m_l\frac{\partial^2}{\partial t^2}L_w\cos\theta=P_w-P_b-m_lg~~~~\textcircled{3}转矩
I_l\ddot{\theta}=T_b-T_w+(P_bL_b+P_wL_w)\sin\theta-(N_bL_b+N_wL_w)\cos ...
MPC模型预测控制
github仓库
最优化控制研究动机
在一定的约束条件下达到最优的系统表现,最优是综合分析的最优
代价函数与评判标准
对于单输入单输出系统控制,e(t)为误差, u(t)为输入
当 $\int_0^te^2dt$ 最小时,就可以保证系统的追踪性很好
当 $\int_1^tu^2dt$ 最小时,可以保证系统的输入最小,能耗最低
控制过程的代价函数
J = \int_1^t(qe^2+ru^2)dt 目的就是设计一个u使J达到最小值
q和r就是我们可以调节的参数,如果 $q>>r$ 那么就是设计过程更加注重误差,如果 $r>>q$的话,就是设计过程更加注重能耗最低
对于多输入多输出的系统控制中
$\frac{dx}{dt} = Ax +Bu$ x是系统的状态变量
$Y=Cx$ Y就是系统的输出
代价方程就是
J = \int_0^t(E^TQE + u^TRu)dt 一个栗子:
$\begin{bmatrix} y_1 \\ y_2\\ \end{bmatrix} = \begin{bmatr ...




