24/09/2017 – Optimal Design of Machine – 机械优化设计

本科期间有门专业课老师的研究方向是机械优化设计,不过因为此内容并不是当时的课程内容,所以老师只是大概提了一下优化设计的例子。这个例子与冲压有关,在单位面积的板材上,如何布局冲压位置,尽可能地冲压出更多的产品,也就是使板材的利用率达到最大,边角料达到最少,这个“排样”工作,就是一种优化设计。

这个概念我一直记着,但是并未系统地去了解。后来初步阅读了一些参考资料清单,发现优化设计确实是一个巨大的研究方向,也有很多内容扎实的材料可供自学。其中就包括孙靖民著《机械优化设计》等。

浏览这些资料后,基本建立起了机械优化设计的概念框架,就是将实际机械设计问题数学模型化,选取适当的优化数学算法,输入计算设备(计算机)求解,得到优化设计结果。

整个优化设计的核心主要是两点,一是使用函数等对实际设计问题进行数学建模,而是针对问题的类型选用优化算法。

所以这两个方面也将是学习的重点。

24/09/2017 – ANSYS Logs 1 – ANSYS随记1

得益于个人日程管理方法的改进,博客更新内容的来源得以保证,撰写博客的时间也得到了扩展,所以本周决定集中写几篇日志。在以后的日子里争取做到当天有点子,当天写日志,避免出现周末日志扎堆的情况。

进入本篇正题。

其实ANSYS在本科就有接触,然后硕士第一年的时候因为课程内容,又把静力学分析的基本方法学了一次。但是ANSYS是个强大的工具,其内容绝非这么简单。

为了学习这个工具,也看了一些资料,但都不够系统。后来在归纳总结中基本意识到了ANSYS的知识构架。

学习ANSYS主要有三个方面,第一个方面是以分析步骤分类的方法,第二个方面是以分析内容分类的方法,第三个方面是二次开发。

市面上绝大多数自学、教学材料大都以分析内容分类,静力学,动力学,热力学,流体……每一种分析内容提供些许操作例子。以这种方式学习,虽然能快速上手ANSYS的基本操作,当并未触及ANSYS使用的核心操作——分析内容的参数和理论的模型化。

而以分析步骤进行分类学习,则必须了解参数和理论的本质,然后选取适当的ANSYS模型,创建分析流程,得出分析结果。按照分析步骤来看,ANSYS的学习内容主要有:

  • 网格划分方法
  • 单元类型选取
  • 材料模型(参数)的选取和设置
  • 约束和载荷的设置
  • 求解器的选取和设置
  • 后处理器的选取和设置

这些大项下就涵盖了ANSYS乃至有限元分析最核心的内容。当每一大项内容都理解透彻后,才能成为一个合格的ANSYS分析人员,将ANSYS应用到特异化的项目当中去,根据特定项目的特定参数依次选用最适当的模型和参数,得到最接近实际情况的分析结果。而不是尝试寻找相似的分析例子并生搬硬套其分析步骤。

针对各个分析步骤,其实也有许多实用的材料和工具,尤其是各种使用手册和释义表,透彻地解释各个参数、模型的本质。

在彻底学习ANSYS的原理和使用方法后,才有可能进行二次开发的学习。

17/11/2016 – Darcy Friction Factor Checker – 达西摩擦系数查询器

(English version follows Chinese Part)

其实这个就是之前谈过的莫迪图查询器, 但是后来因为学习上比较忙,就没怎么研究。这两天看了一下,似乎并不需要做莫迪图查询器这么复杂,只需要根据输入参数代入逼近公式运算就可以得到所求摩擦系数。具体需要利用JavaScript来实现,通过输入的参数,在服务器端按照逼近公式计算,显示运算结果。

Actually, it is the moody chart checker I have mentioned before, but I was too busy for my courses to think about how to develop the checker. In these few days I found that there is no need to build a chart checker, a web calculator will work. Input necessary values and calculate with equation approximation, the display the result on the page. JavaScript will be used to develop the calculator.

按照Darcy friction factor formulae中提供了很多种逼近公式。

Darcy friction factor formulae shows many equation approximations.

首先尝试了一下Alashkar公式。

Try the Alashkar equation.

20161117-darcy-friction-factor

运算部分的JS中代码大概如下:

Calculation part of the JS code:

[code language=”javascript”]

function cal(form)
{
var a=Number(form.a.value);
var b=Number(form.b.value);
var c=Number(form.c.value);
var d=a/(b*3.7065);
var e=2.5226/c;
var f=1.665368035*e;
var g=Math.pow(f,0.8373492157);
var h=d+g;
var i=Math.log(h);
var j=e*i;
var k=0.8784893582*j;
var l=d-k;
var m=Math.log(l);
var n=e*m;
var o=0.8686068432*n;
var p=d-o;
var q=Math.pow(o,-2);
var r=Math.log(q);
form.s.value = 1.325474505*r;
}

[/code]

然而求出来的结果似乎并不对。还需要再研究研究。

It works but the result is strange, more research to do.

21/09/2016 – Moody Chart Checker – 莫迪图查询器

(English version follows Chinese Part)

这个学期在上空气动力学这门课,其中很多计算涉及到查询莫迪图。我在想能不能弄个网页版的莫迪图查询器帮助提高效率。具体实现方法可能要参考公差查询器,用excel数据表来记录离散的莫迪图线的值,或者更加复杂的方法。先在这里提出一个设想。

I have a course this semester, which is aerodynamics. Large parts of calculations are based on checking moody chart. I am considering about set up a web-base checker to assist my calculating efficiently.  Maybe similar method from tolerance checker is applied. Discrete points of moody chart recorded in excel and read by php. Or more complicated. Mark here.

10/04/2016 – Plus-minus Notation Display Failure – 正负号显示问题

>Tolerance Checker Development Log – 极限偏差查询器开发日志<

最近的主要工作室录入极限偏差数据库,一直都进展的比较顺利,但是今天录入到JS/js公差带的时候遇到了一点问题,JS/js带的极限偏差是±值,一般比较便捷的记法就是±x,但是我以此格式录入的数据库最后查询出来发生了错误,显示如图1。

What I am doing recently is recording data, there was no problem until plus-minus notation display failure came out. When I met the JS/js tolerance zone, numbers are displayed  with ‘±’ ahead, which is like ±x. But the plus-minus notation became ‘?’ as Fig.1.

20160410-Plus-minus Notation Display Failure

图.1(Fig.1)

目前我猜测的可能是在查询的某个环节出了问题:

I think it must be an error at following stage:

  1. php excel reader工具不支持正负号;
  2. 字符集对正负号的支持问题;
  3. 查询器默认字体或者字体库的支持问题。
  1. php excel reader does not support plus-minus notation;
  2. character set does not support plus-minus notation;
  3. fonts of the checker/page do not support plus-minus notation.

由于这个问题无伤大雅,我暂时用比较简单的办法略过这个问题:用+/-来代替±。

Nevertheless, it is not a serious error and I decide to replace the ‘±’ with ‘+/-‘ temporarily.