www.gusucode.com > sloptim工具箱matlab源码程序 > sloptim/sloptim/@sroengine/@FrequencySpec/checkSettings.m

    function [hasObj,hasConstr,overlappingConstr] = checkSettings(this)
% CHECKSETTINGS Check requirement specification settings
%
 
% Author(s): A. Stothert 13-Dec-2007
% Copyright 2007-2009 The MathWorks, Inc.

%Set default return values
hasObj            = false;
hasConstr         = false;
overlappingConstr = [];

%Check types of requirements in specification
reqs = this.Requirements;
reqs = reqs(reqs.isEnabled);
if numel(reqs)==0
   %Quick return
   this.Optimized = false;
   return
end

%Check enabled requirements have valid ports
for ct=1:numel(reqs)
   rSrc = reqs(ct).getSource;
   if isempty(rSrc)
      reqs(ct).isEnabled = false;
   else
      isValid = this.Model.isValidPort(rSrc);
      if ~all(isValid)
         reqs(ct).isEnabled = false;
         badPorts = sroengine.utGetPortNameList(rSrc(~isValid));
         ctrlMsgUtils.warning('Sloptim:engine:warnReqWithInvalidPorts',...
            badPorts,reqs(ct).Name,this.Model.getName)
      end
   end
end

reqs = reqs(reqs.isEnabled); %only look at requirements included in optimization
if isempty(reqs)
   %Nothing to do
   this.Optimized    = false;
   hasObj            = false;
   hasConstr         = false;
   overlappingConstr = [];
else
   hasObj    = any(reqs.isObjective);
   hasConstr = any(reqs.isConstraint);
   if nargout > 2
      [isFeasible,overlappingConstr] = sroengine.utCheckFeasibleConstr(reqs);
   end
end