加载中…
个人资料
天乐树
天乐树
  • 博客等级:
  • 博客积分:0
  • 博客访问:16,931
  • 关注人气:1,065
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
博文
标签:

机器人运动学

分类: Math
因工作需要,在机器人学上啃了一段时间。把几款主流的机器人研究了一遍,新生代的杜尔、ABB的编程和接口最简单,原生TCP坐标,但是很多客户用的是90年代日本的机器人,比如川崎、安川等。这里不对编程细节做解释,只讲讲一些基础的数学模型,便于机器人运动学开发工作。

1. 坐标变换
不管你用什么机器人,或是做计算机图形学的研究,都涉及到坐标变换问题。对于机器人编程来说,什么大地坐标系、机器人坐标系、工具坐标系、工件坐标系……其实他们在数学上可以看做一个位置矩阵不断的平移、旋转,而这个位置矩阵是由一个旋转矩阵和一个平移向量组成。在讲这个矩阵之前,我们先来看看什么是旋转矩阵:
旋转矩阵,是一个3*3的矩阵,从简单的数学上来看,一个点[Bx,By,Bz]我们绕x、y、z轴进行旋转,那么旋转后的位置[Ax,Ay,Az],可以写成:
Ax                            Bx
Ay = RotMatrix *     By
Az                           &nbs
分类: 分子模拟

昨晚在看Lammps前辈 Michael的博客,看到他《MATLAB计算平衡晶格常数》的博文,今早拿着Lammps的脚本算出来,后用他给的脚本在Matlab中运行,结果提示:

Warning: Polynomial is badly conditioned. Add points with distinct X values, reduce the degree of the polynomial, or try centering and scaling as described in HELP POLYFIT.

他博文中采用了8阶多项式插值,我们可以看到Lammps循环输出的数据点>9,因此多项式插值的方程数条件是满足的,那么问题出在哪呢?随后我将数据导入到cftool中,在没用smooth的前提下,发现高阶多项式插值效果都还不错。也就是说cftool的polyN和polyfit的算法还是不同的,同时高阶多项式插值是可以得到插值系数的。

多番尝试后,我将x轴的数据做了线性处理:x= (x-mean)./std(x)后,发现polyfit居然可以工作了。。。究其原因应该是在这套数据体系下,x的差别特别小,使得求解插值系数的矩阵病态。

 

这是修改后的代码:

 

分类: 试用手记

今天用G95编译器编译一些老的Fortran代码,额,之所以说老就是因为gfortran编译不了啊。。。。

结果报错:

​​ld: cannot find crt1.o: No such file or directory

ld: cannot find crti.o: No such file or directory

检查了 glibc 什么的都是正确的,只能说。。。 我勒个去了。。。其实这就是lib路径的引用问题,所以临时解决方法:

​​​ export LIBRARY_PATH=/usr/lib/x86_64-linux-gnu

反正不常用,编译完了就好~~


mxio

2014.10.5​​

 

(2014-09-24 19:23)
标签:

origin

分类: 试用手记

Origin自带的差分工具只能进行两列差分运算,当有多列Y值时,手动处理起来只能呵呵了~~


这个时候采用Origin的command窗口,进行循环处理是不二的选择。


输入:

loop(idx,2,wks.ncols)
{differentiate (WCol(1), WCol(idx));}

敲回车,效果如图:

标签:

教育

分类: openFEM

adaptmesh函数

ATh = adaptmesh(Th, func1,func2,...)

ATh: 生成的自适应网格; Th: 原始网格; funcN: 函数。

功能:当func的值梯度很大使,可使用adaptmesh进行网格Hessian自适应划分。

其他参数:

hmin,hmax: 最小,大网格尺寸;     err: P1插值误差默认值0.01; 

errg: 相对几何误差,默认值0.01,在默些情况下必须小于1/sqrt(2),由于几何的约束这一项可能使得某些网格尺寸小于-hmin。

nbvx: 网格划分生成的最大节点数,默认值9000;

nbsmooth: 平滑处理的次数,默认值5;

nbjacoby: 在一次平滑步中平滑计算的迭代步数,默认值6,设置为0为不平滑。

ratio: 平滑比例,当比例 0<=ratio<=1.1时不平滑,默认值1.8,当ratio>1.1时,网格变化速度受制于log(ratio)。这样有助于控制加密区域如激波区域或边界层的厚度。

omega: 平滑过程的松弛因子,默认值1;

iso: 加载到metric上的力为各项同性的,默认值:false;

abserror: 绝对误差,默认值false;

cutoff: 截断误差,默认1e-6;

verbosity: 信息标记;

inquire: 默认值f

标签:

comsol

matlab

教育

分类: Comsol

本人最近身体状态较差,受邀做一期Comsol with Matlab的专题视频,PPT早已做好,录视频估计还要给自己身体一段时间。见期望较高,就提前流出PPT吧。届时视频也在本页更新。

转载或套用请标明出处,谢谢!本页不做答疑。





标签:

jade

数据导入

教育

分类: 试用手记

这玩意不玩它就忘了,还是备忘下吧。

1. 导入图谱 File\Patterns并点击弹出窗口第一排工具条上的Import...

2. Import & Export of Foreign Ascii Pattern Files相关设置

这里的设置要根据你的ASCII文件,也就说TXT文件进行设置,假设我们拿到了这么一组数据:

这个文件的数据特点如下:

A. 数据起始行为第10行;

B. 每行一组数据:角度+衍射强度

C. 角度和衍射强度的分隔符为 空格 space

D. 角度数据在1-5列,强度数据从第7列开始,强度数据最大为5位数

标签:

fluent

chemkin

反应速率

单位

教育

分类: Chemistry

CHEMKIN机理导入后,发现速率常数全变了,那么他们是怎样变化的呢?

 

FLUENT中单位为 Kg mol s J 的SI单位,而CHMKIN默认单位为 g mol s cal单位。

这里先掰一下基元化学反应速率单位:(注意这里是基元反应)

基元反应通常最多可以写成:

A + B + C = D + E + F

因为三级以上的反应速率就很低了。

那么正向反应的速率为:

Rf = kf * cA * cB * cC

为方便解释单位,这里取SI单位制。

这里 R的单位组合永远都是 mol/(m^3*s).

那么对于三级反应的单位制来说就有:

mol/(m^3*s)= ? * mol/m^3 * mol/m^3 * mol/m^3

这样 kf的单位就是 : (m^3/mol) * (m^3/mol) /s

类比二级反应 kf 单位 (m^3/mol) /s

    一级反应 kf 单位  1/s

    零级反应 kf 单位  mol/m^3 /s

 

下面掰一下FLUENT和CHEMKIN的单位转换关系:

kf = A * (T/Tref)^beta * Exp(-Ea/R/T)

因为 (T/Tref)^beta * Exp(-Ea/R/T)这部分单位为 1,因此kf单位等同于 A。

 

标签:

chemkin

扩散系数

教育

分类: Chemistry

其实公式很简单,只是遇上谢耳朵的问题,单位啊!

二元扩散系数是温度T和压力P的函数,表达为:


                                              标准计算单位

D_ij      组分的扩散系数                      单位 m^2/s

kB        玻尔兹曼常数   kB = 1.380648813e-23 单位 [J/K]

NA  &n

标签:

vba

教育

分类: 试用手记

描述: 在Excel VBA运行自定义宏时,有时可能会去调用其他文件比如Excel文件中定义的宏,在Office2013中貌似不能用打开的宏名直接调用。因此,你需要用Application.Run 去调用它。

实现:首先确保你的信任中心中关于宏设置,是启用所有宏,并信任VBA工程对象模型访问。

然后下面是个例子:

建立一个带宏的Excel文件,插入一个模块:

Sub test_hello()

 

  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有