亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? compile_sys_info.m

?? CheckMate is a MATLAB-based tool for modeling, simulating and investigating properties of hybrid dyn
?? M
字號:
function sysinfo = compile_sys_info(sys)

% Compile and/or add system information to be used in the validation
% tool.
%
% Syntax:
%   "sysinfo = compile_sys_info(sys)"
%
% Description:
%   "compile_sys_info(sys)" adds necessary `clock` and `to workspace`
%   blocks to the CheckMate model "sys" and returns pertinent system
%   information in a structure with the following fields.
%
%   * ".clk" structure containing the name, handle, and output variable of
%   the clock block.
%
%   * ".scsbList" structure array containing the name, handle, and output
%   variable of each switched continuous system block (SCSB) in the system
%
%   * ".fsmbList" structure array containing the name, handle, and output
%   variable of each finite state machine block (FSMB) in the system
%
%   * ".pthbList" structure array containing the name, handle, and output
%   variable of each polyhedral threshold block (PTHB) in the system
%
%   * ".AR" composite analysis region (AR) composed from ARs of all SCSBs
%   in the system
%
%   * ".ICS" composite initial continuous (ICS) set composed from ICS of
%   each SCSBs in the system
%
% See Also:
%   validate

% Find a 'Clock' block. Add one if not found.
clk = find_system(sys,'SearchDepth',1,'BlockType','Clock');
if isempty(clk)
  clkname = unique_name(sys,'clock');
  add_block('built-in/Clock',[sys '/' clkname]);
end

% Find Simulink handles for switched continuous system blocks (SCSB),
% finite state machine blocks (FSMB), and polyhedral threshold blocks
% (PTHB) in the CheckMate model.
scsbHandle = find_masked_blocks(sys,'SwitchedContinuousSystem');
fsmbHandle = find_masked_blocks(sys,'Stateflow');
pthbHandle = find_masked_blocks(sys,'PolyhedralThreshold');
% Find the clock block handle.
clk = find_system(sys,'SearchDepth',1,'BlockType','Clock');
clkHandle = get_param(clk{1},'Handle');

clk = check_to_ws(sys,clkHandle);
scsbList = check_to_ws(sys,scsbHandle);
fsmbList = check_to_ws(sys,fsmbHandle);
pthbList = check_to_ws(sys,pthbHandle);

% Compile list of states for each finite state machine block.
machine_id = get_machine_id(sys);
if isempty(machine_id)
  fprintf(1,['\007Error: Cannot find machine id for ''' sys '''!!!\n'])
  return
end
for k = 1:length(fsmbHandle)
  block_name = get_param(fsmbHandle(k),'Name');
  chart_id = find_chart_id(machine_id,block_name);
  if isempty(chart_id)
    error(['Cannot find chart id for ''' block_name '''.'])
    return
  end
  state_id = sf('find','all','state.chart',chart_id);
  if isempty(state_id)
    error(['No state found for FSM block ''' block_name '''.'])
  end
  parent_chart = sf('get',state_id(1),'.chart');
  transitionsAll = sf('get',parent_chart,'.transitions');
  states = {};
  for l = 1:length(state_id)
    state_number = get_state_number(state_id(l));
    states{state_number}.name = sf('get',state_id(l),'.name');
    transitions = sf('find',transitionsAll,'.src.id',state_id(l));
    states{state_number}.terminal = isempty(transitions);
  end
  fsmbList{k}.states = states;
end

sysinfo = {};
sysinfo.clk = clk;
sysinfo.scsbList = scsbList;
sysinfo.fsmbList = fsmbList;
sysinfo.pthbList = pthbList;
sysinfo.AR = get_analysis_region(scsbHandle);
sysinfo.ICS = get_initial_continuous_set(scsbHandle);

return

% ----------------------------------------------------------------------------

function machine_id = get_machine_id(sys)

% the Stateflow function returns all block names whose begining substring
% matches with the name given in sys. thus, we have to make sure that we get
% an exact match.

possible_id = sf('find','all','machine.name',sys);
machine_id = [];
for k = 1:length(possible_id)
  name = sf('get',possible_id(k),'.name');
  if strcmp(name,sys)
    machine_id = possible_id(k);
    break;
  end
end
return

% ----------------------------------------------------------------------------

function chart_id = find_chart_id(machine_id,block_name)

possible_id = sf('find','all','chart.machine',machine_id, ...
                 'chart.name',block_name);
chart_id = [];
for l = 1:length(possible_id)
  name = sf('get',possible_id(l),'.name');
  if strcmp(name,block_name)
    chart_id = possible_id(l);
    break;
  end
end
return


% ----------------------------------------------------------------------------

function state_number = get_state_number(state_id)

% We assume the label strings in the Stateflow diagram have the following 
% format.
%
%      <state_name>
%      entry: <output_variable> = <state_number>;
%

labelString = sf('get',state_id,'.labelString');
% Skip all the white spaces at the end.
k = length(labelString);
while (k >= 1) & (isspace(labelString(k)) | (labelString(k) == ';'))
  k = k - 1;
end
% Search backwards until a non-numeric character is found.
labelString = labelString(1:k);
while (k >= 1) & (labelString(k) >= '0') & (labelString(k) <= '9')
  k = k - 1;
end
labelString = labelString(k+1:length(labelString));
state_number = str2num(labelString);
return

% -----------------------------------------------------------------------------

function list = check_to_ws(sys,blkHandle)

for k = 1:length(blkHandle)
  dstk = find_dst_port(blkHandle(k),'1');
  list{k}.handle = blkHandle(k);
  list{k}.name = get_param(blkHandle(k),'Name');
  found = 0;
  for l = 1:length(dstk)
    blocktype = get_param(dstk{l}.block,'BlockType');
    if strcmp(blocktype,'ToWorkspace')
      list{k}.variable = get_param(dstk{l}.block,'VariableName');
      found = 1;
      break;
    end
  end
  if ~found
    % Add 'To Workspace' to capture the output of each block as needed 
    block_name = get_param(blkHandle(k),'Name');
    block_pos = get_param(blkHandle(k),'Position');
    width = 7*(length(block_name)+4);
    height = 20;
    xoffset = 1.2*(block_pos(3)-block_pos(1)) + 20;
    yoffset = -1.2*height;
    anchor = block_pos(1:2) + [xoffset yoffset];
    block_pos = [anchor anchor+[width height]];
    towsname = unique_name(sys,'To Workspace');
    add_block('built-in/To Workspace',[sys '/' towsname], ...
              'Position',block_pos,'VariableName',[block_name '_out'], ...
              'MaxDataPoints','inf');
    add_line(sys,[block_name '/1'],[towsname '/1'])
    list{k}.variable = [block_name '_out'];
  end
end

return

% -----------------------------------------------------------------------------

function name = unique_name(sys,prefix);

name = prefix;
count = 0;
while ~isempty(find_system(sys,'SearchDepth',1,'Name',name))
  count = count + 1;
  name = [prefix num2str(count)];
end
return

% ----------------------------------------------------------------------------

function AR = get_analysis_region(scsbH)

% Compose overall analysis region from analysis region for each SCS block.
CAR = [];
dAR = [];
for k = 1:length(scsbH)
  ARk = evalin('base',get_param(scsbH(k),'AR'));
  [CE,dE,Ck,dk] = linearcon_data(ARk);
  if ~isempty(CE) | ~isempty(dE)
    blockname = get_param(scsbH(k),'name');
    error(['Invalid analysis region for block ''' ...
           blockname '''.'])
  end
  CAR = [          CAR                zeros(size(CAR,1),size(Ck,2))
                   zeros(size(Ck,1),size(CAR,2))           Ck                ];
  dAR = [dAR; dk];		 
end
AR = linearcon([],[],CAR,dAR);
return

% ----------------------------------------------------------------------------

function X0 = get_initial_continuous_set(scsbH)

% Get initial continuous set (ICS) for each SCS block. Each ICS is a cell
% array of @linearcon objects.
ICS = {};
for k = 1:length(scsbH)
  ICS{k} = evalin('base',get_param(scsbH(k),'ICS'));
  if (length(ICS{k}) < 1)
    blockname = get_param(scsbH(k),'name');
    error(['Invalid initial continuous set specified for block ''' ...
           blockname '''.'])
  end
end

X0 = {};
idx = ones(1,length(scsbH));
stop = 0;
while ~stop
  % Compose combinations of overall ICS from ICS for each SCS block.
  ICS_CE = []; ICS_dE = [];
  ICS_CI = []; ICS_dI = [];
  for k = 1:length(scsbH)
    [CEk,dEk,CIk,dIk] = linearcon_data(ICS{k}{idx(k)});
    ICS_CE = [           ICS_CE            zeros(size(ICS_CE,1),size(CEk,2))
                    zeros(size(CEk,1),size(ICS_CE,2))           CEk               ];
    ICS_dE = [ICS_dE; dEk];		 
    ICS_CI = [           ICS_CI            zeros(size(ICS_CI,1),size(CIk,2))
                    zeros(size(CIk,1),size(ICS_CI,2))           CIk               ];
    ICS_dI = [ICS_dI; dIk];
  end
  % Put each combination into the cell array
  X0{length(X0)+1} = linearcon(ICS_CE,ICS_dE,ICS_CI,ICS_dI);

  % Increment the combination index
  k = length(scsbH);
  while (k >= 1)
    idx(k) = idx(k) + 1;
    if (idx(k) > length(ICS{k}))
      idx(k) = 1;
      k = k - 1;
    else
      k = -1;
    end
  end
  stop = (k == 0);
end

return

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品免费在线观看| 欧美三级视频在线| 色综合天天综合在线视频| 国产视频一区不卡| 另类小说图片综合网| 91精品午夜视频| 五月天视频一区| 欧美日韩国产在线观看| 亚洲综合图片区| 不卡在线观看av| 中文字幕一区二区三区乱码在线 | 国产精品一二三区在线| 欧美一级艳片视频免费观看| 午夜免费久久看| 3d动漫精品啪啪| 激情深爱一区二区| 国产欧美一区二区三区在线看蜜臀| 国产在线精品一区二区三区不卡| 日韩一卡二卡三卡国产欧美| 麻豆成人91精品二区三区| 久久综合久色欧美综合狠狠| 成人免费va视频| 亚洲欧美日韩中文字幕一区二区三区| 国产a精品视频| 欧美一区二区不卡视频| 视频一区二区中文字幕| 91精品国产品国语在线不卡| 蜜桃视频一区二区三区| 这里只有精品电影| 国内精品自线一区二区三区视频| www一区二区| 91亚洲精品乱码久久久久久蜜桃| 中文字幕视频一区| 色八戒一区二区三区| 日本午夜一区二区| 久久精品日产第一区二区三区高清版 | 欧美高清在线一区| 91视频国产资源| 亚洲精选视频免费看| 在线免费亚洲电影| 美女任你摸久久| 国产精品成人网| 欧美日韩国产一二三| 成人深夜在线观看| 日韩电影在线看| 欧美国产丝袜视频| 欧美精品少妇一区二区三区| 国产高清久久久久| 亚洲v日本v欧美v久久精品| 精品免费99久久| 欧美专区在线观看一区| 国产精品一级片在线观看| 亚洲精品视频自拍| 欧美变态口味重另类| 99国内精品久久| 国产一区欧美二区| 三级不卡在线观看| 洋洋成人永久网站入口| 中文字幕的久久| 日韩精品一区二区三区视频播放| 99精品桃花视频在线观看| 国产一区久久久| 蜜桃在线一区二区三区| 国产人成一区二区三区影院| 欧美一级在线免费| 国产日韩欧美精品在线| 精品国产91亚洲一区二区三区婷婷| 欧美艳星brazzers| 成人午夜激情影院| 国产精品1区2区3区| 五月激情综合网| 亚洲一区二区三区四区五区中文| 国产精品国产三级国产aⅴ无密码| 欧美一区二区三区免费在线看 | 国产精品美女一区二区三区| 久久亚洲综合色| 精品国产一区二区三区不卡 | 久久99精品久久久| 欧美aaaaa成人免费观看视频| 亚洲欧美另类图片小说| 一个色妞综合视频在线观看| 国产精品传媒在线| 亚洲欧洲日产国产综合网| 国产精品久久久久永久免费观看| 国产免费成人在线视频| 久久精品男人天堂av| 国产蜜臀av在线一区二区三区| www欧美成人18+| 国产欧美一区二区三区在线老狼| 中文乱码免费一区二区| 精品av久久707| 国产精品久久久久久久蜜臀| 久久理论电影网| 欧美国产精品中文字幕| 一区二区三区免费在线观看| 婷婷亚洲久悠悠色悠在线播放| 欧美aaaaaa午夜精品| 国产99精品在线观看| 欧美综合天天夜夜久久| 日韩精品一区二区三区四区视频| 欧美国产亚洲另类动漫| 一区二区三区四区不卡在线 | 国产精品乱人伦| 亚洲一区二区三区四区的 | 中文字幕欧美日本乱码一线二线| 日韩精品资源二区在线| 中文字幕av一区二区三区免费看| 亚洲一区二区视频在线| 国产精品中文有码| 欧美日韩小视频| 国产精品久久久久久亚洲伦 | 国产乱码精品一区二区三| 欧美乱妇20p| 夜夜精品浪潮av一区二区三区| 国产成人综合在线播放| 欧美综合色免费| 亚洲少妇最新在线视频| 一区二区理论电影在线观看| 成人亚洲精品久久久久软件| 91麻豆精品国产综合久久久久久 | 色综合天天综合狠狠| 久久久精品人体av艺术| 亚洲高清视频在线| 在线视频你懂得一区二区三区| 欧美精品第一页| 午夜av一区二区| 欧美中文字幕一区| 最新国产成人在线观看| 久久精品国产成人一区二区三区| 97se狠狠狠综合亚洲狠狠| 国产亚洲一区二区三区| 国产福利一区二区三区视频| 精品国产乱码久久久久久蜜臀| 日本色综合中文字幕| 欧美一级精品大片| 久久国产生活片100| 精品日韩av一区二区| 亚洲mv在线观看| 91麻豆精品91久久久久同性| 午夜久久福利影院| 欧美一级二级三级乱码| 蜜桃视频在线一区| 久久久久国色av免费看影院| 国产精品白丝jk黑袜喷水| 国产日韩欧美一区二区三区综合| 99九九99九九九视频精品| 欧美激情一区二区| 亚洲男女一区二区三区| 91一区一区三区| 热久久久久久久| 国产日产欧产精品推荐色| 99久久99久久精品国产片果冻| 亚洲三级视频在线观看| 日韩欧美一区在线| 色噜噜久久综合| 激情综合五月婷婷| 亚洲国产成人va在线观看天堂| 337p日本欧洲亚洲大胆精品| 色综合天天综合网天天看片| 麻豆视频观看网址久久| 亚洲乱码中文字幕综合| 久久亚洲精品国产精品紫薇| 91精彩视频在线观看| 国产精品综合二区| 奇米色777欧美一区二区| 99久久99久久精品国产片果冻| 奇米影视在线99精品| 亚洲免费在线观看| 欧美激情一区二区三区在线| 91精品国产综合久久精品性色 | 久久精品国产**网站演员| 夜夜嗨av一区二区三区| 亚洲欧美另类久久久精品2019| 精品久久久久一区二区国产| 欧美日韩国产一二三| 欧美日韩一区二区三区高清 | 国产精品国产三级国产aⅴ原创| 精品成人一区二区| 精品免费一区二区三区| 日韩午夜电影av| 精品欧美一区二区久久| 欧美成人vr18sexvr| 久久亚洲精华国产精华液| 久久亚洲二区三区| 国产无遮挡一区二区三区毛片日本| 精品福利二区三区| 国产精品美女久久久久久久 | 久久综合狠狠综合| 久久精品视频免费观看| 国产精品每日更新在线播放网址 | 国产精品一卡二卡在线观看| 国产成人免费av在线| 不卡一区二区中文字幕| 99久久精品久久久久久清纯| 91麻豆免费观看| 欧美区视频在线观看| 精品国精品自拍自在线| 国产精品理伦片| 五月天激情综合| 国产不卡视频在线播放|