利用matlab编写S函数求解微分方程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
利用matlab编写S函数求解微分方程自动化专业综合设计报告
自动化专业综合设计报告
函数求解微S编写设计题目:利用
matlab
分方程
自动化系统仿真实验室所在
实验室:
郭卫平
指导教师:
律迪迪学生姓名
200990519114 班级文自0921 学号
成绩评定:
自动化专业综合设计报告
一、设计目的
了解使用simulink的扩展工具——S-函数,s函数可以利用matlab的丰富资源,而不仅仅局限于simulink提供的模块,而用c或c++等语言写的s函数还可以实现对硬件端口的操作,还可以操作windows API 等的,它的魅力在于完美结合了simulink 框图简洁明快的特点和编程灵活方便的优点,提供了增强和扩展sinulink能力的强大机制,同时也是使用RTW实现实时仿真的关键。
二、设计要求
求解解微分方程
y'=y-2x/y
自动化专业综合设计报告
y(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 S-function
M-file General
template
define you can With % M-file
S-functions,
you own ordinary differential system equations (ODEs),
discrete %
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)
%
given is % What returned by SFUNC at a
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
-----
------ %
-------------------------------
-------------
[SIZES,X0,STR,TS] % 0 Initialization, return system
sizes in SYS,
state initial % in X0, state ordering strings
in STR,
and %
sample times in TS.
Return
% 1 DX
自动化专业综合设计报告
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 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) = Number 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