www.gusucode.com > mbcdata 工具箱 matlab 源码程序 > mbcdata/+cgmergesetup/MergeItems.m
classdef MergeItems < handle %CGMERGESETUP.MERGEITEMS wizard page for setting up composite models % Copyright 2009 The MathWorks, Inc. and Ford Global Technologies, Inc. properties %CAGEPROJECT pointer to cgproject CageProject %pSelected array of pointers to items to be merged pSelected = mbcpointer(1,0); %MODENAME name of mode variable in CAGE ModeName = 'Mode'; %MODELABELS names for composite modes ModeLabels={}; %SETPOINTS set points for composite model % This property is not exposed to users yet SetPoints %OPPOINTTOLERANCES tolerances for other operating point variables % This option is only relevant when merging point-by-point % models OpPointTolerances end properties(Abstract,Dependent,SetAccess=private) %LABELS labels for items to be merged Labels %INPUTLABELS inputs as a comma separated list for each test plan InputLabels %INPUTLIST inputs of all selected test plans InputList %MERGELIST list of items available for merging into a composite model MergeList %COMPOSITEMODELS cell array of all composite models. CompositeModels %ICONFILES icon files for ModelList IconFiles end properties(Abstract,SetAccess=protected) %SAMPLEMODEL stored composite model to aid in setting up SampleModel end properties(Access=protected) %PALLITEMS internal list of all items available for merging pAllItems end methods function M = MergeItems(CGP) %MERGEITEMS constructor if nargin==0 CGP = get(cgbrowser,'RootNode'); end M.CageProject = CGP; end function setDefaults(M) %SETDEFAULTS set defaults before setting mode details % setDefaults(M) mdl = M.SampleModel; s= getsymbols(mdl); M.ModeName = s{end}; tol = getAbsoluteTolerance(mdl); M.OpPointTolerances = tol(1:end-1); M.SetPoints = mean(getranges(mdl),1); Ops = getSwitchPoints(mdl); M.SetPoints(end-size(Ops,2)+1:end) = Ops(1,:); if ~isempty(M.pSelected) DefLabels = pveceval(M.pSelected,@getname); else DefLabels = {}; end ModeLabels = getModeLabels(mdl); %#ok<*PROP> if ~isempty(ModeLabels) && length(ModeLabels)~=length(DefLabels) M.ModeLabels = ModeLabels; else M.ModeLabels = DefLabels; end end function pm = importToCAGE(M,cgp) %IMPORTTOCAGE import composite model to CAGE if nargin>1 M.CageProject = cgp; end mdls = M.CompositeModels; pm = mbcpointer(1,length(mdls)); for i=1:length(mdls) % don't replace pm(i) = ImportMBCModel(info(M.CageProject),mdls{i},getname(mdls{i}),false); end pCage = pm(1).getdata; % setpoints for inputs pInputs = pCage.getinputs; IsInport = parrayeval(pInputs,@isinport,{},@false); passign(pInputs(IsInport), parrayeval(pInputs(IsInport),@setnomvalue,{num2cell(M.SetPoints)})); end end end