- 积分
- 0
- 注册时间
- 2011-1-2
- 仿真币
-
- 最后登录
- 1970-1-1
|
发表于 2014-4-28 14:36:52
|
显示全部楼层
来自 上海
1. 我一直以为DRESP2可以引用DRESP3的响应,原来不可以;其实我原来的思路中最后约束DRESP2是没办法实现的,因为DRESP2不能利用DRESP3计算得到的响应进行表达式运算的。还是得直接在DRESP3中计算 Res/(x+y)或Res/(x-y),实际就是计算Res/UB_Res或Res/LB_Res;
2. 我一直是纸上谈兵,没有实际去实现。为了最终CLOSE掉这个话题。我还是做了一个实例让你看一下。例子是一个悬臂梁(10个梁单元)做的size optimization. 以下是一些描述:
Descriptions:
(0), 11 nodes, ten beams are defined, node ID=1 is fixed, node ID=11 is applied a concentrated force in Y direction;
(1), Ten CBEAM elements(EID=1,2,3,...,10), and each element refernces a separate PBEAML property(PID=1,2,3,...,10), ten PBEAML cards in all;
(2), All beam section types are TUBE;
(3), DESVAR id = 1,2,3...,10 are PBEAML(DIM1);
(4), DESVAR id = 11,12,13,...,20 are PBEAML(DIM2);
(5), DRESP2 id = 11,12,13,...,20 are (DIM1 - DIM2); This is YOUR "Res"
(6), DRESP3 id = 31,32,33,...,40 are (DIM1 - DIM2) / UB_Res;
(7), DRESP3 id = 41,42,43,...,50 are (DIM1 - DIM2) / LB_Res;
(8), DRESP1 id = 1, is DISPlacement(TY) on node 11, objective is to minimize this response;
(9), DRESP1 id = 2, is total mass, this response is one of constraints.
(10) if 18.0 < Dvr <= 20.0 , 9.0 < Res <= 10.0
if 16.0 < Dvr <= 18.0 , 8.0 < Res <= 9.0
if 14.0 < Dvr <= 16.0 , 7.0 < Res <= 8.0
if 12.0 < Dvr <= 14.0 , 6.0 < Res <= 7.0
if 10.0 < Dvr <= 12.0 , 5.0 < Res <= 6.0
if 8.0 < Dvr <= 10.0 , 4.0 < Res <= 5.0
if 6.0 < Dvr <= 8.0 , 3.0 < Res <= 4.0
if 3.9 < Dvr <= 6.0 , 2.0 < Res <= 3.0
where,
Dvr is DIM1 (DESVAR id = 1,2,3,...,10)
Res is DIM1 - DIM2 ( DRESP2, id = 11,12,13,...,20)
你可以仔细看一下这个例子。我附上了FEM模型文件和HyperMath的function
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册
×
|