如何保证s函数的计算步长和simulink步长设置的固定步长一致

Simulink仿真时间、步长、精度和解法器设置
在Simulink模型中Configuration
Parameters里的Solver页设置仿真时间、步长、精度和解法器。
一、仿真时间:注意这里的时间概念与真实的时间并不一样,只是计算机仿真中对时间的一种表示,比如10秒的仿真时间,如果采样步长定为0.1,则需要执行100步,若把步长减小,则采样点数增加,那么实际的执行时间就会增加。一般仿真开始时间设为0,而结束时间视不同的因素而选择。总的说来,执行一次仿真要耗费的时间依赖于很多因素,包括模型的复杂程度、解法器及其步长的选择、计算机时钟的速度等等。
二、仿真步长模式:用户在Type后面的第一个下拉选项框中指定仿真的步长选取方式,可供选择的有Variable-step(变步长)和Fixed-step(固定步长)方式。
1)变步长模式可以在仿真的过程中改变步长,提供误差控制和过零检测;
2)固定步长模式在仿真过程中提供固定的步长,不提供误差控制和过零检测。
步长参数:对于变步长模式,用户可以设置最大的和推荐的初始步长参数,缺省情况下,步长自动地确定,它由值auto表示。
size(最大步长参数):它决定了解法器能够使用的最大时间步长,它的缺省值为“仿真时间/50”,即整个仿真过程中至少取50个取样点,但这样的取法对于仿真时间较长的系统则可能带来取样点过于稀疏,而使仿真结果失真。一般建议对于仿真时间不超过15s的采用默认值即可,对于超过15s的每秒至少保证5个采样点,对于超过100s的,每秒至少保证3个采样点。
step size(初始步长参数):一般建议使用“auto”默认值即可。
三、仿真精度(对于变步长模式):
1)Relative
tolerance(相对误差):它是指误差相对于状态的值,是一个百分比,缺省值为1e-3,表示状态的计算值要精确到0.1%;
2)Absolute
tolerance(绝对误差):表示误差值的门限,或者是说在状态值为零的情况下,可以接受的误差。如果它被设成了auto,那么simulink为每一个状态设置初始绝对误差为1e-6。
四、解法器
针对变步长和定步长分别有不同的解法器。
变步长模式解法器有:ode45,ode23,ode113,ode15s,ode23s,ode23t,ode23tb和discrete。
1)ode45:缺省值,四/五阶龙格-库塔法,适用于大多数连续或离散系统,但不适用于刚性(stiff)系统。它是单步解法器,也就是,在计算y(tn)时,它仅需要最近处理时刻的结果y(tn-1)。一般来说,面对一个仿真问题最好是首先试试ode45;
2)ode23:二/三阶龙格-库塔法,它在误差限要求不高和求解的问题不太难的情况下,可能会比ode45更有效。也是一个单步解法器;
3)ode113:是一种阶数可变的解法器,它在误差容许要求严格的情况下通常比ode45有效。ode113是一种多步解法器,也就是在计算当前时刻输出时,它需要以前多个时刻的解;
4)ode15s:是一种基于数字微分公式的解法器(NDFs)。也是一种多步解法器。适用于刚性系统,当用户估计要解决的问题是比较困难的,或者不能使用ode45,或者即使使用效果也不好,就可以用ode15s;
5)ode23s:它是一种单步解法器,专门应用于刚性系统,在弱误差允许下的效果好于ode15s。它能解决某些ode15s所不能有效解决的stiff问题;
6)ode23t:是梯形规则的一种自由插值实现。这种解法器适用于求解适度stiff的问题而用户又需要一个无数字振荡的解法器的情况;
7)ode23tb:是TR-BDF2的一种实现, TR-BDF2
是具有两个阶段的隐式龙格-库塔公式;
8)discrtet:当Simulink检查到模型没有连续状态时使用它。
固定步长模式解法器有:ode5,ode4,ode3,ode2,ode1和discrete。
1)ode5:缺省值,是ode45的固定步长版本,适用于大多数连续或离散系统,不适用于刚性系统;
2)ode4:四阶龙格-库塔法,具有一定的计算精度;
3)ode3:固定步长的二/三阶龙格-库塔法;
4)ode2:改进的欧拉法;
5)ode1:欧拉法;
6)discrete:是一个实现积分的固定步长解法器,它适合于离散无连续状态的系统。
如果你有所收获,欢迎用微信扫一扫进行打赏,赏金随意。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。查看: 396|回复: 13|关注: 0
Simulink中level2 S函数中步长和滤波器长度如何设置?
我建了一个level2 S函数,想通过参数框中输入两个参数u(步长)和n(滤波器长度),但是不知道怎么设置,有会建level2 s函数的教一下,谢谢!另外滤波器权值W要设置初始值,我根据别人的设置为0,结果仿真出来一直是0,想问下初始值设置为多少啊?
关注者: 136
滤波器写的有没有问题?
滤波器写的有没有问题?
我也是第一次写,我发给您,您帮我看看吧,谢谢
08:24 上传
点击文件名下载附件
13.45 KB, 下载次数: 6
关注者: 136
还没看你代码,首先我想知道步长为啥还要作为输入,它应该是通过解算器步长以及模块的sample time决定的,一般不作为信号输入,你这么做的原因是什么?
还没看你代码,首先我想知道步长为啥还要作为输入,它应该是通过解算器步长以及模块的sample time决定的, ...
这个是步长因子,应该和仿真步长不一样
还没看你代码,首先我想知道步长为啥还要作为输入,它应该是通过解算器步长以及模块的sample time决定的, ...
我是想建一个自适应滤波器,simulink中有LMS滤波器模块,但是我想用FxLMS算法,没有现成的模块,所以要建一个s函数,FxLMS算法有3个输入:X,Xr,e。两个输出:y,W。其中三个输入都是从外部直接连接输入的,还用在s函数中设置什么吗?输出都和输入有函数关系,除了在s函数中列出公式外,还要设置什么啊?通过改变参数u和n来看仿真结果,W的更新要用到u的,希望您能帮我提点建议,非常感谢!
关注者: 136
我是想建一个自适应滤波器,simulink中有LMS滤波器模块,但是我想用FxLMS算法,没有现成的模块,所以要建 ...
u是当前采样时刻的输入,不是步长啊,所以你楼上上要用到步长就感觉很奇怪。
u是当前采样时刻的输入,不是步长啊,所以你楼上上要用到步长就感觉很奇怪。 ...
恩,您看下我的s函数,有哪些不对的地方吗?
u是当前采样时刻的输入,不是步长啊,所以你楼上上要用到步长就感觉很奇怪。 ...
您好,你看过代码了吗?有什么问题吗?
u是当前采样时刻的输入,不是步长啊,所以你楼上上要用到步长就感觉很奇怪。 ...
。。。。。。。。?
Powered bysimulink 最新充气仿真娃娃 计算机仿真 系统仿真学报 仿真玩具枪 仿真论坛 仿真软..
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
第六章_SIMULINK仿真环境
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口simulink步长设置_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
simulink步长设置
上传于||暂无简介
阅读已结束,如果下载本文需要使用
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩3页未读,继续阅读
你可能喜欢

我要回帖

更多关于 simulink s函数 的文章

 

随机推荐