3232 return ;
3333 end
3434
35- lv = obj .lvdData .launchVehicle ;
36- [lvVars ,~ ] = lv .getActiveOptVars();
37- useLv = false ;
38- if (not(isempty(lvVars )))
39- inds = find(ismember(vars ,lvVars ));
40- if (not(isempty(inds )))
41- if (ismember(inds ,warnInd ))
42- useLv = true ;
43- end
44- end
45- end
46-
47-
48- initStateModel = obj .lvdData .initStateModel ;
49- initStateModelOptVars = initStateModel .getAllOptVars();
50- useInitState = false ;
51- if (not(isempty(initStateModelOptVars )))
52- inds = zeros(size(vars ));
53- for (i = 1 : length(initStateModelOptVars ))
54- inds = inds | ismember(vars ,initStateModelOptVars(i ));
55- end
56-
57- inds = find(inds );
58- if (not(isempty(inds )))
59- if (any(ismember(inds ,warnInd )))
60- useInitState = true ;
61- end
62- end
63- end
64-
6535 eventNums = [];
66-
67- numEvents = obj .lvdData .script .getTotalNumOfEvents();
68- for (i = 1 : numEvents )
69- event = obj .lvdData .script .getEventForInd(i );
70- [tf , eVars ] = event .hasActiveOptVars();
36+ useLv = false ;
37+ useIs = false ;
38+ for (i = 1 : length(warnInd ))
39+ var = vars(warnInd(i ));
7140
72- if (tf )
73- inds = zeros(size(vars ));
74- for (j = 1 : length(eVars ))
75- inds = inds | ismember(vars ,eVars(j ));
76- end
77-
78- inds = find(inds );
79- if (not(isempty(inds )))
80- if (ismember(inds ,warnInd ))
81- eventNums(end + 1 ) = i ; % #ok<AGROW>
82- end
83- end
84- end
41+ evtNum = getEventNumberForVar(var , obj .lvdData );
42+ useLv = useLv | isVarInLaunchVehicle(var , obj .lvdData );
43+ useIs = useIs | isVarInInitialState(var , obj .lvdData );
44+ eventNums = horzcat(eventNums ,evtNum ); % #ok<AGROW>
8545 end
8646
8747 if (not(isempty(eventNums )))
9151 end
9252
9353 combStrCell = {};
54+
9455 if (useLv )
9556 combStrCell{end + 1 } = ' Launch Vehicle' ;
9657 end
9758
98- if (useInitState )
59+ if (useIs )
9960 combStrCell{end + 1 } = ' Initial State' ;
10061 end
10162
63+ if (not(isempty(eventStr )))
64+ combStrCell{end + 1 } = eventStr ;
65+ end
66+
10267 combStr = strjoin(combStrCell ,' , ' );
10368 if (not(isempty(combStr )))
104- combStr = sprintf(' %s , ' ,combStr );
69+ combStr = sprintf(' %s ' ,combStr );
10570 end
10671
107- str = sprintf(' Variables are near optimization bounds on some events (Events: %s%s )' , combStr , eventStr );
72+ str = sprintf(' Variables are near optimization bounds on some events (Events: %s )' , combStr );
10873 warnings(end + 1 ) = LaunchVehicleDataValidationWarning(str );
10974 end
11075 end
76+ end
77+
78+ function evtNum = getEventNumberForVar(var , lvdData )
79+ evtNum = [];
80+
81+ numEvents = lvdData .script .getTotalNumOfEvents();
82+ for (i = 1 : numEvents )
83+ event = lvdData .script .getEventForInd(i );
84+
85+ [~ , eVars ] = event .hasActiveOptVars();
86+
87+ for (j = 1 : length(eVars ))
88+ eVar = eVars(j );
89+
90+ if (strcmpi(class(var ), class(eVar )) && var == eVar )
91+ evtNum = i ;
92+ break ;
93+ end
94+ end
95+
96+ if (not(isempty(evtNum )))
97+ break ;
98+ end
99+ end
100+ end
101+
102+ function tf = isVarInLaunchVehicle(var , lvdData )
103+ lv = lvdData .launchVehicle ;
104+ [lvVars ,~ ] = lv .getActiveOptVars();
105+
106+ tf = false ;
107+ for (i = 1 : length(lvVars ))
108+ lvVar = lvVars(i );
109+
110+ if (var == lvVar )
111+ tf = true ;
112+ break ;
113+ end
114+ end
115+ end
116+
117+ function tf = isVarInInitialState(var , lvdData )
118+ initStateModel = lvdData .initStateModel ;
119+ initStateModelOptVars = initStateModel .getAllOptVars();
120+
121+ tf = false ;
122+ for (i = 1 : length(initStateModelOptVars ))
123+ isVar = initStateModelOptVars(i );
124+
125+ if (var == isVar )
126+ tf = true ;
127+ break ;
128+ end
129+ end
111130end
0 commit comments