www.gusucode.com > mbcmodels 工具箱 matlab 源码程序 > mbcmodels/@xreglolimot/evalbuild.m
function Blk = evalbuild(m,sys) %EVALBUILD adds an evaluation simulink block to a simulink model % % Blk = evalbuild(m,sys) % Copyright 2000-2014 The MathWorks, Inc. and Ford Global Technologies, Inc. kernel = get(m, 'kernel'); evalBlk = 'mbcSLModels/TwoStage/lolimotEval'; destBlk = [sys, '/lolimot', kernel, 'Eval']; Blk = add_block(evalBlk, destBlk); % break library link set_param(Blk, 'linkstatus', 'none'); % set block script script = getScript(m); setBlockScript([destBlk, '/kernelEvalFun'], script); % Find the betaModel_x2fx block x2fxBlock = find_system(Blk, 'lookundermasks', 'all', 'name', 'betaModel_x2fx'); x2fxBlockName = [get_param(x2fxBlock, 'parent'), '/', get_param(x2fxBlock, 'name')]; set_param(x2fxBlock, 'linkstatus', 'none'); % Add the correct kernel switch class(m.betamodels{1}), case 'xreglinear', x2fxEvalPathToAdd = 'mbcSLModels/TwoStageJacob/xreglinear_x2fx'; x2fxEvalBlockToAdd = 'xreglinear_x2fx'; x2fxEvalBlock = add_block(x2fxEvalPathToAdd, ... [x2fxBlockName, '/', x2fxEvalBlockToAdd]); set_param(x2fxEvalBlock, 'linkstatus', 'none'); case 'xregcubic' x2fxEvalPathToAdd = 'mbcSLModels/TwoStageJacob/xregcubicJacob/xregcubicJacobFun'; x2fxEvalBlockToAdd = 'xregcubicJacobFun'; x2fxEvalBlock = add_block(x2fxEvalPathToAdd, ... [x2fxBlockName, '/', x2fxEvalBlockToAdd]); set_param(x2fxEvalBlock, 'linkstatus', 'none'); xregcubicModel = m.betamodels{1}; jacobScript = getJacobScript(xregcubicModel); setBlockScript([x2fxBlockName, '/', x2fxEvalBlockToAdd], jacobScript); otherwise error(message('mbc:xreglolimot:InvalidState1')); end x2fxEvalBlockName = get_param(x2fxEvalBlock, 'name'); % Wire up its input and output add_line(x2fxBlock, 'x/1', [x2fxEvalBlockName, '/1']); add_line(x2fxBlock, [x2fxEvalBlockName, '/1'], 'fx/1'); set_param(x2fxEvalBlock, 'Position', [160, 50, 310, 175]);