gcf 发表于 2017-1-11 16:47

迭代

怎样通过脚本实现给不同的实体赋值初始温度?有大神可以指导一下?

panda8866 发表于 2017-1-12 08:43

Call getDocument().setParameter("ComponentName", "Temperature", "40", infoNumberParameter)

最方便的方法是先在图形界面内按照正常的步骤进行初始温度的设置,然后在Help菜单下,有一个View Session log选项,点击该选项会打开一Notepad文档,其中记录了对应您之前所做的温度设置操作的脚本。详细的脚本命令说明,可在Help文档里查询。通常,View Session log 是最简单最好的学习脚本的方法之一。

gcf 发表于 2017-1-12 09:22

panda8866 发表于 2017-1-12 08:43
Call getDocument().setParameter("ComponentName", "Temperature", "40", infoNumberParameter)

最方便 ...

在用thermnet计算温度场时,每次计算的温度,作为下一次计算的初始温度,通过脚本可以实现?另外,采样温度时是进行取点采样,导出的excel或着别的文件可以直接导入thermnet,作为各个实体的初始温度?具体该怎么实现呢?

panda8866 发表于 2017-1-13 08:04

不好意思,不是很明白楼主的问题。如果是瞬态分析,每一计算步都是使用前一计算步的温度结果。但静态好像又没多大意义。所以可否解释详细一点。

gcf 发表于 2017-1-13 19:01

panda8866 发表于 2017-1-13 08:04
不好意思,不是很明白楼主的问题。如果是瞬态分析,每一计算步都是使用前一计算步的温度结果。但静态好像又 ...

计算的是带运动的模型,同时要考虑加热材料的变化。magnet和thermnet进行运动仿真的时候不能实现材料参数的变化,每次计算之后都需要改变模型,所以需要先把计算出来的温度数据导出来然后重新赋值给实体,作为下一次计算的初始温度。现在我所遇的的问题就是把计算结果以Excel或者别的文件导出来之后,如何再将这些数据导入软件作为初始温度,进行下一步计算。

panda8866 发表于 2017-1-13 23:42

谢谢楼主的解释,现在大致明白了。 这里还有点问题想请教下: 您所说的材料参数化是什么意思?我猜想您说的是当温度变化时,材料属性随之变化,从而影响到电磁分析的损耗计算。如果是那样,您可以在MagNet中定义多个温度下的材料属性,比如常见的电导率,永磁铁的相对磁导率。至于steel 的磁化曲线,个人认为受温度影响不大。一旦定义了不同温度下的材料属性,coupling仿真时是会考虑材料属性变化的。如果上述不是您所需要的,请再解释下。另外,还有个方法叫Material property override ,如下是个简单的脚本例子,具体API使用可能还需查看文档。

      'Clear the existing property field
      Call getDocument.setSolverPropertyField("your component", infoSolverPropertyFieldIdTemperature)

      ' Override the Temperature property on the component.
               
      Set Mesh=getDocument().getSolution().getMesh(SolutionId, "your component")
      Set Field= getDocument.getSolution().getSystemField(Mesh, "Temperature")      
      
      'Set the Temperature data for the "your component"
      Call Field.getFieldData(ScalarData)
      
      For i = 0 To ubound(scalarData)
               
                ScalarData(i) = "your temperature"               
      Next
      Call Field.setFieldData(ScalarData)

      ' call to override the temperature property on the component
      Call getDocument.setSolverPropertyField(Field, infoSolverPropertyFieldIdTemperature)      

gcf 发表于 2017-1-14 18:28

首先,先谢谢大神的回复。在不考虑运动的情况下,材料属性变化正如你上面所说的,但是我计算的模型需要考虑运动。再用magnet和thermnet进行联合仿真的时候,如果考虑运动,软件会以计算的初始温度下的材料属性进行整个过程的计算,而我希望达到的是在运动过程中同样能使材料的属性随温度的升高而变化。我现在想实现的目标就是将上一步计算的结果以Excel形式导出,如何才能将这个Excel文件中得温度值,赋予模型中的各个实体,作为初始温度进行先一步计算?

panda8866 发表于 2017-1-17 01:37

“大神”实在不敢当,也就是新手入门,相互学习。就我所知,在做运动体的联合仿真,电磁求解是会根据温度求解更新的。比如,首先完成电磁分析(运动瞬态)求解得到平均损耗,然后使用平均损耗完成一步温度求解,所得部件温度会在下一步电磁分析中更新,并在更新的温度下进行电磁求解,如此反复。而在每一运动瞬态分析求解过程中,部件温度是不变的。这是因为一般来说,温度时间常数远大于电气时间常数。但在某些特别的应用中, 可能温度常数和电气常数相当,所以需要在运动瞬态分析的每一时间步更新温度。如果是这样的话,那么我之前所说的Material property override(材料属性覆盖方法)可能有用,也就是每一电磁分析时间步和每一温度分析时间步的耦合,其中需要每次更新后Resume求解。不过目前好像听说ThermNet有个缺陷,Resume功能不容许材料属性覆盖。可能要等到下个更新版本了。

gcf 发表于 2017-2-19 16:18

panda8866 发表于 2017-1-17 01:37
“大神”实在不敢当,也就是新手入门,相互学习。就我所知,在做运动体的联合仿真,电磁求解是会根据温度求 ...

多谢指教了!还有一个问题就是在计算磁场的时候,计算结果显示的B的云图,其数值的单位是什么?

panda8866 发表于 2017-2-19 23:09

所有场图结果使用的是SI 单位。 “B” 的单位为 T.
页: [1]
查看完整版本: 迭代