/* 文件名为xiu_exp11.c
* 利用C MEX模板文件编写S函数,实现单位延迟(1/z)积分(1/s)的连接离散混合系统
*/
#define S_FUNCTION_NAME mixedm
#define S_FUNCTION_LEVEL 2
#include "simstruc.h"
#include U(element)(*uPtrs[element])
/*====================*
* S-函数方法 *
*====================*/
/* 函数 mdlInitializeSizes ======================
* Simulink利用该信息决定S函数模块的特性(如输入、输出和状态等变量数目等)
*/
static void mdlInitializeSizes(SimStruct *S)
{
ssSetNumSFcnParams(S, 0); /*需要参数的数目*/
if (ssGetNumSFcnParams(S) != ssGetSFcnParamsCount(S)) {
/*当需要参数与实际参数数目相等时,则返回*/
return;
}
ssSetNumContStates(S, 1);
ssSetNumDiscStates(S, 1);
ssSetNumRWork(S,1); /*对积分结果进行延迟操作*/
if (!ssSetNumInputPorts(S, 1)) return;
ssSetInputPortWidth(S, 0, 1);
ssSetInputPortDirectFeedThrough(S, 0, 1);
ssSetInputPortSampleTime(S,0,CONTINUOUS_SAMPLE_TIME);
ssSetInputPortOffsetTime(S,0,0.0);
if (!ssSetNumOutputPorts(S, 1)) return;
ssSetOutputPortWidth(S, 0, 1);
ssSetOutputPortSampleTimes(S,0,1);
ssSetOutputPortOffsetTime(S,0,0);
ssSetNumNonsampledZCs(S, 2);
ssSetOptions(S, (SS_OPTION_EXCEPTION_FREE_CODE|
SS_OPTION_PORT_SAMPLE_TIMES_ASSIGNED));
}
/* 函数mdlInitializeSampleTimes =========================
* 指定S函数的连接和离散系统的采样时间都为1.0
*/
static void mdlInitializeSampleTimes(SimStruct *S)
{
ssSetSampleTime(S, 0, CONTINUOUS_SAMPLE_TIME);
ssSetOffsetTime(S, 0, 0.0);
ssSetSampleTime(S,1,1.0);
ssSetOffsetTime(S, 1, 0.0);
ssSetModelReferenceSampleTimeDefaultInheritance(S);
}
#define MDL_INITIALIZE_CONDITIONS /*改变到#undef以移除函数*/
#if defined(MDL_INITIALIZE_CONDITIONS)
/* 函数 mdlInitializeConditions ============================
*初始化连续和离散系统的状态为1
*/
static void mdlInitializeConditions(SimStruct *S)
{
real_T*xC0=ssGetContStates(S);
real_T*xD0=ssGetRealDiscStates(S);
xCO[0]=1.0;
xD0[0]=1.0;
}
/*函数mdlOutputs =============================================
* 计算输出y=xD,同时更新积分器的内部输出结果
*/
static void mdlOutputs(SimStruct *S, int_T tid)
{
/*更新积分器内部输出结果"zoh"*/
if(ssIsContinuousTask(S,tid)){
real_T*zoh=ssGetRWork(S);
real_T*xC=ssGetContStates(S)
}
}
/*计算y=xD*/
if(ssIsSampleHit(S,1,tid)){
real_T*y=ssGetOutputPortRealSignal(S,0);
real_T*xD=ssGetRealDiscStates(S);
y[0]=xD[0];
}
}
#define MDL_UPDATE /*改变#undef以移除函数*/
#if defined(MDL_UPDATE)
/*函数mdlUpdate ===========================================
*计算xD=xC
*/
static void mdlUpdate(SimStruct *S, int_T tid)
{
UNUSED_ARG(tid);
%计算xD=xC
if(ssIsSamleHit(S,1,tid)){
real_T*xD=ssGetRealDiscStates(S);
real_T*zoh=ssGetRWorks(S);
xD[0]=*zoh;
}
}
#define MDL_DERIVATIVES /*改变#undef以移除函数*/
#if defined(MDL_DERIVATIVES)
/* 函数mdlDerivatives =========================================
*计算连续模型系统状态的导数xdot=U
*/
static void mdlDerivatives(SimStruct *S)
{
real_T*dx=ssGetdX(S);
InputRealPtrsType uPtrs=ssGetInputPortRealSignalPtrs(S,0);
/*计算xdot=U*/
dx[0]=U[0];
}
/*函数mdlTerminate ==========================================
*处理仿真结
*/
static void mdlTerminate(SimStruct *S)
{
UNUSED_ARG(S); /*没有使用的输入参数*/
}
#ifdef MATLAB_MEX_FILE /* 该文件被编译为MEX文件? */
#include "simulink.c" /*MEX文件接口机制*/
#else
#include "cg_sfun.h" /*代码产生注册函数*/
#endif
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
MATLAB_Simulink建模与仿真[张德丰][程序源代码] (100个子文件)
li2.m 4KB
li21.m 3KB
li21.m 2KB
li7.m 2KB
li24.m 2KB
li8.m 2KB
li6.m 1KB
li5.m 1KB
getfod.m 1KB
li2.m 1KB
ziegler.m 1KB
li3_2.m 1KB
li3_1.m 993B
li6.m 970B
li9_2.m 909B
li16.m 876B
li28_2.m 770B
li3.m 754B
cohenpid.m 745B
li12.m 734B
li2.m 732B
li1.m 687B
li9_1.m 659B
li12.m 649B
li16.m 629B
li7.m 604B
ste.m 591B
li4.m 566B
li5.m 559B
li10.m 542B
li25.m 541B
li18.m 495B
li27_1.m 483B
li20.m 475B
li7.m 464B
li22.m 448B
li7.m 403B
li24.m 392B
li6.m 385B
li28_1.m 384B
li5.m 375B
li13.m 370B
li5.m 357B
li27_2.m 357B
li1.m 354B
li16.m 354B
li7.m 350B
li14.m 333B
li3_3.m 324B
li6.m 319B
li3_5.m 318B
li9.m 316B
li1_4.m 314B
li1_2.m 308B
li2_4.m 307B
li11.m 306B
li19.m 295B
li27.m 294B
li4.m 283B
li26.m 261B
li18.m 258B
li3.m 247B
li8.m 247B
li2_2.m 237B
li28.m 232B
li6.m 227B
li14.m 222B
li20.m 220B
li4.m 196B
li1_1.m 192B
li3_4.m 186B
li26.m 185B
li2_3.m 184B
li3_1.m 182B
li2_1.m 179B
li22.m 177B
li16_1.m 173B
li5.m 173B
li1_3.m 169B
li21.m 162B
li8.m 152B
li9.m 149B
li3_2.m 142B
li16_2.m 139B
li2.m 136B
li17.m 135B
li15.m 133B
li7.m 132B
li1.m 130B
li22.m 119B
li30.m 118B
li19.m 118B
li29.m 80B
li24.m 72B
li23.m 69B
li3.m 66B
li23.m 56B
li25.m 55B
li2.m 53B
li8.txt 4KB
共 100 条
- 1
资源评论
sigrid34
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- yolov5,SSD 可能使用到的一些代码
- 基于c51单片机+DS1302+DHT11温湿度模块+LCD1602显示的万年历硬件原理图+BOM+软件程源码序+仿真图.zip
- NSGA2的MATLAB代码
- Messagepassingtest_GCN_DGL.py
- Sh,Docker 运维好帮手,一招通过 sh 脚本批量快速启动和重启多个Docker 容器
- PCF2123.pdf
- 打开注册表操作.doc
- Windows 常见运行运行库32+64
- WMJUL8iC.html
- 基于3KW光伏并网单相逆变器设计(TMS320F28035控制板+显示板+STM32F103功率板)硬件(原理图+PCB)工程
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功