找回密码
 注册
Simdroid-非首页
查看: 40|回复: 8

[建模和网格划分] 關於運算子結果之精度控制

[复制链接]
发表于 2013-8-9 11:49:00 | 显示全部楼层 |阅读模式 来自 台湾
本帖最后由 黃的 于 2013-8-9 13:38 编辑

各位前輩

在檢查模型幾何時
常常會發現座標或點距出現E-10次方以上之小數不正常位數
以下是模型之不正常距離
發生在點36~45,距離DY=..E-16

但實際上這2(4)點都是在同Y平面



而根據檢查
問題出在RY0 = 9.3/2-0.3-rL/2之運算式
若以  RY0 =           3.89替代則無此問題
因此懷疑運算式RY0結果隱含...E-16之不正常位數

想請問是否有辦法消除?或是直接控制所有運算子結果之精度呢?

謝謝!

<碼>
     rW=               1
     rL =           0.92
     rH =          0.015
    AgW=             1.3
    AgL =           0.25
    AgH =          0.011
      H =            0.6
    RX0 =              0
    RY0 = 9.3/2-0.3-rL/2
!    RY0 =           3.89
   AgX1 =              0   
   AgY1 =          4.475   
   AgX2 =              0   
   AgY2 =          3.305   


/prep7
K,25, AgX1-AgW/2, AgY1-AgL/2,     H
K,26, AgX1-AgW/2, AgY1+AgL/2,     H
K,27, AgX1+AgW/2, AgY1+AgL/2,     H
K,28, AgX1+AgW/2, AgY1-AgL/2,     H
K,29, AgX1-AgW/2, AgY1-AgL/2, H+AgH
K,30, AgX1-AgW/2, AgY1+AgL/2, H+AgH
K,31, AgX1+AgW/2, AgY1+AgL/2, H+AgH
K,32, AgX1+AgW/2, AgY1-AgL/2, H+AgH

K,35, AgX2-AgW/2, AgY2-AgL/2,     H
K,36, AgX2-AgW/2, AgY2+AgL/2,     H
K,37, AgX2+AgW/2, AgY2+AgL/2,     H
K,38, AgX2+AgW/2, AgY2-AgL/2,     H
K,39, AgX2-AgW/2, AgY2-AgL/2, H+AgH
K,40, AgX2-AgW/2, AgY2+AgL/2, H+AgH
K,41, AgX2+AgW/2, AgY2+AgL/2, H+AgH
K,42, AgX2+AgW/2, AgY2-AgL/2, H+AgH

K,45,   RX0-rW/2,   RY0-rL/2,     H
K,46,   RX0-rW/2,   RY0+rL/2,     H
K,47,   RX0+rW/2,   RY0+rL/2,     H
K,48,   RX0+rW/2,   RY0-rL/2,     H
K,49,   RX0-rW/2,   RY0-rL/2,  H+rH
K,50,   RX0-rW/2,   RY0+rL/2,  H+rH
K,51,   RX0+rW/2,   RY0+rL/2,  H+rH
K,52,   RX0+rW/2,   RY0-rL/2,  H+rH
























本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
发表于 2013-8-10 21:35:13 | 显示全部楼层 来自 四川成都
Simdroid开发平台
控制结果小数位的就可以避免
回复 不支持

使用道具 举报

 楼主| 发表于 2013-8-12 09:15:20 | 显示全部楼层 来自 台湾
ldhltw 发表于 2013-8-10 21:35
控制结果小数位的就可以避免

請問控制小數位數指令是?

謝謝!
回复 不支持

使用道具 举报

发表于 2013-8-13 10:55:00 | 显示全部楼层 来自 四川成都
回复 不支持

使用道具 举报

 楼主| 发表于 2013-8-13 13:39:40 | 显示全部楼层 来自 台湾
ldhltw 发表于 2013-8-13 10:55
http://wenku.baidu.com/view/501d931352d380eb62946d7c.html

版主你好
非常謝謝你的建議

只是測試過這些指令:
/GROPT
/FORMAT
/GFORMAT
發現仍無法改變"運算子結果"之實際數據小數位數

後來將這些需要運算的算式寫入檔案(RY0 =(9.3/2-0.3-rL/2))再讀出
利用*vwrite與/input
發現確實有運算後之錯誤位數(RY0=    3.890000000000000568)
透過控制寫入檔案之位數方能消除不正常之位數
同時也發現更多錯誤存在: 只要有運算的公式就有機率存在不正常位數(如RY0+rL/2...等)
這不知道是否為ANSYS之BUG?
只是有時後不同點之不正常位數剛好相同, 而使點距為0(錯+錯=對)

後來透過控制精度寫入檔案 :所有變數以及運算子結果(賦予變數代號) 後 在讀檔 解此問題



以下是寫入其中1個變數之例:
(異常點距36~45變成正常,正常點距25~46變成異常. 起因乃運算子結果位數異常)
  
FINISH
/CLEAR

!/GROPT,VIEW,ON
!/GROPT,STAT

!/FORMAT,,F,18,6
!/GFORMAT,F,10,3
!/GFORMAT,DEFA
     rW=               1
     rL =           0.92
     rH =          0.015
    AgW=             1.3
    AgL =           0.25
    AgH =          0.011
      H =            0.6
    RX0 =              0
    RY0 =(9.3/2-0.3-rL/2)
!    RY0 =           3.89
   AgX1 =              0   
   AgY1 =          4.475   
   AgX2 =              0   
   AgY2 =          3.305   

!asd =      RY0
!asd = RY0-rL/2
!asd = RY0+rL/2

*cfopen,temp,txt
*vwrite,RY0
('RY0='f10.6)
!('RY0='f24.18)
*cfclos
/input,temp,txt

/prep7
K,25, AgX1-AgW/2, AgY1-AgL/2,     H
K,26, AgX1-AgW/2, AgY1+AgL/2,     H
K,27, AgX1+AgW/2, AgY1+AgL/2,     H
K,28, AgX1+AgW/2, AgY1-AgL/2,     H
K,29, AgX1-AgW/2, AgY1-AgL/2, H+AgH
K,30, AgX1-AgW/2, AgY1+AgL/2, H+AgH
K,31, AgX1+AgW/2, AgY1+AgL/2, H+AgH
K,32, AgX1+AgW/2, AgY1-AgL/2, H+AgH

K,35, AgX2-AgW/2, AgY2-AgL/2,     H
K,36, AgX2-AgW/2, AgY2+AgL/2,     H
K,37, AgX2+AgW/2, AgY2+AgL/2,     H
K,38, AgX2+AgW/2, AgY2-AgL/2,     H
K,39, AgX2-AgW/2, AgY2-AgL/2, H+AgH
K,40, AgX2-AgW/2, AgY2+AgL/2, H+AgH
K,41, AgX2+AgW/2, AgY2+AgL/2, H+AgH
K,42, AgX2+AgW/2, AgY2-AgL/2, H+AgH

K,45,   RX0-rW/2,   RY0-rL/2,     H
K,46,   RX0-rW/2,   RY0+rL/2,     H
K,47,   RX0+rW/2,   RY0+rL/2,     H
K,48,   RX0+rW/2,   RY0-rL/2,     H
K,49,   RX0-rW/2,   RY0-rL/2,  H+rH
K,50,   RX0-rW/2,   RY0+rL/2,  H+rH
K,51,   RX0+rW/2,   RY0+rL/2,  H+rH
K,52,   RX0+rW/2,   RY0-rL/2,  H+rH












回复 不支持

使用道具 举报

发表于 2013-8-13 21:16:36 | 显示全部楼层 来自 四川成都
无论您保留即为,ansys在进行内部计算时仍然按照系统的默认进行计算
仅仅在显示数据时位数显示问题
回复 不支持

使用道具 举报

 楼主| 发表于 2013-8-14 09:12:22 | 显示全部楼层 来自 台湾
ldhltw 发表于 2013-8-13 21:16
无论您保留即为,ansys在进行内部计算时仍然按照系统的默认进行计算
仅仅在显示数据时位数显示问题 ...

謝謝版主!

所以下式:
rL =           0.92
RY0 =(9.3/2-0.3-rL/2)
ANSYS算成RY0=    3.890000000000000568
應是無法從根本上解決的問題?
回复 不支持

使用道具 举报

发表于 2013-8-14 16:31:48 | 显示全部楼层 来自 四川成都
rL =           0.92
RY0 =(9.3/2-0.3-rL/2)


NAME                              VALUE                        TYPE  DIMENSIONS
RL                               0.920000000                    SCALAR
RY0                               3.89000000                    SCALAR

我这边计算结果就是您那个需要的结果呀
回复 不支持

使用道具 举报

 楼主| 发表于 2013-8-14 17:52:19 | 显示全部楼层 来自 台湾
本帖最后由 黃的 于 2013-8-14 18:19 编辑
ldhltw 发表于 2013-8-14 16:31
rL =           0.92
RY0 =(9.3/2-0.3-rL/2)

版主妳好

例用*Vwrite控制寫入位數可以看到在第16位有不正常位數
其他靠ANSYS計算的也有"機率"出現此問題(出現規則不明)
(在5#碼)

PS. 補充:軟體版本ANSYS 14.5*64bit+WIN7*64bit
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-9-24 15:26 , Processed in 0.034351 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表