matlab控制理论学习

news2024/11/15 15:28:21

一、求传递函数表达式residue()

1、极点不同的情况

分子和分母的矩阵分别为:

>> num=[2 5 3 6];

>> den=[1 6 11 6];

使用下列命令,即可对分式进行展开,展开后有多项,每一项的分子一定是数字,而分母则是一个多项式,r称为留数,p称为级数,k称为单独项

>> [r,p,k]=residue(num,den)

2、根据分式展开式得到多项式

>> r=[-6 -4 3];

>> p=[-3 -2 -1];

>> k=2;

>> [num1,num2]=residue(r,p,k);

>> printsys(num1,num2,'s')

3、极数相等的情况

上边的例子都是分母极数不相等的,所以分母都是一次多项式,但如果考虑到另一种情况,分母也称为特征多项式,这个多项式有重根。

>> num1=[0 1 2 3];

>> num2=[1 3 3 1];

>> [r,p,k]=residue(num1,num2)

可以看到p的数值有三个,且相同,那么分母将不是一次多项式,而是

得到原函数

>> [num1,num2]=residue(r,p,k)

>> printsys(num1,num2,'s')

二、求传递函数的零点、极点以及增益K

格式:[z,p,k]=tf2zp(num,den)

z代表零点,p代表极点,k代表增益

例题1:

>> num=[0 4 16 12];

>> den=[1 12 44 48];

>> [z,p,k]=tf2zp(num,den)

如果已经给定零点、极点和增益,可以使用如下代码生成原来的函数

>> z=[-3;-1];

>> p=[-6;-4;-2];

>> k=4;

>> [num,den]=zp2tf(z,p,k);

>> printsys(num,den,'s')

三、有理假分式展开、求留数、极点和直接项

所谓有理假分式,就是分子的阶数比分母高,这就导致了有理假分式进行分式展开时含有直接项

例题1:求以下式子的的拉普拉斯逆变换

>> num=[1 8 23 35 28 3];

>> den=[1 6 8 0];

>> [r,p,k]=residue(num,den)

可以求出展开式:

四、给定传递函数的零点、极点以及增益K求原传递函数

tf2zp:根据传递函数的分子分母来求得传递函数的零点、极点以及增益K

zp2tf:根据零点、极点和增益K求取传递函数

五、使用roots命令解多项式的根以及使用poly命令得到原多项式

例题1:

>> clear all

>> d=[1 2 3 4];

>> r=roots(d)

如果已经有原方程的根,则使用命令poly可以生成原多项式的系数

>> poly(r)

六、使用ord2命令生成一个标准的二阶系统

标准的二阶系统:

ord2命令能够生成一个二阶系统,但是分子部分没有常数的平方,所以需要乘一个系数

例子:

>> wn=5;

>> damping_ratio=0.4;

>> [num0,den]=ord2(wn,damping_ratio)

>> printsys(num0,den,'s')

七、求传递函数的单位阶跃响应并绘制出曲线

如果传递函数的分子和分母都是已知的,可以通过tf命令来定义传递函数

>> sys=tf(num,den)

num和den分别是传递函数的分子和分母系数,使用step函数来求出响应曲线

>> step(sys)

或者

>> step(num,den)

例题1:

>> num=[25];

>> den=[1 4 25];

>> step(num,den)

八、求传递函数的奈奎斯特曲线

直接绘图

>> num=[0.5];

>> den=[1 2 1 0.5];

>> sys=tf(num,den)

>> nyquist(sys)

在图上显示幅值裕度和相角裕度

>> [Gm,Pm,Wcg,Wcp]=margin(sys)

>> nyquist(sys)

>> title(['Gm=',num2str(Gm),',','Pm=',num2str(Pm)])

九、求传递函数的伯德图

例子:

其中伯德图包括幅频特性曲线和相频特性曲线

1、在10的-1次幂和10的3次幂之间生成200个点:

>> w=logspace(-1,3,200);

2、分子多项式系数:

>> num=5*[0.1 1];

3、分子是一个简单的多项式乘积,使用卷积命令conv来求乘积后的多项式系数

>> f1=[1 0];

>> f2=[0.5 1];

>> f3=[1/2500 0.6/50 1];

>> den=conv(f1,conv(f2,f3));

4、绘制伯德图

>> sys=tf(num,den)

>> bode(sys,w)

十、利用margin求幅值裕度和相角裕度

>> num=[0.5];

>> den=[1 2 1 0.5];

>> sys=tf(num,den);

>> margin(sys)

返回参数不绘图

1、直接使用传递函数求

>> [Gm,Pm,Wcg,Wcp] = margin(sys)

2、利用伯德图返回的参数求

>> [mag,phase,w] = bode(sys)

>> [Gm,Pm,Wcg,Wcp] = margin(mag,phase,w)

十一、根轨迹绘制

某系统的开环传递函数如下,求根轨迹

>> num=[1,2,4];

>> den=conv(conv([1,4,0],[1,6]),[1,1.4,1]);

>> sys=tf(num,den);

>> rlocus(sys)       //绘制根轨迹

>> axis([-8 2 -6 6])   //设定坐标范围,实轴[-8 2] 虚轴[-6 6]

在分析系统性能时,除了某一点对应的根轨迹增益外,有时还需要知道该增益对应的其他闭环极点的值,这时候输入以下命令:

>> [k,p]=rlocfind(sys)

十二、已知闭环传递函数求开环传递函数

开环传递函数=feedback(闭环传递函数,-1)
闭环传递函数=feedback(开环传递函数,1)

十三、求解微分方程的解

dsolve(‘方程1’,‘方程2’,…,‘方程n’,‘初始条件’,‘自变量),

初始条件省缺时,是求微分方程的通解。

Dy代表y的导数,D2y代表y的二阶导数, D3y代表y的三阶导数……

例题1:

>> y=dsolve('D2y+2*Dy+y-x^2=0','x')

例题2:

>> y1=dsolve('D2y+4*Dy+29*y=0','y(0)=0,Dy(0)=15','x')

例题3:

>> eq1='Dx=2*x-3*y+3*z';

>> eq2='Dy=4*x-5*y+3*z';

>> eq3='Dz=4*x-4*y+2*z';

>> [x,y,z]=dsolve(eq1,eq2,eq3,'x(0)=1,y(0)=2,z(0)=1')

十四、泰勒展开

1、求公式f的麦克劳林多项式

格式:taylor(f)

2、求公式f在x=1处的泰勒级数展开

格式:taylor(f,x,’EspansionPoint’,1)

格式:taylor(f,x,1)

3、求函数f的泰勒多项式的n项目

格式:taylor(f,’order’,4)

4、求函数f在x=n处的a阶多项式

格式:taylor(f,x,n,’order’,a)

5、画出展开式的图

ezplot(ans)

十五、状态空间表达式建立

>> A=[3,1,0.5;1 0.1 0;1.2 6 0.1]

>> B=[1;0;3]

>> C=[1 1 2]

>> D=0

>> sys=ss(A,B,C,D)     //建立状态空间表达式模型

>> sys=tf(sys)        //得到系统多项式形式的传递函数模型

>> sys=zpk(sys)      //得到系统零-极点形式的传递函数模型

>> [num,den]=ss2tf(A,B,C,D)  //传递函数多项式形式的分子、分母多项式系数

>> [A,B,C,D]=tf2ss(num,den)  //与上边的式子反过来

>> [z,p,k]=ss2zp(A,B,C,D)     //得到极点、零点、增益

>> [A,B,C,D]=zp2ss(z,p,k)     //跟上边的式子反过来

十六、判断系统稳定性

eig函数:直接判定

pzmap函数:图解判定

1、高阶连续系统稳定性的判断

>> num=[10 50 100 100 40];

>> den=[1 21 184 870 2384 3664 2496];

>> sys=tf(num,den);

>> sys1=feedback(sys,1)   //求系统单位反馈传递函数

>> pzmap(sys1)          //绘制零极点图

>> eig(sys1)             //求系统特征根

2、高阶离散系统稳定性判断

>> num=[6 -0.6 -0.12];

>> den=[1 -1 0.25 0.25 -0.125];

>> sys=tf(num,den,'Ts',0.1)

>> z=tf('z','Ts',0.1)

>> Gc=0.3*(z-0.6)/(z+0.8);

>> sys1=feedback(sys*Gc,1)

>> pzmap(sys1),abs(eig(sys1)')

十七、傅里叶变换

1、傅里叶变换

>> syms x w

>> f=exp(-x^2);

>> g=fourier(f,w)

2、傅里叶逆变换

>> syms x w

>> f=exp(-w^2/4);

>> g=ifourier(f,x)

十八、拉普拉斯变换

1、拉普拉斯变换

例题1:

>> syms t;

>> x=t*exp(-2*t);

>> X=laplace(x);

>> disp(X)

例题2:

>> syms t;

>> x=exp(-t)*sin(2*t);

>> X=laplace(x);

>> disp(X)

2、拉普拉斯逆变换

例题1:

>> syms s;

>> F=100*(s+50)/(s^2+201*s+200);

>> f=ilaplace(F);

>> disp(F)

>> ezplot(f)

例题2:

>> syms s;

>> F=1/(4*s*(s^2+1));

>> f=ilaplace(F);

>> disp(f)

>> ezplot(f)

整理自

一:用MATLAB求传递函数的零点,极点以及增益K_Mr.YunLong的博客-CSDN博客_matlab求传递函数零极点

MATLAB学习记录-传递函数的建模2(零-极点形式的传递函数模型)-自动控制篇_Blablabla...的博客-CSDN博客_zp2tf函数

MATLAB学习记录-传递函数的建模1(多项式形式的传递函数模型)-自动控制篇_Blablabla...的博客-CSDN博客_传递函数的分子分母系数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/176591.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

mysql底层解析——连接层,包括连接、解析、缓存、引擎、存储等

1、 前言 打算写一个系列的文章,主要是mysql底层解析。 很多时候,程序员对mysql处于频繁使用,但都一知半解的程度,除了会加个索引,貌似也没啥优化的技能了。事实上,mysql能有今日的成就,必然不…

Selenium4新特性-关联定位策略

Selenium 4 引入了关联元素定位策略(Relative Locators)。这种方式主要是应对一些不好定位的元素,但是其周边相关联的元素比较好定位。实现步骤是先定位周边较容易定位的元素,再根据关联元素定位策略定位到想定位的那个元素。如下以具体案例讲解用法。 以…

UDS诊断系列介绍15-FIM模块功能介绍

本文框架1. 系列介绍1.1 FIM模块概述2. FIM相关概念2.1 FID概念2.2 FIM数据结构3. FIM模块作用过程4. Autosar系列文章快速链接1. 系列介绍 UDS(Unified Diagnostic Services)协议,即统一的诊断服务,是面向整车所有ECU的一种诊断…

English Learning - L1-13 主动脉修饰 (上) 2023.1.16 周一

English Learning - L1-13 主动脉修饰 (上) 2023.1.16 周一11 主动脉修饰11.1 定语两大核心when 引导的定语从句where 引导的定语从句为什么有时关系词前会有介词到底用 which 还是用 that ?1. 先行词是 all, much, little, few, the one 等不定代词&a…

Java---微服务---SpringCloud(1)

SpringCloud011.认识微服务1.0.学习目标1.1.单体架构1.2.分布式架构1.3.微服务1.4.微服务技术对比1.5.SpringCloud1.6.总结2.服务拆分和远程调用2.1.服务拆分原则2.2.服务拆分示例2.2.1.导入Sql语句2.2.2.导入demo工程2.3.实现远程调用案例2.3.1.案例需求:2.3.2.注册…

如何使用Facebook Insights提升SEO策略

搜索流量是所有网站都必须考虑的重要因素,但如何才能吸引到更多的访问者呢?我们都知道 Google的 SEO算法,那 Google针对搜索流量的算法有哪些?Facebook Insights (Facebook Search Engine Insight)是一款搜…

基于python个性化推荐购物系统的设计与实现

源码获取:https://www.bilibili.com/video/BV1Ne4y1g7dC/ 一、开发工具及技术 Python3.6.8,Django3,mysql8,navicat数据库管理工具,html页面,javascript脚本,jquery脚本,bootstrap…

从零实现一个组件库(一)项目环境搭建

文章目录前言monorepo架构1.monorepo架构的优势2.使用pnpm搭建monorepo架构(1)全局安装pnpm(2)初始化项目(3)新建workspace.yaml文件4.不同包之间的相互引用TypeScript支持1.安装TypeScript2.初始化TypeScr…

6、工程和模块管理

文章目录6、工程和模块管理6.1 IDEA 项目结构6.2 Project和Modoule的概念6.3 创建模块6.4 删除模块6.5 导入别人的模块6.6 当导入的模块字符集问题,导致中文乱码6.7 同时打开两个IDEA项目工程1 新建一个IDEA项目2 两个IDEA项目工程效果3 打开两个IDEA项目【尚硅谷】…

Kubernetes:开源 K8s 管理工具 Rancher 认知

写在前面 博文内容涉及Rancher 的介绍,集群内安装查看 Rancher 的基本功能理解不足小伙伴帮忙指正 我所渴求的,無非是將心中脫穎語出的本性付諸生活,為何竟如此艱難呢 ------赫尔曼黑塞《德米安》 Rancher 介绍 Rancher 是一个 Kubernetes 管…

计算机基础——python数据结构之顺序表和链表

计算机基础——数据结构概述数据结构算法时间复杂度python的代码执行时间测量模块线性表顺序表顺序表的连续存储顺序表的两种基本实现方式链表单向链表顺序表和单链表的对比双向链表单向循环链表概述 数据是信息的载体,是描述客观师傅属性的数、字符以及所有能输入…

抖音小黄车挂淘宝店相关问题记录

不开淘宝店,但作为技术被客户问起来,总得知道个一二,今天研究了一下,大致情况如下: 抖音绑定淘宝推广id 大致流程就是抖音开通橱窗,橱窗和淘宝挂钩,淘宝商品引入橱窗。 首先要满足抖音要求&a…

AlmaLinux 9 安装Oracle GraalVM Enterprise Edition 21.3.x

今天我们尝试一下在AlmaLinux 9 安装Oracle GraalVM Enterprise Edition 21.3.x。 GraalVM Enterprise 21 是一个 Long-Term-Support (LTS) 版本。 注意:下载Oracle GraalVM Enterprise Edition需要有Oracle账户,如果没有,可以通过访问创建您…

【SpringCloud】Nacos注册中心、配置中心用法与原理(上)

【SpringCloud】Nacos注册中心、配置中心用法与原理(上) 一、Nacos注册中心 1. 安装Nacos 【BUG】请注意Nacos2.0版本与1.0版本是有差别的! 2. Nacos的服务注册使用样例 (1)引入依赖 (2)配…

PowerShell 学习笔记

一、PowerShell 强大之处使用方便面向对象使用.net平台功能兼容性好(兼容CMD等)可扩展性好二、快捷键Tab:自动补齐命令或者文件名三、管道和重定向管道:上条命令的输出作为下一条命令的输入举例如下:列出当前目录ls结果…

FPGA 20个例程篇:19.OV7725摄像头实时采集送HDMI显示(四)

第七章 实战项目提升,完善简历 19.OV7725摄像头实时采集送HDMI显示(四) 在介绍完OV7725初始化配置和视频采集模块后,就到了整个项目的核心部分即DDR3乒乓存储图像模块,为了实现整个FPGA项目工程当中良好的实时性&…

会议论文分享-FSE20-基于学习的状态修剪策略

基于学习的状态修剪策略1.引言2.Homi算法2.1.概率修剪策略2.2.Homi2.2.1.Collecting Promising Data2.2.2.Generating Features.2.2.3.Learning Distribution2.2.4.Sampling Values2.2.5.总结3.实验3.1.实验设置3.2.有效性3.3.候选状态数量3.4.与朴素方法的对比4.代码实操4.1.代…

5、IDEA详细配置

文章目录5、IDEA详细配置5.1 如果打开详细设置界面5.2 系统设置1 默认启动项目配置2 取消自动更新5.3 设置整体主题1 选择主题2 设置菜单和窗口字体大小3 设置IDEA背景图5.4 设置编辑器主题样式1 编辑器主题2 字体大小3 注释的字体颜色5.5 显示行号与方法分隔符5.6 代码智能提示…

2023mac电脑系统第三方清理软件CleanMyMacX

认识 CleanMyMac X 4.12.2! 此版本有哪些亮眼的更新? “更新程序”模块之前曾出现重复推送已安装更新的情况。 小的可用性问题。 任何一部电子设备在使用多年之后都会出现性能下降的问题,苹果的Mac计算机自然也不例外。当你发现Mac运行缓慢&#xff…

Tkinter的Menu与Messagebox

菜单控件Menu 在当前界面的左上角创建一个菜单,可创建二级菜单、三级菜单等等 具体语法: 创建一个菜单,并命名为menu menutkinter.Menu(root) 创建menu菜单的列表,并命名为filemenu filemenutkinter.Menu(menu,tearoff0) 在…