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

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

?? controller_sf.c

?? 直流電動機控制的matlab實現
?? C
字號:
#if !defined(S_FUNCTION_NAME)
#define S_FUNCTION_NAME                 Controller_sf
#endif
#define S_FUNCTION_LEVEL                2

#include <stdio.h>
#include <math.h>
#include "simstruc.h"
#include "fixedpoint.h"
#include "rtlibsrc.h"

#define rt_logging_h
#define RTWSfcnInfo                     void *
#include "Controller.h"

static int8_T Controller_sf_counter = 0;

#define MDL_CHECK_PARAMETERS
#if defined(MDL_CHECK_PARAMETERS) && defined(MATLAB_MEX_FILE)
static void mdlCheckParameters(SimStruct *S)
{
  
  {
    int dimsArray[2] = {1, 1};
    ssCheckSFcnParamValueAttribs(S, 0, "FeedForwardGain_Gain", DYNAMICALLY_TYPED,
     2, dimsArray, false);
  }

  {
    int dimsArray[2] = {16, 1};
    ssCheckSFcnParamValueAttribs(S, 1, "Observer_A", DYNAMICALLY_TYPED,
     2, dimsArray, false);
  }

  {
    int dimsArray[2] = {8, 1};
    ssCheckSFcnParamValueAttribs(S, 2, "Observer_B", DYNAMICALLY_TYPED,
     2, dimsArray, false);
  }

  {
    int dimsArray[2] = {4, 1};
    ssCheckSFcnParamValueAttribs(S, 3, "Observer_C", DYNAMICALLY_TYPED,
     2, dimsArray, false);
  }

  {
    int dimsArray[2] = {1, 1};
    ssCheckSFcnParamValueAttribs(S, 4, "Observer_X0", DYNAMICALLY_TYPED,
     2, dimsArray, false);
  }

  {
    int dimsArray[2] = {1, 4};
    ssCheckSFcnParamValueAttribs(S, 5, "L2_Gain", DYNAMICALLY_TYPED,
     2, dimsArray, false);
  }

  {
    int dimsArray[2] = {1, 1};
    ssCheckSFcnParamValueAttribs(S, 6, "DiscreteTimeIntegrator_g",
     DYNAMICALLY_TYPED,
     2, dimsArray, false);
  }

  {
    int dimsArray[2] = {1, 1};
    ssCheckSFcnParamValueAttribs(S, 7, "DiscreteTimeIntegrator_I",
     DYNAMICALLY_TYPED,
     2, dimsArray, false);
  }

  {
    int dimsArray[2] = {1, 1};
    ssCheckSFcnParamValueAttribs(S, 8, "IntegralGain_Gain", DYNAMICALLY_TYPED,
     2, dimsArray, false);
  }
}
#endif

static void updateGlobalVarsFromRunTimeParams(SimStruct *S)
{
  int_T i;

  Controller_P.FeedForwardGain_Gain = (((real_T *)
    ssGetRunTimeParamInfo(S,0)->data)[0]);

  for (i=0; i<16; i++) {
    Controller_P.Observer_A[i] = (((real_T *)
      ssGetRunTimeParamInfo(S,1)->data)[i]);
  }

  for (i=0; i<8; i++) {
    Controller_P.Observer_B[i] = (((real_T *)
      ssGetRunTimeParamInfo(S,2)->data)[i]);
  }

  for (i=0; i<4; i++) {
    Controller_P.Observer_C[i] = (((real_T *)
      ssGetRunTimeParamInfo(S,3)->data)[i]);
  }

  Controller_P.Observer_X0 = (((real_T *) ssGetRunTimeParamInfo(S,4)->data)[0]);

  for (i=0; i<4; i++) {
    Controller_P.L2_Gain[i] = (((real_T *) ssGetRunTimeParamInfo(S,5)->data)[i]);
  }

  Controller_P.DiscreteTimeIntegrator_g = (((real_T *)
    ssGetRunTimeParamInfo(S,6)->data)[0]);

  Controller_P.DiscreteTimeIntegrator_I = (((real_T *)
    ssGetRunTimeParamInfo(S,7)->data)[0]);

  Controller_P.IntegralGain_Gain = (((real_T *)
    ssGetRunTimeParamInfo(S,8)->data)[0]);
}

#define MDL_PROCESS_PARAMETERS
#if defined(MDL_PROCESS_PARAMETERS) && defined(MATLAB_MEX_FILE)
static void mdlProcessParameters(SimStruct *S)
{
  ssUpdateAllTunableParamsAsRunTimeParams(S);
  updateGlobalVarsFromRunTimeParams(S);
}
#endif

static void mdlInitializeSizes(SimStruct *S)
{
  
  ssSetNumSFcnParams(S, 9);
  
  if (ssGetNumSFcnParams(S) == ssGetSFcnParamsCount(S)) {
#if defined(MDL_CHECK_PARAMETERS)
    mdlCheckParameters(S);
#endif
    if (ssGetErrorStatus(S) != NULL) {
      return;
    }
  } else {
    return;
  }

  ssSetNumContStates(S, 0);
  ssSetNumDiscStates(S, 0);

  if (!ssSetNumInputPorts(S, 2)) return;
  if(!ssSetInputPortVectorDimension(S, 0, 3)) return;
  if (ssGetSimMode(S) != SS_SIMMODE_SIZES_CALL_ONLY) {
    ssSetInputPortDataType(S, 0, SS_DOUBLE);
  }

  ssSetBusInputAsStruct(S, 0, 1);
  ssSetInputPortDirectFeedThrough(S, 0, 1);
  ssSetInputPortSampleTime(S, 0, 0.0001);
  ssSetInputPortOffsetTime(S, 0, 0.0);
  if(!ssSetInputPortVectorDimension(S, 1, 1)) return;
  if (ssGetSimMode(S) != SS_SIMMODE_SIZES_CALL_ONLY) {
    ssSetInputPortDataType(S, 1, SS_DOUBLE);
  }

  ssSetBusInputAsStruct(S, 1, 1);
  ssSetInputPortDirectFeedThrough(S, 1, 1);
  ssSetInputPortSampleTime(S, 1, 0.0001);
  ssSetInputPortOffsetTime(S, 1, 0.0);

  if (!ssSetNumOutputPorts(S, 1)) return;

  if(!ssSetOutputPortVectorDimension(S, 0, 1)) return;
  if (ssGetSimMode(S) != SS_SIMMODE_SIZES_CALL_ONLY) {
    ssSetOutputPortDataType(S, 0, SS_DOUBLE);
  }

  ssSetOutputPortSampleTime(S, 0, 0.0001);
  ssSetOutputPortOffsetTime(S, 0, 0.0);

  ssSetNumSampleTimes(S, 1);
  ssSetNumRWork(S, 0);
  ssSetNumIWork(S, 0);
  ssSetNumPWork(S, 0);
  ssSetNumModes(S, 0);
  ssSetNumNonsampledZCs(S, 0);

  ssSetOptions(S, SS_OPTION_EXCEPTION_FREE_CODE);

}

static void mdlInitializeSampleTimes(SimStruct *S)
{
  ssSetSampleTime(S, 0, 0.0001);
  ssSetOffsetTime(S, 0, 0.0);
}

#define MDL_SET_WORK_WIDTHS
#if defined(MDL_SET_WORK_WIDTHS) && defined(MATLAB_MEX_FILE)
static void mdlSetWorkWidths(SimStruct *S)
{

  if (!ssSetNumRunTimeParams(S, 9)) return;

  ssRegDlgParamAsRunTimeParam(S, 0, 0, "P0_FeedForwardGain_Gain", SS_DOUBLE);

  ssRegDlgParamAsRunTimeParam(S, 1, 1, "P1_Observer_A", SS_DOUBLE);

  ssRegDlgParamAsRunTimeParam(S, 2, 2, "P2_Observer_B", SS_DOUBLE);

  ssRegDlgParamAsRunTimeParam(S, 3, 3, "P3_Observer_C", SS_DOUBLE);

  ssRegDlgParamAsRunTimeParam(S, 4, 4, "P4_Observer_X0", SS_DOUBLE);

  ssRegDlgParamAsRunTimeParam(S, 5, 5, "P5_L2_Gain", SS_DOUBLE);

  ssRegDlgParamAsRunTimeParam(S, 6, 6, "P6_DiscreteTimeIntegrator_g", SS_DOUBLE);

  ssRegDlgParamAsRunTimeParam(S, 7, 7, "P7_DiscreteTimeIntegrator_I", SS_DOUBLE);

  ssRegDlgParamAsRunTimeParam(S, 8, 8, "P8_IntegralGain_Gain", SS_DOUBLE);

  updateGlobalVarsFromRunTimeParams(S);
}
#endif

#define MDL_INITIALIZE_CONDITIONS

static void mdlInitializeConditions(SimStruct *S)
{

#ifdef PIL_S_FUNCTION
  pilMarshallInitSFcnSimStruct(S);
  pilMarshallInitRootSimStruct(ssGetRootSS(S));
#endif

  Controller_initialize(1);
}

#define MDL_START
#if defined(MDL_START)

static void mdlStart(SimStruct *S)
{
  
  if (++Controller_sf_counter > 1) {
    ssSetErrorStatus(S,"This S-Function is limited to one copy per model.");
    Controller_sf_counter = 0;
    return;
  }
}
#endif

static void mdlOutputs(SimStruct *S, int_T tid)
{
  InputRealPtrsType InPort_0 = (InputRealPtrsType) ssGetInputPortSignalPtrs(S,
   0);

  InputRealPtrsType InPort_1 = (InputRealPtrsType) ssGetInputPortSignalPtrs(S,
   1);

  real_T *OutPort_0 = (real_T *)ssGetOutputPortSignal(S, 0);

  Controller_U.trajectory[0] = InPort_0[0][0];
  Controller_U.trajectory[1] = InPort_0[1][0];
  Controller_U.trajectory[2] = InPort_0[2][0];

  Controller_U.Encoder = InPort_1[0][0];

  Controller_step();

  OutPort_0[0] = Controller_Y.U;
}

static void mdlTerminate(SimStruct *S)
{

  Controller_sf_counter = 0;
}

#ifdef MATLAB_MEX_FILE
#include "simulink.c"
#include "fixedpoint.c"
#else
#include "cg_sfun.h"
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美唯美清纯偷拍| 亚洲一区二区欧美激情| 午夜精品在线看| 91视频www| 久久精品一区八戒影视| 精品一区二区三区免费毛片爱| 精品视频一区二区不卡| 亚洲一区免费在线观看| 91麻豆福利精品推荐| 国产女人aaa级久久久级| 国产老女人精品毛片久久| 91精品国产综合久久国产大片| 亚洲成人资源在线| 正在播放一区二区| 天天亚洲美女在线视频| 欧美tk—视频vk| 成人黄色片在线观看| 日韩综合一区二区| 日韩高清国产一区在线| 欧美性受xxxx黑人xyx| 亚洲激情网站免费观看| 3d动漫精品啪啪| 国产v综合v亚洲欧| 一区二区三区免费看视频| 91精品国产综合久久福利| 国产在线精品免费av| 亚洲视频免费看| 欧美大胆人体bbbb| 一本久久a久久免费精品不卡| 午夜精品久久久久久久蜜桃app| 日韩欧美一区在线观看| 成人午夜激情影院| 自拍偷拍欧美精品| 3d动漫精品啪啪一区二区竹菊| 国内精品伊人久久久久av一坑| 亚洲日本在线视频观看| 日韩一二三四区| 色88888久久久久久影院按摩| 日韩不卡在线观看日韩不卡视频| 久久久精品免费免费| 欧美一区午夜视频在线观看| 99久久婷婷国产精品综合| 国内精品伊人久久久久av一坑 | 蜜桃视频一区二区三区| 成人欧美一区二区三区视频网页| 7777女厕盗摄久久久| 日本精品视频一区二区| 波多野结衣欧美| 国产精品一区二区果冻传媒| 亚洲第一精品在线| 亚洲第一av色| 五月天激情综合网| 青青草精品视频| 奇米四色…亚洲| 免费成人美女在线观看| 天堂蜜桃91精品| 蜜桃久久久久久| 国内外成人在线| 国产成人亚洲精品狼色在线| 国产不卡视频在线观看| 风间由美中文字幕在线看视频国产欧美| 激情欧美一区二区| 国产精品亚洲一区二区三区在线 | 国产欧美日韩中文久久| 久久亚区不卡日本| 18欧美乱大交hd1984| 亚洲精品美国一| 日韩在线一区二区三区| 韩国精品主播一区二区在线观看| 国产v日产∨综合v精品视频| 亚洲精品一区二区三区香蕉| 欧美体内she精高潮| 538在线一区二区精品国产| 欧美成人免费网站| 亚洲欧美在线视频观看| 日韩高清不卡在线| www.成人网.com| 91麻豆精品国产91久久久使用方法| 日韩欧美一卡二卡| 中文字幕亚洲欧美在线不卡| 亚洲va韩国va欧美va| 国产v日产∨综合v精品视频| 欧美老女人第四色| 国产精品免费人成网站| 婷婷一区二区三区| 不卡视频在线看| 2020国产成人综合网| 夜夜夜精品看看| av在线不卡网| wwwwxxxxx欧美| 裸体在线国模精品偷拍| 欧美性大战久久| 亚洲精品中文字幕乱码三区| 麻豆成人av在线| 日韩一区二区三| 亚州成人在线电影| 欧美在线观看视频在线| 国产精品成人网| 色综合视频在线观看| 国产精品色噜噜| 不卡视频在线观看| 中文字幕一区二区三区在线播放 | 一区在线观看视频| 国产成人自拍网| 国产精品日韩成人| av成人免费在线| 亚洲永久免费av| 欧美一区二区三区四区久久| 奇米亚洲午夜久久精品| 欧美精品一区二区在线播放| 美女精品一区二区| 国产三级精品视频| 成人精品高清在线| 亚洲一区二区在线视频| 欧美一二三区在线观看| 国内精品不卡在线| 亚洲欧美日韩在线| 欧美肥妇毛茸茸| 国产一区二区不卡老阿姨| 国产精品视频看| 欧美日韩高清在线播放| 麻豆高清免费国产一区| 中文字幕在线不卡一区二区三区| 一本一道波多野结衣一区二区| 日韩不卡免费视频| 日韩毛片视频在线看| 日韩一区二区中文字幕| eeuss影院一区二区三区| 日韩精品一二三四| 亚洲免费大片在线观看| 欧美亚洲尤物久久| 中文字幕一区二区三区视频| av一区二区三区四区| 久久精品99国产精品日本| 18欧美乱大交hd1984| 91精品在线一区二区| 91一区二区在线观看| 国产激情偷乱视频一区二区三区| 一区2区3区在线看| 国产精品九色蝌蚪自拍| 国产亚洲一区二区在线观看| 在线播放视频一区| 欧美天天综合网| 一本大道综合伊人精品热热| 国产精品一品二品| 激情欧美一区二区三区在线观看| 日韩中文字幕区一区有砖一区| 一卡二卡三卡日韩欧美| 自拍视频在线观看一区二区| 欧美国产乱子伦| 国产精品不卡在线观看| 国产精品免费aⅴ片在线观看| 欧美精品一区二区久久久| 日韩一区二区电影| 欧美变态凌虐bdsm| 91精品国产高清一区二区三区蜜臀 | 欧美精品精品一区| 日韩一区二区三区视频在线观看| 欧美午夜精品一区二区三区| 欧美精品久久一区| 日韩欧美你懂的| 久久久久久亚洲综合影院红桃 | 欧美日韩一区二区三区在线看| 在线观看91精品国产入口| 欧美日韩精品电影| 精品久久久三级丝袜| 国产精品视频免费| 一区二区三区波多野结衣在线观看| 亚洲最色的网站| 日韩电影一区二区三区| 成人中文字幕在线| 欧美日韩在线观看一区二区 | 日韩综合小视频| 丁香婷婷综合色啪| 337p亚洲精品色噜噜| 国产亚洲午夜高清国产拍精品| 伊人夜夜躁av伊人久久| 精品午夜一区二区三区在线观看| 一本大道久久a久久综合| 欧美一级夜夜爽| 一区二区三区.www| 国产1区2区3区精品美女| 欧美一区二区三区在线视频 | 日韩美女在线视频| 亚洲欧美日韩国产成人精品影院 | 久久亚洲精精品中文字幕早川悠里| 最好看的中文字幕久久| 国产精品一二三区| 欧美va亚洲va| 狠狠色丁香婷综合久久| 欧美日韩国产色站一区二区三区| 欧美一区二区三区四区五区 | 琪琪久久久久日韩精品| 国产精品自拍毛片| 欧美大白屁股肥臀xxxxxx| 三级在线观看一区二区| 国产精品福利影院| 国产精品视频在线看| 久久免费的精品国产v∧| 日韩欧美中文字幕公布|