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

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

?? scsb_sfun.c~

?? CheckMate is a MATLAB-based tool for modeling, simulating and investigating properties of hybrid dyn
?? C~
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
/* File: scsb_sfun.c * Abstract: *   C-MEX S-function for the Switched Continuous System Block (SCSB) *   in the CheckMate library. To compile the S-function, type "mex *   scsb_sfun.c" in the MATLAB command window. * Author: Alongkrit Chutinan * Date: March 21, 2002 * Altered by Jim Kapinski * April, 2002 * Altered by Ansgar Fehnker * July, 2003 * Note: *   This function has been adapted for the template provided by The *   MathWorks.  For more details about S-functions, see *   simulink/src/sfuntmpl_doc.c. */#define S_FUNCTION_NAME  scsb_sfun#define S_FUNCTION_LEVEL 2#include "simstruc.h"/* Data indices for S-Function parameter. */#define NPARAM          12#define PARAM_NX        0#define PARAM_NUP       1#define PARAM_NZ        2#define PARAM_NU        3#define PARAM_X0        4#define PARAM_SWFUNC    5#define PARAM_P0        6#define PARAM_USE_RESET 7#define PARAM_USE_PARAM 8#define PARAM_USE_SD    9#define PARAM_AR_CI     10#define PARAM_AR_DI     11/* Data indices for pointer work vector. */#define NPWORK             4#define PWORK_X_DOT        0#define PWORK_X_RESET      1#define PWORK_Z            2#define PWORK_U_OUT        3/* Data indices for integer work vector. */#define NIWORK              8#define IWORK_U_PORT        0#define IWORK_RESET_PORT    1#define IWORK_USE_RESET     2#define IWORK_LAST_RESET    3#define IWORK_USE_PARAM     4#define IWORK_SD_PORT       5#define IWORK_USE_SD        6#define IWORK_LAST_SD       7void computeDerivativeAndReset(SimStruct *S);/*====================* * S-function methods * *====================*/#define MDL_CHECK_PARAMETERS   /* Change to #undef to remove function */#if defined(MDL_CHECK_PARAMETERS) && defined(MATLAB_MEX_FILE)/* Function: mdlCheckParameters ============================================= * Abstract: *    mdlCheckParameters verifies new parameter settings whenever parameter *    change or are re-evaluated during a simulation. When a simulation is *    running, changes to S-function parameters can occur at any time during *    the simulation loop. * *    This method can be called at any point after mdlInitializeSizes. *    You should add a call to this method from mdlInitalizeSizes *    to check the parameters. After setting the number of parameters *    you expect in your S-function via ssSetNumSFcnParams(S,n), you should: *     #if defined(MATLAB_MEX_FILE) *       if (ssGetNumSFcnParams(S) == ssGetSFcnParamsCount(S)) { *           mdlCheckParameters(S); *           if (ssGetErrorStatus(S) != NULL) return; *       } else { *           return;     Simulink will report a parameter mismatch error *       } *     #endif * *     When a Simulation is running, changes to S-function parameters can *     occur either at the start of a simulation step, or during a *     simulation step. When changes to S-function parameters occur during *     a simulation step, this method is called twice, for the same *     parameter changes. The first call during the simulation step is *     used to verify that the parameters are correct. After verifying the *     new parameters, the simulation continues using the original *     parameter values until the next simulation step at which time the *     new parameter values will be used. Redundant calls are needed to *     maintain simulation consistency.  Note that you cannot access the *     work, state, input, output, etc. vectors in this method. This *     method should only be used to validate the parameters. Processing *     of the parameters should be done in mdlProcessParameters. * *     See matlabroot/simulink/src/sfun_errhdl.c for an example.  */static void mdlCheckParameters(SimStruct *S){  mxArray *mxTemp;  int_T nx,nup,nz,nu,nAR,use_sd,use_param;  real_T temp;  use_sd = (int_T) *mxGetPr(ssGetSFcnParam(S,PARAM_USE_SD));  use_param = (int_T) *mxGetPr(ssGetSFcnParam(S,PARAM_USE_PARAM));    /* nx must be scalar integer. */  mxTemp = ssGetSFcnParam(S,PARAM_NX);  if (!mxIsNumeric(mxTemp)) {    ssSetErrorStatus(S,"Number of continuous states must be numeric. ");    return;  }  if ((mxGetM(mxTemp) != 1) || (mxGetN(mxTemp) != 1)) {    ssSetErrorStatus(S,"Number of continuous states must be scalar. ");    return;  }  temp = mxGetScalar(mxTemp);  nx = (int_T) temp;  if (temp != (real_T) nx) {    ssSetErrorStatus(S,"Number of continuous states must be integer. ");    return;  }  if (nx < 0) {     ssSetErrorStatus(S,"Number of continuous states must be non-negative. ");     return;  }  if (use_sd) {    /* nup must be scalar integer. */    mxTemp = ssGetSFcnParam(S,PARAM_NUP);    if (!mxIsNumeric(mxTemp)) {        ssSetErrorStatus(S,"Number of discrete-time controller outputs must be numeric. ");        return;    }    if ((mxGetM(mxTemp) != 1) || (mxGetN(mxTemp) != 1)) {        ssSetErrorStatus(S,"Number of discrete-time controller outputs must be scalar. ");        return;    }    temp = mxGetScalar(mxTemp);    nup = (int_T) temp;    if (temp != (real_T) nup) {        ssSetErrorStatus(S,"Number of discrete-time controller outputs must be integer. ");        return;    }    if (nup < 0) {        ssSetErrorStatus(S,"Number of discrete-time controller outputs must be non-negative. ");        return;    }      /* nz must be scalar integer. */    mxTemp = ssGetSFcnParam(S,PARAM_NZ);    if (!mxIsNumeric(mxTemp)) {        ssSetErrorStatus(S,"Number of discrete-time controller states must be numeric. ");        return;    }    if ((mxGetM(mxTemp) != 1) || (mxGetN(mxTemp) != 1)) {        ssSetErrorStatus(S,"Number of discrete-time controller states must be scalar. ");        return;    }    temp = mxGetScalar(mxTemp);    nz = (int_T) temp;    if (temp != (real_T) nz) {        ssSetErrorStatus(S,"Number of discrete-time controller states must be integer. ");        return;    }    if (nz < 0) {        ssSetErrorStatus(S,"Number of discrete-time controller states must be non-negative. ");        return;    }  }  /* nu must be scalar integer. */  mxTemp = ssGetSFcnParam(S,PARAM_NU);  if (!mxIsNumeric(mxTemp)) {    ssSetErrorStatus(S,"Number of discrete inputs must be numeric. ");    return;  }  if ((mxGetM(mxTemp) != 1) || (mxGetN(mxTemp) != 1)) {    ssSetErrorStatus(S,"Number of discrete inputs must be scalar. ");    return;  }  temp = mxGetScalar(mxTemp);  nu = (int_T) temp;  if (temp != (real_T) nu) {    ssSetErrorStatus(S,"Number of discrete inputs must be integer. ");    return;  }  if (nu < 0) {    ssSetErrorStatus(S,"Number of discrete inputs must be non-negative. ");    return;  }/* x0 must be a column vector of length nx. */  mxTemp = ssGetSFcnParam(S,PARAM_X0);  if (!mxIsNumeric(mxTemp)) {    ssSetErrorStatus(S,"Initial conditions must be numeric. ");    return;  }    /*Check Initial conditions.  If Sampled-Data Analysis is used, then the initial  conditions should be in the form [x0;z0]*/  if (!use_sd) {    if ((nx == 0 && !mxIsEmpty(mxTemp)) ||           (nx !=0 && (mxGetM(mxTemp) != nx || mxGetN(mxTemp) != 1))) {        ssSetErrorStatus(S,"Initial condition and number of continuous states must be consistent. ");        return;    }  }    if (use_sd) {     if (((nx == 0 && nz == 0 )&& !mxIsEmpty(mxTemp)) ||           (nx !=0 && (mxGetM(mxTemp) != nx +nz || mxGetN(mxTemp) != 1))) {        ssSetErrorStatus(S,"Initial condition and number of continuous states must be consistent. ");        return;     }  }      /* swfunc must be a string */  mxTemp = ssGetSFcnParam(S,PARAM_SWFUNC);  if (!mxIsChar(mxTemp)) {    ssSetErrorStatus(S,"Switching Function must be a string. ");    return;  }    if (use_param) {      /* p0 must be numeric. */    mxTemp = ssGetSFcnParam(S,PARAM_P0);    if (!mxIsNumeric(mxTemp)) {        ssSetErrorStatus(S,"Default parameter must be numeric. ");        return;    }  }  /* reset flag must be scalar and real. */  mxTemp = ssGetSFcnParam(S,PARAM_USE_RESET);  if (!mxIsNumeric(mxTemp)) {    ssSetErrorStatus(S,"Reset flag must be numeric. ");    return;  }  if ((mxGetM(mxTemp) != 1) || (mxGetN(mxTemp) != 1)) {    ssSetErrorStatus(S,"Reset flag must be scalar. ");    return;  }    /* AR CI must be a double matrix with nx columns. */  mxTemp = ssGetSFcnParam(S,PARAM_AR_CI);  if (!mxIsDouble(mxTemp)) {    ssSetErrorStatus(S,"Matrix CI for analysis region must be of class 'double'. ");    return;  }  if (use_sd) {    if (!mxIsEmpty(mxTemp) && mxGetN(mxTemp) != (nx+nz)) {        ssSetErrorStatus(S,"Matrix CI for analysis region must have same number of columns as number of plant and controller states. ");        return;    }  }  if (!use_sd) {    if (!mxIsEmpty(mxTemp) && mxGetN(mxTemp) != nx) {        ssSetErrorStatus(S,"Matrix CI for analysis region must have same number of columns as number of continuous states. ");        return;    }  }  if (mxIsEmpty(mxTemp)) {    nAR = 0;  }  else {    nAR = mxGetM(mxTemp);  }  /* AR dI must be a double column vector with nAR rows. */  mxTemp = ssGetSFcnParam(S,PARAM_AR_DI);  if (!mxIsDouble(mxTemp)) {    ssSetErrorStatus(S,"Vector dI for analysis region must be of class 'double'. ");    return;  }  if ((nAR == 0 && !mxIsEmpty(mxTemp)) ||       (nAR != 0 && (mxGetM(mxTemp) != nAR || mxGetN(mxTemp) != 1))) {    ssSetErrorStatus(S,"Vector dI for analysis region must be consistent with matrix CI. ");    return;  }  }#endif /* MDL_CHECK_PARAMETERS *//* Function: mdlInitializeSizes =============================================== * Abstract: *    The sizes information is used by Simulink to determine the S-function *    block's characteristics (number of inputs, outputs, states, etc.). * *    The direct feedthrough flag can be either 1=yes or 0=no. It should be *    set to 1 if the input, "u", is used in the mdlOutput function. Setting *    this to 0 is akin to making a promise that "u" will not be used in the *    mdlOutput function. If you break the promise, then unpredictable results *    will occur. * *    The NumContStates, NumDiscStates, NumInputs, NumOutputs, NumRWork, *    NumIWork, NumPWork NumModes, and NumNonsampledZCs widths can be set to: *       DYNAMICALLY_SIZED    - In this case, they will be set to the actual *                              input width, unless you are have a *                              mdlSetWorkWidths to set the widths. *       0 or positive number - This explicitly sets item to the specified *                              value. */static void mdlInitializeSizes(SimStruct *S){  int_T nx,nup,nz,nu,use_reset,use_sd;  int_T ninput,noutput;  int_T u_port,reset_port,x_port,sd_port;  int_T zero_crossings;    ssSetNumSFcnParams(S,NPARAM);  /* Number of expected parameters */  if (ssGetNumSFcnParams(S) != ssGetSFcnParamsCount(S)) {    return; /* Parameter mismatch will be reported by Simulink */  }  else {    mdlCheckParameters(S);    if (ssGetErrorStatus(S) != NULL) return;  }  /* Assume that all parameters have been checked above. */  nx = (int_T) *mxGetPr(ssGetSFcnParam(S,PARAM_NX));  nu = (int_T) *mxGetPr(ssGetSFcnParam(S,PARAM_NU));  use_reset = (int_T) *mxGetPr(ssGetSFcnParam(S,PARAM_USE_RESET));  use_sd = (int_T) *mxGetPr(ssGetSFcnParam(S,PARAM_USE_SD));  if (use_sd) {    nup = (int_T) *mxGetPr(ssGetSFcnParam(S,PARAM_NUP));    nz = (int_T) *mxGetPr(ssGetSFcnParam(S,PARAM_NZ));  }      /* Initialize number of continuous and discrete states.  There are only  discrete states if sampled-data analysis is used.*/  if (use_sd) {    ssSetNumContStates(S,nx+1);    ssSetNumDiscStates(S,nz+nup);  }  else {  ssSetNumContStates(S,nx+1);  ssSetNumDiscStates(S,0);  }    /* Compute port index for the input u. Port index is -1 if there is     no input signal u. */  if (nu > 0)    u_port = 0;  else    u_port = -1;    /* Compute port index for the SD clock input.*/    if (use_sd)    sd_port = u_port + 1;  else    sd_port = u_port;        /* Compute port index for the reset signal. Port index is -1 if

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩午夜激情电影| 欧美精品一区二区三区久久久| 成人av资源站| 国产日本欧洲亚洲| 欧美日韩一区不卡| 欧美吞精做爰啪啪高潮| 在线精品视频免费播放| 日韩一二三四区| 亚洲激情图片qvod| 黄色资源网久久资源365| 91蜜桃在线免费视频| 日韩美女在线视频| 亚洲成人福利片| av爱爱亚洲一区| 久久在线观看免费| 亚洲成人动漫在线免费观看| 成人免费高清在线观看| 亚洲精品一线二线三线无人区| 亚洲国产精品久久久久婷婷884| 成人国产电影网| 久久久久久9999| 久久国产精品99久久久久久老狼| 91麻豆精品秘密| 国产精品久久久久影院老司| 日韩**一区毛片| 欧美乱妇23p| 亚洲电影欧美电影有声小说| 色屁屁一区二区| 国产精品久久久久7777按摩| 国产成人综合视频| 久久婷婷国产综合国色天香| 国内精品视频666| 欧美成人精品高清在线播放 | 亚洲素人一区二区| 成人一级片网址| 中文字幕一区二区三区在线观看| 粉嫩嫩av羞羞动漫久久久| 国产香蕉久久精品综合网| 国产剧情av麻豆香蕉精品| 欧美精品一区二区精品网| 久久国产综合精品| 国产亚洲短视频| 粉嫩aⅴ一区二区三区四区| 国产欧美精品区一区二区三区| 国产成人鲁色资源国产91色综| 国产欧美日韩一区二区三区在线观看| 国产精品影音先锋| 欧美激情中文字幕一区二区| 成人晚上爱看视频| 亚洲另类在线制服丝袜| 欧美日韩一区三区| 久久超碰97中文字幕| 久久亚洲精华国产精华液| 丁香网亚洲国际| 一区二区三区在线视频免费| 欧美日韩视频在线观看一区二区三区| 亚洲成av人片一区二区| 日韩欧美色电影| 成人国产精品免费观看动漫| 一区二区三区四区不卡在线| 欧美高清精品3d| 高清在线成人网| 亚洲自拍都市欧美小说| 日韩欧美成人激情| 国产成人在线看| 一区二区三区色| 91麻豆精品国产91久久久久久 | 国产精品自在在线| 亚洲美女视频一区| 日韩久久精品一区| 欧美国产综合色视频| 97精品久久久午夜一区二区三区 | 欧美一区二区日韩一区二区| 欧美另类高清zo欧美| 亚洲电影一区二区| 成人免费高清视频| 欧美精品在线一区二区| 亚洲最色的网站| 欧美中文字幕一区| 在线视频你懂得一区二区三区| 99久久精品国产麻豆演员表| 国产一区二区在线观看视频| 麻豆久久久久久久| 婷婷成人激情在线网| 一区二区三区自拍| 亚洲欧洲美洲综合色网| 国产三区在线成人av| zzijzzij亚洲日本少妇熟睡| 中文字幕亚洲欧美在线不卡| 91国产丝袜在线播放| 亚洲美女一区二区三区| 欧美精品在线观看一区二区| 国内精品伊人久久久久影院对白| 国产亚洲成年网址在线观看| 欧美酷刑日本凌虐凌虐| 免费视频最近日韩| 国产精品美女久久久久久| 日韩欧美成人午夜| 欧美日韩一级大片网址| 一区二区在线观看视频在线观看| www.欧美日韩国产在线| 五月婷婷另类国产| 亚洲va韩国va欧美va| 一区二区三区日韩欧美精品| 欧美一区二区三区男人的天堂| 久久国产精品区| 亚洲v日本v欧美v久久精品| 国产精品久久久久久久久免费桃花 | 日韩欧美一区在线观看| 久久亚洲二区三区| 91久久香蕉国产日韩欧美9色| 亚洲国产成人av| 26uuu国产日韩综合| 国产成人在线影院 | 国产在线乱码一区二区三区| 欧美国产乱子伦| 日本一区二区三区高清不卡| 精品理论电影在线| 婷婷成人激情在线网| 国精产品一区一区三区mba视频| 成人国产一区二区三区精品| 日韩一区二区三区视频| 亚洲一区二区在线免费观看视频| 99视频精品全部免费在线| 久久先锋资源网| 久久爱www久久做| 51精品秘密在线观看| 日韩午夜三级在线| 国产欧美日韩另类一区| 国产精品美女www爽爽爽| 日本一区二区高清| 国产精品麻豆一区二区| 亚洲综合在线五月| 全国精品久久少妇| 豆国产96在线|亚洲| 国产精品综合视频| 在线观看日韩一区| 日韩午夜激情视频| 日本vs亚洲vs韩国一区三区| 亚洲综合久久久| 337p日本欧洲亚洲大胆色噜噜| 在线观看日韩毛片| 欧美精品在线一区二区| 国产亚洲欧洲一区高清在线观看| 亚洲图片自拍偷拍| av一区二区三区在线| 欧美精品一区在线观看| 日一区二区三区| 国产亚洲成av人在线观看导航 | 日韩av在线播放中文字幕| 678五月天丁香亚洲综合网| 韩国精品主播一区二区在线观看| 久久婷婷色综合| 美国十次综合导航| 日本伦理一区二区| 亚洲视频一二三| 国产不卡一区视频| 久久久夜色精品亚洲| 韩国成人在线视频| 精品少妇一区二区三区视频免付费 | 精东粉嫩av免费一区二区三区| 精品在线观看视频| 国产suv精品一区二区6| 欧美日韩视频在线一区二区| 精品福利视频一区二区三区| 亚洲欧洲中文日韩久久av乱码| 免费国产亚洲视频| 91色在线porny| 久久亚洲私人国产精品va媚药| 一二三区精品视频| 风间由美一区二区三区在线观看| 欧洲精品在线观看| 国产精品区一区二区三区| 日韩高清在线一区| 一本色道久久加勒比精品| 久久久久久久综合色一本| 午夜视频在线观看一区二区| 成人免费va视频| 精品国产第一区二区三区观看体验| 亚洲欧美aⅴ...| 成人福利电影精品一区二区在线观看 | 豆国产96在线|亚洲| 欧美一级在线观看| 亚洲一区二区欧美日韩| av日韩在线网站| 久久久久久久久久看片| 麻豆freexxxx性91精品| 欧美日韩国产综合一区二区三区| 亚洲欧洲精品一区二区精品久久久 | 日韩一区二区在线观看| 一区二区三区在线免费| 成人va在线观看| 国产欧美综合在线| 国产福利电影一区二区三区| 日韩一级完整毛片| 男男成人高潮片免费网站| 欧美巨大另类极品videosbest | 国产一区二区在线视频| 日韩一级二级三级| 免费成人av在线|