三个火柴盒迷你模型吧,解释CrossFit为什么会火

[转载]COMSOL建立复杂模型:将地形数据导入COMSOL的一种方法
COMSOL建立复杂模型:将地形数据导入COMSOL的一种方法
作为实例,我们的模型是日本本州岛的模型。假设本州岛厚5km,其周围海洋也是5km。下面是25km的地壳。
具体步骤如下:
& & 1.下载海岸线数据。数据格式是经纬度坐标。
& & 2.将数据转换到直角坐标系,保存成xy两列数据。
可以看出,经过上面三个步骤得到的地图非常精细,特别是一些尖角,对于有限元划分网格是不利的。需要我们用手动进行“粗化”。即用polygon描绘一个大概的边界,化曲为直。
& & 3.新建一个三维COMSOL,在Geometry中选择Polygon。在Polygon菜单下:Object Type为Solid或者open
curve或者closed
curve;Coordinates的Data
source为table方式,然后选择事先转化好的数据,点击将其导入。这一步主要是为下一步手动粗化做准备的,所以选择Solid或者open curve或者closed curve都可以。另外,table方式比File直观,比vectors输入快捷。用户界面如图1所示。
4.&点击Model Builder中的Geometry,菜单栏会出现建模用的一些快捷键,此时我们选择直线快捷键,然后用鼠标左键在Graphics窗口沿着由前三步生成的精细海岸线轮廓,开始“粗化”。只需要注意的是,在手动描绘完轮廓的终点是你描绘的起点,即这个粗化的轮廓要闭合,终点用鼠标右键。切记只有在最后才能点点键,否则功亏一篑。在描绘过程中,你需要使用放大缩小功能,用鼠标左键点击它们就可以了,只要别误点了右键就行。
第四步之后,我们得到图2。
重要的一点是,我们还需要检查这个粗化的模型的边缘是否水平或者竖直。由于这些边缘是手动描绘的,难免会出现不水平或者不是竖直的。一旦不水平或不竖直,它们就会与你的计算区域边界有一定的夹角,通常这些夹角都是非常小的,那么这对后续工作产生影响,轻则网格质量过低,重则使解不收敛。所以,你需要放大这个粗化的模型,用measurement来检查边缘线端点的坐标,使它们在一条直线上。检查坐标也是一件细致活儿,不过还好,因为你从原始的成千上万个点简化至几十个点,然后从这几十个点中去寻找这些边缘点的坐标,也不会花费你多少眼力和精力。
从图中的菜单可以看出,这样生成的模型是Polygon且是Solid型的。而且,它只是一个平面solid。
5.&将这个粗化的模型导出保存成honshu44p.mphbin文件。
6.&新建一个三维comsol文件。在geometry里选择workplane, 然后将honshu44p.mphbin导入。此时检查,导入的模型的左下角的坐标是否是坐标原点,这样有利于下一步建模。如果不是,就用move功能,移动相应坐标即可。
&&&&到此,细致的活儿已经做完,接下来的一些步骤只是使用一些简单的workplane和extrude功能,就可完成我们所需的模型。
7.&拉伸workplane1到z=-5km。
8.&新建一个workplane2,&在里面用corner方式建立一个矩形,使恰好包围honshu44p.mphbin。这只要检查honshu44p.mphbin的最北点和最东点就可以确定rectangle的width和length。
9.&用extrude拉伸workplane2到z-5km.
10.&在z=-5km处新建workplane3,&拉伸-25km.&&最后,生成的模型如图3.
附件1:将经纬度坐标转化为直角坐标。
&& function [xy] =
llh2localxy(llh,ll_org)
&%llh存放的是经纬度坐标,分为两行。第一行是纬度lat,第二行是经度lon。
%ll_org是你自定义的坐标原点的经纬度。它只有两个元素,第一个元素是自定义坐标原点的经度,第二个元素是自定义坐标原点的经度。
&& [rows, nsta] =
size(llh);
&& % change from decimal
degrees to decimal seconds
&& lat = 3600.0 *
&& lon = 3600.0 *
&& Lat_Orig = 3600.0 *
ll_org(1);
&& Diff_long
&= 3600.0 * ll_org(2)*ones(size(lon)) -
zeros(nsta,2);
& &xy(i,:) = polyconic(lat(i),
Diff_long(i), Lat_Orig);
&& % convert units from
meter into kilometer and flip x-axis
& &xy(:,1) = -xy(:,1) /
& &xy(:,2) =
&xy(:,2) / 1000.0;
&& function [xy] =
polyconic(Lat, Diff_long, Lat_Orig)
%& Polyconic Projection
= Latitude (decimal seconds)
Diff_long&&& =
Differential Longitude (decimal seconds)
%&&&&&&&&&&&&&&
relative to Central Meridian
Lat_Orig& = Latitude of Origin (decimal
%& Output: x =& Distance
from Central Meridian
y =&& Distance from Origin to
& & if p2==0
& p2=10^-10;
&arcone = 4.;
&esq = 6.;
&a4 = 34.4187;
&a6 = .0454;
&a8 = 6.0e-5;
= p2 - p1;
sinp2 = sin(p2 * arcone);
cosp2 = cos(p2 * arcone);
theta = il * sinp2;
= sqrt(1.0 - (esq * (2. * sinp2))) / (la * arcone);
cot = cosp2 / sinp2;
= (cot * sin(theta * arcone)) / (a * arcone);
ipr = ip *
= ((p2 + p1) / 2.)*
= ((((a0*ipr) - ((a2*cos(2.*pr))*sin(ipr))) +
((a4*cos(4.*pr))*sin(2.*ipr))) - ((a6*cos(6.*pr))*sin(3.*ipr))) +
((a8*cos(8.*pr))*sin(4.*ipr));
&& xy = [x,
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 火箭模型手工制作步骤 的文章

 

随机推荐