📄 surfacearea.desc.ol0
字号:
MDOLVersion: 8.0
CompilerOptions: warn
Task Task1
TaskHeader Task1
Version: 1.0
Evaluation: single
ControlMode: user
RunCounter: 2
BoundsPolicy: adjustvalue
CheckPoint: unknown
End TaskHeader Task1
Inputs Task1
Parameter: BaseDiameter Type: real InitialValue: 10.0
Parameter: Length Type: real InitialValue: 25.0
End Inputs Task1
Outputs Task1
Parameter: SA Type: real
End Outputs Task1
MATLAB MATLAB0
WorkSpace: 1
RunHidden: yes
CloseAtRunEnd: yes
ActionSequence
Action
Description: "Input group"
Execute: yes
Mapping
Send: Length To: "Length"
Send: BaseDiameter To: "BaseDiameter"
End Mapping
End Action
Action
Execute: yes
MScript
% Function OgiveSurfaceArea(Length, BaseDiameter)
%
%This function will estimate the SurfaceArea of an Ogive nose with the specified length and
% base diameter
%
% Functions/Subroutines Required
% OgiveRadius
%
% Length - Length of Ogive Nose
% BaseDiameter - Diameter of the base of the Ogive Nose
%
% Total Surface area of the Ogive nose
% Length = 25.0
% BaseDiameter = 10.0
NumberOfSlices = 25
DeltaX = Length / NumberOfSlices
RMid = BaseDiameter / 2
FinenessRatio = Length / BaseDiameter
RBar = (FinenessRatio ^ 2) + 0.25
RadiusOfCurvature = RBar * BaseDiameter
XBar = DeltaX / Length
TermA = (FinenessRatio ^ 2) / (RBar ^ 2)
TermB = (1 - TermA * ((1 - XBar) ^ 2)) ^ 0.5
TermC = 1 - (2 * RBar * (1 - TermB))
Radius = RMid * TermC
if (Radius < 0)
OgiveRadius = 0
else
OgiveRadius = RMid * TermC
end ;
SurfaceArea = 3.14 * OgiveRadius * sqrt((OgiveRadius ^ 2) + (DeltaX ^ 2))
XOld = DeltaX
RadiusOld = OgiveRadius
i = 1
while ( i <= (NumberOfSlices - 1) )
X = XOld + DeltaX
RMid = BaseDiameter / 2
FinenessRatio = Length / BaseDiameter
RBar = (FinenessRatio ^ 2) + 0.25
RadiusOfCurvature = RBar * BaseDiameter
XBar = DeltaX / Length
TermA = (FinenessRatio ^ 2) / (RBar ^ 2)
TermB = (1 - TermA * ((1 - XBar) ^ 2)) ^ 0.5
TermC = 1 - (2 * RBar * (1 - TermB))
Radius = RMid * TermC
if (Radius < 0)
Radius = 0
else
Radius = RMid * TermC
end ;
SArea = 3.14 * (Radius + RadiusOld) * sqrt(((Radius - RadiusOld) ^ 2) + DeltaX ^ 2)
SurfaceArea = SurfaceArea + SArea
XOld = X
RadiusOld = Radius
i = i + 1
end
OgiveSurfaceArea = SurfaceArea
End MScript
End Action
Action
Description: "Outputs Group"
Execute: yes
Mapping
Receive: SA From: "OgiveSurfaceArea"
End Mapping
End Action
End ActionSequence
End MATLAB MATLAB0
TaskProcess Task1
Control: [
MATLAB0
]
End TaskProcess Task1
Optimization Task1
PotentialVariables:
BaseDiameter Length
Variables:
BaseDiameter Length
VariableScaling
Parameter: BaseDiameter ScaleFactor: 1.0
Parameter: Length ScaleFactor: 1.0
InputConstraints
Parameter: BaseDiameter LowerBound: 5.0 UpperBound: 30.0
Parameter: Length LowerBound: 10.0 UpperBound: 50.0
PotentialObjectives:
BaseDiameter Length SA
Objectives
Parameter: SA Direction: minimize Weight: 1.0 ScaleFactor: 1.0
OutputConstraints
Parameter: SA LowerBound: 50.0 Weight: 1.0 ScaleFactor: 1.0 UpperBound: 150.0 Weight: 1.0 ScaleFactor: 1.0
# PLAN TO BE CONFIGURED BY ADVISOR:
OptimizePlan PriorityRankedPlan
Control: [
]
End Optimization Task1
TaskPlan Task1
StopTaskPlanOnError: no
Control: [
PriorityRankedPlan
]
End TaskPlan Task1
DataStorage Task1
Restore: no
DataLog: "Task1.db" Mode: overwrite
DataLookUp: "Task1.db"
MatchMode: Exact
Levels: all
StoreGradRuns: yes
StoreApproxRuns: yes
End DataStorage Task1
End Task Task1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -