模型半径计算
函数描述
计算模型半径,步长LHX=0.005。
参数
- Lmm:模型总长度(mm)。
- Rnmm:空化器半径(mm)。
- Part:每节的无量纲长度。
- BaseR:每节末端半径的无量纲数。
- Ncon:模型节数。
返回值
- Rmstr:模型半径数组(无量纲)。
计算公式
1. 初始化变量
- 模型总长Lmm
- 空化器半径Rnmm
- 描述部件位置的数组Part(每节的无量纲长度)
- 每一节末端的无量纲半径BaseR
- 模型节数Ncon
2. 计算模型半径
初始化模型半径数组Rmstr:
Rmstr=zeros(201)
计算模型总长与空化器半径的比值:
work=RnmmLmm
计算每一步的模型半径:
xi=(i−1)×0.005for i=1,2,…,201
对于每一步i:
- 如果xi≤Part[0]+0.0025:
Rmstr[i]=1.0+xi×(Part[0]BaseR[0]×work−1.0)
- 否则:
Rmstr[i]=BaseR[j−1]×work+(xi−Part[j−1])×(Part[j]−Part[j−1]BaseR[j]−BaseR[j−1])×work
其中j是满足xi≤Part[j]+0.0025的最小索引。
3. 返回值
返回无量纲半径数组Rmstr。
python 代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| def ModelRadii(self): """ 计算模型半径,步长 HX / L = 0.005。
参数: Lmm (float): 模型总长度(mm)。 Rnmm (float): 空化器半径(mm)。 Part (list of float): 每节的无量纲长度。 BaseR (list of float): 每节末端半径的无量纲数。 Ncon (int): 模型节数。
返回: Rmstr (list of float): 模型半径数组(无量纲)。 """ Lmm = self.Lmm Rnmm = self.Rnmm Part = self.Part BaseR = self.BaseR Ncon = self.Ncon
Rmstr = np.zeros(201) work = Lmm / Rnmm
for i in range(1, 201): xi = (i - 1) * 0.005 if xi <= Part[0] + 0.0025: Rmstr[i] = 1.0 + xi * (BaseR[0] * work - 1.0) / Part[0] else: for j in range(1, Ncon): if xi <= Part[j] + 0.0025: Rmstr[i] = BaseR[j - 1] * work + (xi - Part[j - 1]) * (BaseR[j] - BaseR[j - 1]) * work / ( Part[j] - Part[j - 1]) break self.Rmstr = Rmstr
|