S-Function使用及应用举例资料

上传人:f****u 文档编号:128309098 上传时间:2020-04-20 格式:PDF 页数:16 大小:116.11KB
返回 下载 相关 举报
S-Function使用及应用举例资料_第1页
第1页 / 共16页
S-Function使用及应用举例资料_第2页
第2页 / 共16页
S-Function使用及应用举例资料_第3页
第3页 / 共16页
S-Function使用及应用举例资料_第4页
第4页 / 共16页
S-Function使用及应用举例资料_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《S-Function使用及应用举例资料》由会员分享,可在线阅读,更多相关《S-Function使用及应用举例资料(16页珍藏版)》请在金锄头文库上搜索。

1、高范强 IEE 版权所有 1 S Function 使用及应用举例 说明 近来在论坛中很多朋友问及 Simulink 下的 S 函数的编写及使用方法 在西安交大 BBS 上 hii yzf 网友发表了有关 S 函数使用的文章 举例比较详尽 相信对关心 S 函数的网友会有很大帮助 发信人 hii yzf 叶子 信区 MathTools 标 题 S FUNCTIONS 的书写之一 发信站 交通大学思源 BBS 站 Mon Apr 16 16 35 09 2001 站内信件 S FUNCTIONS 的书写之一 s function 也就是 system function 的缩写 说得简单 s fun

2、ction 就是用 MATLAB 所提供的模型不能完全 满足用户 而提供给用户自己编写程序来满足自己要求模型的接口 要了解 s function 必须了解以下知 识 1 direct feedthrough 2 dynamically sized inputs 3 setting sample times and offsets 由于我也不知道怎么把上面三句话精确的翻译成中文 因此在此不加翻译 大家自己理解 也许更好 由 于上面三部分的重要性 在此详细进行分析 一 direct feedthrough direct feedthrough 意思是说系统的输出或可变采样时间是否受到输入的控制 大

3、家清楚有的系统是受到输 入控制如 y k u u 是输入 k 是放大因子 y 是输出 而有的系统输出是不受到输入影响 如 输出 y x dx u x 表示状态 二 dynamically sized inputs 主要是给出 输入连续状态数目 size NumContStates 离散状态数目 size NumDiscStates 输出数目 size NumOutputs 输入数目 size NumInputs Direct Feedthrough size Dir Feedthrough 三 setting sample times and offsets setting smaple ti

4、mes and offsets 主要设置采样时间 MATLAB 为了用户方便 已经书写了 S FUNCTIONS 模板函数 sfuntmpl m 为了更好的写 S FUNCTIONS 大家来看一下 该函数 sfuntmpl m 内容如下 我 通过在该内容加注释来说明 以 开头 function sys x0 str ts sfuntmpl t x u flag 输出变量就此四个 大家必须注意它的顺序 输入变量可以为 t x u flag p1 pn 等 但是前面的四个变 量不能变 特此说明 SFUNTMPL General M file S function template 高范强 IEE

5、版权所有 2 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 调用格式

6、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

7、 具体怎样实现 大家参看后面的函数 mdlInitializeSizes 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

8、 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 Numbe

9、r 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 高范强 IEE 版权所有 3 actual length for all other flags will be equal to the length of the input U SYS 5 Reserved for root finding M

10、ust 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 tim

11、es This is the number of rows in TS 需要说明的是 sys 的顺序不能乱 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 b

12、e TS 0 0 Continuous sample time 0 1 Continuous but fixed in minor step sample time PERIOD OFFSET Discrete sample time where PERIOD 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 mo

13、notonically 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 mod

14、el 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 高范强 IEE 版权所有 4 are held during minor steps this is d

15、one by specifying SYS 7 1 and TS 1 1 Copyright c 1990 1998 by The MathWorks Inc All Rights Reserved Revision 1 12 The following outlines the general structure of an S function switch flag Initialization case 0 sys x0 str ts mdlInitializeSizes 大家是不是觉得此函数名太长 当然可以根据自己的爱好加以改变 不过后面的相应改 Derivatives case 1

16、 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 高范强 IEE 版权所有 5 mdlInitializeSizes Return the sizes initial conditions and sample times for the S function function sys x0 str ts mdlInitializeSizes call simsizes for a sizes structure fill it in and convert it to a sizes array

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号