⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 surfacearea.desc.ol0

📁 isight调用matlab接口进行优化的例子
💻 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 + -