matlab仿真

这样的一个系统的m文件怎么写呢?... 这样的一个系统的m文件怎么写呢? 展开
 我来答
穆迪想读博
2020-05-01 · 贡献了超过117个回答
知道答主
回答量:117
采纳率:0%
帮助的人:6.1万
展开全部

MATLAB从入门到精通—Simulink仿真

tianxiawulang
推荐于2016-02-05 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2634万
展开全部
1、首先,有点奇怪,题主为什么要用m文件来写这个系统呢?用m文件当然也可以写,但对于结构稍微复杂一些的系统来说,显然用Simulink实现是更好的选择。

2、这个图中的积分器带有复位端口,且复位条件为leval,即在复位信号本步非零或上一步非零的条件下,积分器会被复位。应该大多数时刻积分器处于被复位的状态吧?那么,几乎所有时刻,积分器只是输出其初值而已,不知道题主搞出这样一个奇怪的结构来有什么意义?

3、传递函数部分的做法,要写M文件,一般是把对应的微分方程或状态方程写出来,然后结合系统其它部分的方程一起,构成一个更大的微分方程组,然后用ode系列函数求解即可。
更多追问追答
追问

1)我原来是想画这个系统的Bode图的,结果发现simulink中带的analysis只能画出线性系统的Bode图,所以我想写成m文件来得到其伯德图。


2)积分器问题好像是存在,所以我换成either,可网上说“either是当复位信号的变化从零到一个非零值或有变化迹象时复位。”,而我要实现的是下图的功能,所以有点搞不明白了。能帮忙讲一下吗?谢谢

追答
1、Bode图本来就是对线性系统而言的,你既然引入了非线性特性,无论用Simulink还是M文件,都不能画出Bode图吧?

2、如果按照你给的这个方程,与上面图中的复位刚好反过来了:方程中是当e=0时积分器复位,而上面的图中,是e~=时复位。

要想实现这个方程的功能,应该在复位信号那条支路上串联一个Fcn模块,表达式写成u==0。但这样实际上起不到任何作用,因为从数值计算的角度说,误差信号刚巧严格等于0的时刻几乎捕捉不到,所以,改成 abs(u) <= tol 更合理一些,其中tol是允许的误差,比如可以取0.01。

可以告诉我这是哪个文献上的控制方法吗?感觉有点像变结构控制,但又明显把问题简单化了,即,希望误差一旦为0就把控制量u置0,这对于连续系统而言是不太可能实现的(有点像离散系统中所谓无纹波控制)。

我注意到你之前问过一个问题(编号1959594565712906900),当时就是觉得这个条件很怪,所以就没回答。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式