利用matlab编写S函数求解微分方程

上传人:cn****1 文档编号:431468768 上传时间:2022-10-15 格式:DOC 页数:8 大小:59KB
返回 下载 相关 举报
利用matlab编写S函数求解微分方程_第1页
第1页 / 共8页
利用matlab编写S函数求解微分方程_第2页
第2页 / 共8页
利用matlab编写S函数求解微分方程_第3页
第3页 / 共8页
利用matlab编写S函数求解微分方程_第4页
第4页 / 共8页
利用matlab编写S函数求解微分方程_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《利用matlab编写S函数求解微分方程》由会员分享,可在线阅读,更多相关《利用matlab编写S函数求解微分方程(8页珍藏版)》请在金锄头文库上搜索。

1、word自动化专业综合设计报告设计题目:利用matlab编写S函数求解微分方程 所在实验室: 自动化系统仿真实验室 指导教师: 郭卫平 学生某某 律迪迪 班级 文自0921 学号 200990519114 成绩评定:一、 设计目的了解使用simulink的扩展工具S-函数,s函数可以利用matlab的丰富资源,而不仅仅局限于simulink提供的模块,而用c或c+等语言写的s函数还可以实现对硬件端口的操作,还可以操作windows API等的,它的魅力在于完美结合了simulink框图简洁明快的特点和编程灵活方便的优点,提供了增强和扩展sinulink能力的强大机制,同时也是使用RTW实现实时

2、仿真的关键。二、 设计要求求解解微分方程y=y-2x/yy(0)=1要求利用matlab编写S函数求解三、 设计内容可加附页【步骤1】获取状态空间表达式。在matlab中输入dsolve(Dy=y-2*x/y,y(0)=1,x)得到y=(2*x+1).(1/2); 【步骤2】建立s函数的m文件。利用21用S函数模板文件。以下是修改之后的模板文件sfuntmpl.m的内容。function sys,x0,str,ts = sfuntmpl(t,x,u,flag)%SFUNTMPL General M-file S-function template% With M-file S-function

3、s, 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)% What is returned by SFUN

4、C 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

5、.% 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 state vectors, X and X0

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

7、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% actual length for all other flags will be equal to the% length of the input, U.% SYS(5) = Reserved for root f

8、inding. Must 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.%

9、SYS(7) = Number of sample times. This is the number of rows in TS.% 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 o

10、rdering of the sample times must be:% TS = 0 0, : Continuous sample time.% 0 1, : Continuous, but fixed in minor step% sample time.% PERIOD OFFSET, : Discrete sample time where% PERIOD 0 & OFFSET PERIOD.% -2 0; : Variable step discrete sample time% where FLAG=4 is used to get time of% next hit.% The

11、re can be more than one sample time providing% they are ordered such that they are monotonically% 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 models sampling times% and simulation time.% You can also specify that the sample time of the S-function% is inherited from the driving block. For fun

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

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