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

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

利用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

相关主题
相关文档
最新文档