关于matlab中s-function参数设置的两个例子讲解详尽受益匪浅.pdf

关于matlab中s-function参数设置的两个例子讲解详尽受益匪浅.pdf

ID:57070720

大小:158.48 KB

页数:3页

时间:2020-07-31

关于matlab中s-function参数设置的两个例子讲解详尽受益匪浅.pdf_第1页
关于matlab中s-function参数设置的两个例子讲解详尽受益匪浅.pdf_第2页
关于matlab中s-function参数设置的两个例子讲解详尽受益匪浅.pdf_第3页
资源描述:

《关于matlab中s-function参数设置的两个例子讲解详尽受益匪浅.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、例10.1设系统的微分方程为:'x1x2t'0.5txxe22试建立系统仿真模型。2例10.2利用Simulink构建函数曲线y=5t+16。1例10.3利用Simulink仿真求I=xln(1x)dx。0例10.4有初始状态为0的二阶微分方程x"+0.2x'+0.4x=0.2u(t),其中u(t)是单位阶跃函数,试建立系统模型并仿真。例10.5PID控制器是在自动控制中经常使用的模块,在工程应用中其标准的数学模型为1TdsU(s)K(1)E(s)pTsTs/Nid其中采用了一阶环节来近似纯微分动作,为保证有良好的微分近似的效果,一般

2、选N≥10。试建立PID控制器的模型并建立子系统。例10.6利用使能子系统构成一个正弦半波整流器。例10.7利用触发子系统将一锯齿波转换成方波。例10.8采用S函数实现模块y=nx,即模块的功能是把一个输入信号n倍以后再输出。(1)利用MATLAB语言编写S函数。程序如下:%*************************************************%S函数timesn.m,其输出是输入的n倍%*************************************************function[sys,x0,str,ts]=

3、timesn(t,x,u,flag,n)switchflag,case0%初始化[sys,x0,str,ts]=mdlInitializeSizes;case3%计算输出量sys=mdlOutputs(t,x,u,n);case{1,2,4,9}%未使用的flag值sys=[];otherwise%出错处理error(['Unhandleflag=',num2str(flag)]);end%*************************************************%mdlInitializeSizes:当flag为0时进行整个系统的初始

4、化%*************************************************function[sys,x0,str,ts]=mdlInitializeSizes(T)%调用函数simsizes以创建结构体sizessizes=simsizes;%用初始化信息填充结构体sizessizes.NumContStates=0;%无连续状态sizes.NumDiscStates=0;%无离散状态sizes.NumOutputs=1;%有一个输出量sizes.NumInputs=1;%有一个输入信号sizes.DirFeedthrough=1;

5、%输出量中含有输入量sizes.NumSampleTimes=1;%单个采样周期%根据上面的设置设定系统初始化参数sys=simsizes(sizes);%给其他返回参数赋值。x0=[];%设置初始状态为零状态str=[];%将str变量设置为空字符串ts=[-1,0];%假定继承输入信号的采样周期%初始化子程序结束%*************************************************%mdlOutputs:当flag值为3时,计算输出量%**********************************************

6、***functionsys=mdlOutputs(t,x,u,n)sys=n*u;%输出量计算子程序结束。(2)模块的封装与测试。例10.9采用S函数来构造非线性分段函数。31xx31x33(xx3)234y24x52(xx5)25616x(1)利用MATLAB语言编写S函数。程序如下:function[sys,x0,str,ts]=sfunction(t,x,u,flag)switchflag,case0,[sys,x0,str,ts]=mdlInitializeSizes;case3,sys=mdlOu

7、tputs(t,x,u);case{1,2,4,9}2sys=[];otherwiseerror(['Unhandledflag=',num2str(flag)]);endfunction[sys,x0,str,ts]=mdlInitializeSizessizes=simsizes;sizes.NumContStates=0;sizes.NumDiscStates=0;sizes.NumOutputs=1;sizes.NumInputs=1;sizes.DirFeedthrough=1;sizes.NumSampleTimes=1;sys=simsizes(

8、sizes);x0=[];str=[]

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。