控制工程的MATLAB实现–传递函数、时域响应 控制系统数学模型的MATLAB实现 控制系统在MATLAB中的描述 控制系统中,一般用传递函数的形式描述系统,形式如下:
在MATLAB中,用Num=[b1,b2,…..bm,bm+1]和den=[a1,a2,…,an+1]分别表示分子和分母的多项式系数,然后以下语句来来表示整个系统。 其中,tf()代表传递函数的形式描述系统,也可以用零极点形式来描述,语句为 传递和函数形式与零极点形式可以相互转换 当传递函数复杂时,应用多项式乘法函数conv()来实现 用matlab展开部分分式
用num和den分别表示G(s)分子和分母的多项式,即num=[b1,b2,…,bm+1];den=[a1,a2,…,an+1];MATLAB提供函数residue用来实现部分分式展开: r,p分别为展开后的留数及极点构成的列向量;k为余项多项式行向量。若无重极点,MATLAB展开后的一般形式为:
若存在q个 重极点,则展开式将包含以下各项:
计算闭环函数 系统的基本连接方式有三种:串联、并联和反馈。 如果是单位反馈系统,则可使用cloop()函数,sys=cloop(sys1,-1)。 应用举例 1、使用MATLAB求下式的部分分式展开
运行结果如下:
展开式即为:
residue也可用于将部分分式合并 运行结果如下:
2、用MATLAB求传递函数 已知两个系统G1(s)=1/s和G2(s)=1/(s+2),分别求两者串联,并联时的系统传递函数,并求负反馈连接时系统的零极点增益模型。 使用MATLAB进行系统时间响应分析 常用函数 MATLAB的提供了多个线性系统在特定输入下仿真的函数。 Step: [y,x]=step(sys,t)或者[y,x]=step(sys)sys可以由tf()或者zpk()得到,t是选定的仿真时间,没有t的话,则按照自动选择的时间范围,此函数是返回结果数值,并不会直接画图。如果对数值不感兴趣,则可以直接使用以下格式step(sys,t)或者step(sys) pulse: impulse()和函数step()的调用格式完全一致。 任意输入下的仿真函数lsim()的调用格式稍微有不同,在调用此函数时,要给定一个输入向量u,调用格式如下:[y,x]=lsim(sys,u,t) u的个数要与t的个数一致。同样的,如果不想要数据,只想要图形,也可以直接使用lsim(sys,u,t)指令。 以上所说的都是连续的,吐过是离散的,则对应的函数是dimpulse, dstep, dlsim等。 时域分析常用的函数如下:step—-节约响应impulse—-脉冲响应lsim—–对指定输入的连续输出gensing—对lsim产生输入信号stepfun—产生单位阶跃输入 应用实例 绘制以下传递函数的单位阶跃响应曲线、脉冲响应曲线
如果我们想做一个单位斜坡响应呢,MATLAB里没有斜坡响应的函数,我们可以用lsim函数来做
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/70283.html