⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sfun_eom.c

📁 这也是一个关于导弹目标的Matlab程序
💻 C
字号:
#define S_FUNCTION_LEVEL 2#define S_FUNCTION_NAME sfun_eom#include "simstruc.h"#include <math.h>#define U(element) (*uPtrs[element])  /* Pointer to Input Port0 */static void mdlInitializeSizes(SimStruct *S){   ssSetNumSFcnParams(S, 2);     if (ssGetNumSFcnParams(S) != ssGetSFcnParamsCount(S)) { return; }   ssSetNumContStates(S, 6);   ssSetNumDiscStates(S, 0);   if (!ssSetNumInputPorts(S, 1)) { return; }   ssSetInputPortWidth(S, 0, 10);   if (!ssSetNumOutputPorts(S, 1)) { return; }   ssSetOutputPortWidth(S, 0, 6);   ssSetNumSampleTimes(S, 1);   ssSetNumRWork(S, 0);   ssSetNumIWork(S, 0);   ssSetNumPWork(S, 0);   ssSetNumModes(S, 0);   ssSetNumNonsampledZCs(S, 0);   ssSetOptions(S, (SS_OPTION_WORKS_WITH_CODE_REUSE |                    SS_OPTION_USE_TLC_WITH_ACCELERATOR));   return;}static void mdlInitializeSampleTimes(SimStruct *S){    ssSetSampleTime(S, 0, CONTINUOUS_SAMPLE_TIME);    ssSetOffsetTime(S, 0, 0.0);      return;}#define MDL_INITIALIZE_CONDITIONSstatic void mdlInitializeConditions(SimStruct *S){  real_T *x0    = ssGetContStates(S);  x0[0]=mxGetPr(ssGetSFcnParam(S, 0))[0];  x0[1]=mxGetPr(ssGetSFcnParam(S, 0))[1];  x0[2]=mxGetPr(ssGetSFcnParam(S, 0))[2];  x0[3]=mxGetPr(ssGetSFcnParam(S, 1))[0];  x0[4]=mxGetPr(ssGetSFcnParam(S, 1))[1];  x0[5]=mxGetPr(ssGetSFcnParam(S, 1))[2];}static void mdlOutputs(SimStruct *S, int_T tid){  real_T *y = ssGetOutputPortRealSignal(S, 0);  real_T *x = ssGetContStates(S);    y[0]=x[0];  y[1]=x[1];  y[2]=x[2];  y[3]=x[3];  y[4]=x[4];  y[5]=x[5];}#define MDL_DERIVATIVESstatic void mdlDerivatives(SimStruct *S){  real_T *dx = ssGetdX(S);  real_T *x = ssGetContStates(S);  InputRealPtrsType uPtrs = ssGetInputPortRealSignalPtrs(S, 0);    double Jxx,Jyy,Jzz,m,Fx,Fy,Fz,Mx,My,Mz,vx,vy,vz,wx,wy,wz;  Jxx=U(0);  Jyy=U(1);  Jzz=U(2);  m=U(3);  Fx=U(4);  Fy=U(5);  Fz=U(6);  Mx=U(7);  My=U(8);  Mz=U(9);  vx=x[0];  vy=x[1];  vz=x[2];  wx=x[3];  wy=x[4];  wz=x[5];  dx[0]=Fx/m - vz*wy + vy*wz;  dx[1]=Fy/m - vx*wz + vz*wx;  dx[2]=Fz/m - vy*wx + vx*wy;;  dx[3]=(Mx - (Jzz-Jyy)*wy*wz)/Jxx;  dx[4]=(My - (Jxx-Jzz)*wz*wx)/Jyy;  dx[5]=(Mz - (Jyy-Jxx)*wx*wy)/Jzz;  }static void mdlTerminate(SimStruct *S){}#ifdef	MATLAB_MEX_FILE    /* Is this file being compiled as a MEX-file? */#include "simulink.c"      /* MEX-file interface mechanism */#else#include "cg_sfun.h"       /* Code generation registration function */#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -