www.gusucode.com > sloptim工具箱matlab源码程序 > sloptim/sloptobsolete/nlinopt.m
function nlinopt(Model) %NLINOPT Obsolete NCD command for running the optimization algorithm. % % NLINOPT(MODEL) starts a response optimization for the Simulink % model with name MODEL. A valid ncdStruct variable must exist % in the workspace. % % See also SROPROJECT, OPTIMIZE. % Author(s): A. Potvin, 12-1-92 % M. Yeddanapudi, Sept. 24, '96 % Copyright 1990-2012 The MathWorks, Inc. % RE: Assumes old NCD blocks have already been upgraded % Is there a valid ncdStruct variable in the workspace? try ncdStruct = evalin('base','ncdStruct'); catch E ctrlMsgUtils.error('Sloptim:sloptim:errNoNCDStruct') end % Is the model open? LoadFlag = isempty( find_system('Name', Model, 'Type', 'block_diagram') ); if LoadFlag try load_system(Model) catch E throw(E) end end % Look for NCD blocks NCDBlocks = find_system(Model,'MaskType','NCD Outport'); if ~isempty(NCDBlocks) ctrlMsgUtils.error('Sloptim:sloptim:errRunNCDUPDATE') end % Load optimization settings if isa(ncdStruct,'struct') % Construct new project for Simulink model Proj = srogui.SimProjectForm; Proj.Name = Model; % Initialize project with one constraint per block in MODEL Proj.init(Model) % Read data from NCD struct Proj.loadNCDStruct(ncdStruct) elseif isa(ncdStruct,'srogui.SimProjectForm') % Data already reformatted Proj = ncdStruct; else ctrlMsgUtils.error('Sloptim:sloptim:errInvalidNCDStruct') end % Evaluate form RunProj = evalForm(Proj); % Start optimization try optimize(RunProj) catch E throw(E) end % Clean up if LoadFlag close_system(Model,0); end