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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sfun_keyboard_input_v1_01.m

?? matlab鍵盤輸入模型程序
?? M
字號:
function [sys,x0,str,ts] = sfun_keyboard_input_v1_01(t,x,u,flag,Ts)
%SFUNTMPL General M-file S-function template
%   With M-file S-functions, you can define you own ordinary differential
%   equations (ODEs), discrete system equations, and/or just about
%   any type of algorithm to be used within a Simulink block diagram.
%
%   The general form of an M-File S-function syntax is:
%       [SYS,X0,STR,TS] = SFUNC(T,X,U,FLAG,P1,...,Pn)
%
%   What is returned by SFUNC at a given point in time, T, depends on the
%   value of the FLAG, the current state vector, X, and the current
%   input vector, U.
%
%   FLAG   RESULT             DESCRIPTION
%   -----  ------             --------------------------------------------
%   0      [SIZES,X0,STR,TS]  Initialization, return system sizes in SYS,
%                             initial state in X0, state ordering strings
%                             in STR, and sample times in TS.
%   1      DX                 Return continuous state derivatives in SYS.
%   2      DS                 Update discrete states SYS = X(n+1)
%   3      Y                  Return outputs in SYS.
%   4      TNEXT              Return next time hit for variable step sample
%                             time in SYS.
%   5                         Reserved for future (root finding).
%   9      []                 Termination, perform any cleanup SYS=[].
%
%
%   The state vectors, X and X0 consists of continuous states followed
%   by discrete states.
%
%   Optional parameters, P1,...,Pn can be provided to the S-function and
%   used during any FLAG operation.
%
%   When SFUNC is called with FLAG = 0, the following information
%   should be returned:
%
%      SYS(1) = Number of continuous states.
%      SYS(2) = Number of discrete states.
%      SYS(3) = Number of outputs.
%      SYS(4) = Number of inputs.
%               Any of the first four elements in SYS can be specified
%               as -1 indicating that they are dynamically sized. The
%               actual length for all other flags will be equal to the
%               length of the input, U.
%      SYS(5) = Reserved for root finding. Must be zero.
%      SYS(6) = Direct feedthrough flag (1=yes, 0=no). The s-function
%               has direct feedthrough if U is used during the FLAG=3
%               call. Setting this to 0 is akin to making a promise that
%               U will not be used during FLAG=3. If you break the promise
%               then unpredictable results will occur.
%      SYS(7) = Number of sample times. This is the number of rows in TS.
%
%
%      X0     = Initial state conditions or [] if no states.
%
%      STR    = State ordering strings which is generally specified as [].
%
%      TS     = An m-by-2 matrix containing the sample time
%               (period, offset) information. Where m = number of sample
%               times. The ordering of the sample times must be:
%
%               TS = [0      0,      : Continuous sample time.
%                     0      1,      : Continuous, but fixed in minor step
%                                      sample time.
%                     PERIOD OFFSET, : Discrete sample time where
%                                      PERIOD > 0 & OFFSET < PERIOD.
%                     -2     0];     : Variable step discrete sample time
%                                      where FLAG=4 is used to get time of
%                                      next hit.
%
%               There can be more than one sample time providing
%               they are ordered such that they are monotonically
%               increasing. Only the needed sample times should be
%               specified in TS. When specifying than one
%               sample time, you must check for sample hits explicitly by
%               seeing if
%                  abs(round((T-OFFSET)/PERIOD) - (T-OFFSET)/PERIOD)
%               is within a specified tolerance, generally 1e-8. This
%               tolerance is dependent upon your model's sampling times
%               and simulation time.
%
%               You can also specify that the sample time of the S-function
%               is inherited from the driving block. For functions which
%               change during minor steps, this is done by
%               specifying SYS(7) = 1 and TS = [-1 0]. For functions which
%               are held during minor steps, this is done by specifying
%               SYS(7) = 1 and TS = [-1 1].

% modified from sfuntmpl.m by
% Marc Compere
% CompereM@asme.org
% created : 17 June 2003
% modified: 20 June 2003

%   Copyright 1990-2002 The MathWorks, Inc.
%   $Revision: 1.18 $

%
% The following outlines the general structure of an S-function.
%
switch flag,

  %%%%%%%%%%%%%%%%%%
  % Initialization %
  %%%%%%%%%%%%%%%%%%
  case 0,
    [sys,x0,str,ts]=mdlInitializeSizes(Ts);

  %%%%%%%%%%%%%%%
  % Derivatives %
  %%%%%%%%%%%%%%%
  case 1,
    sys=mdlDerivatives(t,x,u);

  %%%%%%%%%%
  % Update %
  %%%%%%%%%%
  case 2,
    sys=mdlUpdate(t,x,u);

  %%%%%%%%%%%
  % Outputs %
  %%%%%%%%%%%
  case 3,
    sys=mdlOutputs(t,x,u);

  %%%%%%%%%%%%%%%%%%%%%%%
  % GetTimeOfNextVarHit %
  %%%%%%%%%%%%%%%%%%%%%%%
  case 4,
    sys=mdlGetTimeOfNextVarHit(t,x,u);

  %%%%%%%%%%%%%
  % Terminate %
  %%%%%%%%%%%%%
  case 9,
    sys=mdlTerminate(t,x,u);

  %%%%%%%%%%%%%%%%%%%%
  % Unexpected flags %
  %%%%%%%%%%%%%%%%%%%%
  otherwise
    error(['Unhandled flag = ',num2str(flag)]);

end

% end sfuntmpl

%
%=============================================================================
% mdlInitializeSizes
% Return the sizes, initial conditions, and sample times for the S-function.
%=============================================================================
%
function [sys,x0,str,ts]=mdlInitializeSizes(Ts)

%
% call simsizes for a sizes structure, fill it in and convert it to a
% sizes array.
%
% Note that in this example, the values are hard coded.  This is not a
% recommended practice as the characteristics of the block are typically
% defined by the S-function parameters.
%
sizes = simsizes;

sizes.NumContStates  = 0;
sizes.NumDiscStates  = 1;
sizes.NumOutputs     = 1;
sizes.NumInputs      = 0;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1;   % at least one sample time is needed

sys = simsizes(sizes);

%
% initialize the initial conditions
%
x0  = 43; % init with the ascii representation of a '+' character

%
% str is always an empty matrix
%
str = [];

%
% initialize the array of sample times
%
ts = [Ts 0]; % set Ts to some stepsize to avoid evaluating this S-fcn every time step

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

%
% Initialize Figure Window
%
   handle.figure=findobj('type','figure','Tag','keyboard input figure');
   
   if isempty(handle.figure)
      % 'position' args -> [left, bottom, width, height]
      handle.figure=figure('position',[100 100 400 200],...
                           'WindowStyle','Modal',...
                           'Color',get(0,'DefaultUicontrolBackgroundColor')); %,...
                           %'HandleVisibility','callback');
      %handle.figure=figure('position',[800 620 400 300]);
      %handle.figure=figure('position',[800 620 400 300],'WindowButtonDownFcn',@myCallback)
      %handle.figure=figure('position',[800 620 400 300],'WindowButtonMoveFcn',@myCallback_move,'WindowButtonDownFcn',@myCallback_clickdown)
      set(handle.figure,'Tag','keyboard input figure');

      % Make the OFF button (position args->[left bottom width height])
      handle.offbutton = uicontrol(handle.figure,...
          'Style','pushbutton',...
          'Units','characters',...
          'Position',[5 5 46 2],...
          'String','Disable exclusive figure-keyboard input',...
          'Callback',{@turn_modal_off,handle});

      % Make the ON button (position args->[left bottom width height])
      handle.onbutton = uicontrol(handle.figure,...
          'Style','pushbutton',...
          'Units','characters',...
          'Position',[5 1 46 2],...
          'String','Re-enable exclusive figure-keyboard input',...
          'Callback',{@turn_modal_on,handle});

   else, % reset the figure to 'modal' to continue accepting keyboard input
      set(handle.figure,'WindowStyle','Modal')
   end

   %handle.axis = axis;
   %text(0.2,0.5,sprintf('Hit Ctrl-C to stop keyboard input\nexclusively through this figure'))


%
% Initialize Axes & line object (the point)
%
%    steer_min = -pi; % (rad) max positive steering input signal
%    steer_max = +pi; % (rad) max negative steering input signal
%    throttle_min = -1.0; % (unitless) normalized max positive throttle signal
%    throttle_max = +1.0; % (unitless) normalized max negative throttle signal
%    axis_dims=[steer_min steer_max throttle_min throttle_max]; % [XMIN XMAX YMIN YMAX]

   %set(handle.figure,'userdata',handle)  % store handle structure in figure userdata space

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


% end mdlInitializeSizes

%
%=============================================================================
% mdlDerivatives
% Return the derivatives for the continuous states.
%=============================================================================
%
function sys=mdlDerivatives(t,x,u)

sys = [];

% end mdlDerivatives

%
%=============================================================================
% mdlUpdate
% Handle discrete state updates, sample time hits, and major time step
% requirements.
%=============================================================================
%
function sys=mdlUpdate(t,x,u)

   handle.figure = findobj('type','figure','Tag','keyboard input figure'); % retrieve figure handle
   %handle = get(handle.figure,'userdata');

   current_char=get(handle.figure,'CurrentCharacter'); % a single character, like 'b'

   % update the grahics object
   %set(handle.point,'Xdata',[x(1) x(1)],'Ydata',[x(2) x(2)],'Zdata',[-1 +1]);


   % conditionally update the (numeric) state
   if ~strcmp(current_char,''), % if current_char is not blank, assign it to the state
      sys = str2num(sprintf('%i',current_char));
   else,
      sys = 0;
   end

   % reset 'CurrentCharacter' so if user lifts up from key, this is noticed
   set(handle.figure,'CurrentCharacter','+') % the plus key is the only key that may be
                                   % pressed, but when the user stops, is not noticed

   % notes:
   %    - use sprintf() to convert string -> number contained in a string (or character) variable
   %    - use char() to convert floating point number -> ascii character
   %    - use str2num() to convert the string-number into a (double) floating point number
   %    - use str2num() with char() to convert a number-string into a char-string
   %         char(97) == char(str2num('97')) --> 'a'
   %    - use num2str() to convert a (double) number into the same number but contained
   %      in a string variable
   % For example:
   %    tmp='a';                        % assign a string
   %    tmp_num=sprintf('%i',tmp)       % convert that string into a number contained in a string variable, tmp_num
   %        (tmp_num is the string containing the characters '97')
   %    tmp_char=char(str2num(tmp_num)) % convert that string variable back into a number, then into the original string


% end mdlUpdate

%
%=============================================================================
% mdlOutputs
% Return the block outputs.
%=============================================================================
%
function sys=mdlOutputs(t,x,u)

   if 0, % debugging....
   if x~=43,
      x
   end
   end

   % output the current 2 states, the [x,y] graphics pair most recently updated
   sys = x; % [x(1),x(2)] -> [abscissa, ordinate] -> [x,y]

% end mdlOutputs

%
%=============================================================================
% mdlGetTimeOfNextVarHit
% Return the time of the next hit for this block.  Note that the result is
% absolute time.  Note that this function is only used when you specify a
% variable discrete-time sample time [-2 0] in the sample time array in
% mdlInitializeSizes.
%=============================================================================
%
function sys=mdlGetTimeOfNextVarHit(t,x,u)

% unised unless ts=[-2 0] in mdlInitializesizes
sampleTime = Ts;    %  set the next hit to be Ts seconds later.
sys = t + sampleTime;

% end mdlGetTimeOfNextVarHit

%
%=============================================================================
% mdlTerminate
% Perform any end of simulation tasks.
%=============================================================================
%
function sys=mdlTerminate(t,x,u)

sys = [];

% end mdlTerminate




% Callback for turning Modal OFF
function turn_modal_off(obj,eventdata,handle)
%disp('turn_modal_off:')
%handle
set(handle.figure,'WindowStyle','Normal')
%end


% Callback for turning Modal ON
function turn_modal_on(obj,eventdata,handle)
%disp('turn_modal_on:')
%handle
set(handle.figure,'WindowStyle','Modal')
%end


% % Callback for 'WindowButtonMoveFcn' in figure
% function myCallback_move(obj,eventdata)
% str=sprintf('\tWindowButtonMoveFcn callback executing');disp(str)
% end
% 
% % Callback for 'WindowButtonDownFcn' in figure
% function myCallback_clickdown(obj,eventdata)
% str=sprintf('\t\tWindowButtonDownFcn callback executing');disp(str)
% end



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一级片网站| 欧美国产日韩一二三区| 成人国产一区二区三区精品| 国产成人av一区二区三区在线 | 色婷婷精品久久二区二区蜜臀av | 国产精品天美传媒沈樵| 亚洲在线中文字幕| 国内久久精品视频| 91网站视频在线观看| 欧美一级xxx| 日韩免费电影一区| 亚洲色欲色欲www在线观看| 日韩高清一级片| 波多野结衣精品在线| 欧美一区二区在线看| 中文字幕一区二区视频| 亚洲二区在线观看| 丁香婷婷深情五月亚洲| 3atv一区二区三区| 亚洲男同性视频| 九九视频精品免费| 色婷婷久久久亚洲一区二区三区| 久久综合久色欧美综合狠狠| 亚洲欧美日韩成人高清在线一区| 久久丁香综合五月国产三级网站| 97精品超碰一区二区三区| 日韩欧美国产成人一区二区| 国产精品久久99| 看电影不卡的网站| 欧美日韩一区二区三区四区五区| 国产视频不卡一区| 精品一区二区三区的国产在线播放| 波多野结衣91| 国产女主播在线一区二区| 亚洲成av人片一区二区梦乃| av一本久道久久综合久久鬼色| 日韩免费观看高清完整版在线观看| 亚洲一区二区三区四区不卡| 色呦呦国产精品| 日韩一区在线看| 成人性视频免费网站| 精品国产百合女同互慰| 日本在线不卡一区| 欧美精品 日韩| 亚洲高清不卡在线观看| 国产激情视频一区二区三区欧美| 日韩丝袜情趣美女图片| 免费观看日韩av| 日韩一级视频免费观看在线| 日韩中文字幕一区二区三区| 欧美日韩在线三区| 午夜久久久久久久久| 欧美日韩一区国产| 天天影视网天天综合色在线播放| 精品视频在线免费| 奇米色777欧美一区二区| 欧美日韩一区二区三区四区五区| 亚洲一区二区美女| 欧美中文字幕一二三区视频| 亚洲精品免费一二三区| 欧美在线观看一二区| 一区二区三区欧美久久| 欧美女孩性生活视频| 日本 国产 欧美色综合| xnxx国产精品| jlzzjlzz亚洲女人18| 中文字幕成人在线观看| 一本一本大道香蕉久在线精品| 亚洲欧洲综合另类| 欧美美女喷水视频| 久久av资源网| 国产精品人成在线观看免费| 99国产精品久久久久| 亚洲综合一区二区精品导航| 7878成人国产在线观看| 国产一区二区三区在线观看精品| 欧美精品xxxxbbbb| 国产一区二区看久久| 日韩一区有码在线| 日韩一级高清毛片| 国产aⅴ精品一区二区三区色成熟| 亚洲天堂精品视频| 欧美三级韩国三级日本一级| 久久国产视频网| 日韩女同互慰一区二区| 丁香婷婷综合网| 成人一区在线观看| 日韩免费福利电影在线观看| 国产成人aaa| 亚洲成av人片www| 国产jizzjizz一区二区| 7878成人国产在线观看| 悠悠色在线精品| 岛国一区二区三区| 精品久久国产字幕高潮| 亚洲免费观看高清完整版在线观看 | 99re在线视频这里只有精品| 日日骚欧美日韩| 国产精品国产自产拍在线| 欧美色大人视频| 91麻豆蜜桃一区二区三区| 高清久久久久久| 国产麻豆9l精品三级站| 免费高清在线一区| 天堂蜜桃91精品| 亚洲图片一区二区| 亚洲高清在线视频| 亚洲一区二区三区四区的| 亚洲欧美激情视频在线观看一区二区三区| 久久网站最新地址| 精品国产露脸精彩对白| 亚洲精品在线免费观看视频| 日韩欧美资源站| 欧美videos中文字幕| 精品欧美黑人一区二区三区| 欧美大片一区二区三区| 91麻豆精品国产| 日韩丝袜情趣美女图片| 精品免费一区二区三区| 久久午夜羞羞影院免费观看| 精品国产乱码久久久久久浪潮 | 欧美一级二级三级乱码| 91精品蜜臀在线一区尤物| 欧美一区二区免费视频| 日韩欧美一级在线播放| 26uuu精品一区二区在线观看| 久久综合狠狠综合| 国产欧美日韩精品一区| 综合欧美亚洲日本| 亚洲综合色噜噜狠狠| 日本欧美在线观看| 国产一区不卡在线| av不卡免费电影| 欧美性猛交xxxxxxxx| 欧美一区二区三区啪啪| 国产视频一区二区三区在线观看 | 日韩精品电影在线| 精品系列免费在线观看| 成人国产一区二区三区精品| 欧美性一二三区| 欧美r级在线观看| 国产精品情趣视频| 一区二区三区视频在线看| 日本91福利区| 成人午夜在线视频| 欧美日韩亚洲综合| 国产丝袜在线精品| 亚洲综合视频在线| 国产乱码精品一区二区三区av | 91久久精品午夜一区二区| 91精品国产日韩91久久久久久| 精品国产在天天线2019| 国产精品电影一区二区| 免费观看30秒视频久久| 99久久伊人精品| 91精品国产综合久久久久久久| 国产日产亚洲精品系列| 亚洲福利一二三区| voyeur盗摄精品| 欧美大片拔萝卜| 一区二区三区成人| 国产麻豆视频一区| 欧美日韩一本到| 自拍偷拍国产亚洲| 精品一区二区三区的国产在线播放 | 欧美成人a在线| 亚洲另类在线一区| 国产成人综合亚洲网站| 欧美猛男gaygay网站| 国产精品免费看片| 精品一区二区在线视频| 欧美亚洲综合在线| 国产精品久久午夜夜伦鲁鲁| 青青国产91久久久久久| 欧美曰成人黄网| 一区免费观看视频| 国产精品一区二区果冻传媒| 欧美日韩国产在线播放网站| 中文字幕不卡在线播放| 狠狠色伊人亚洲综合成人| 欧美日韩一级二级三级| 亚洲精品免费看| 91在线你懂得| 国产欧美日韩麻豆91| 国产一区二区毛片| 26uuu国产日韩综合| 全部av―极品视觉盛宴亚洲| 欧美影院一区二区| 亚洲色图另类专区| 91免费国产视频网站| 亚洲视频在线观看一区| 91一区二区三区在线播放| 国产精品美日韩| 99国产欧美另类久久久精品| 亚洲婷婷综合色高清在线| 97久久精品人人做人人爽 | 国产精品视频麻豆| 国产成人综合在线| 国产精品免费久久| 91美女精品福利|