自动控制原理MATLAB常用函数总结

2023-05-16

自动控制原理MATLAB常用函数总结

一、控制系统的数学模型

1. 传递函数数学模型

G ( s ) = n u m ( s ) d e n ( s ) G(s)=\frac{num(s)}{den(s)} Gs=den(s)num(s)

将分子分母系数写为两个矢量,用**tf()**函数给出

matlab表示传递函数:
G ( s ) = s + 2 s 2 + 2 s + 1 G(s)=\frac{s+2}{s^2+2s+1} Gs=s2+2s+1s+2

num=[1 2];
den=[1 2 1];
sys=tf(num,den)

2. 零极点的传递函数

传递函数:
G ( s ) = s + 1 ( s + 2 ) ( s + 3 ) G(s)=\frac{s+1}{(s+2)(s+3)} Gs=(s+2)(s+3)s+1

Z=[-1];     %零点
P=[-2,-3];  %极点
K=[1];      %增益
sys=ZPK(Z,P,K)

零极点形式转成一般形式:

[num,den]=zp2tf(Z,P,K);
sys=tf(num,den)

3. 串联、并联、反馈连接

串联: sys=series(G1,G2)

并联: sys=parallel(G1,G2)

反馈: sys=feedback(G,H,Sign),sign为正负一,正负反馈
G 1 ( s ) = 1 ( s + 1 ) , G 2 ( s ) = 1 ( s + 2 ) , H ( S ) = 1 ( s + 3 ) G_1(s)=\frac{1}{(s+1)},G_2(s)=\frac{1}{(s+2)},H(S)=\frac{1}{(s+3)} G1s=(s+1)1,G2s=(s+2)1H(S)=(s+3)1

%串联
G1=tf(1,[1 1]);
G2=tf(1,[1 2]);
sys=series(G1,G2)

%并联
G1=tf(1,[1 1]);
G2=tf(1,[1 2]);
sys=parallel(G1,G2)

%反馈
G1=tf(1,[1 1]);
H=tf(1,[1 3]);
sys=feedback(G1,H,-1)

二、时域分析法

1. 求特征方程的根

特征方程:
s 3 + 3 s 2 + 2 s + 24 = 0 s^3+3s^2+2s+24=0 s3+3s2+2s+24=0

den=[1 3 2 24];
roots(den)

%求得根为
ans =

  -4.0000 + 0.0000i
   0.5000 + 2.3979i
   0.5000 - 2.3979i

2. 单位阶跃响应

step(num,den)或者step(num,den,t)

闭环传递函数:
C ( s ) R ( S ) = 16 s 2 + 4 s + 16 , C ( s ) = 16 s ( s 2 + 4 s + 16 ) \frac{C(s)}{R(S)}=\frac{16}{s^2+4s+16},C(s)=\frac{16}{s(s^2+4s+16)} R(S)C(s)=s2+4s+1616,C(s)=s(s2+4s+16)16

num=[16];
den=[1 4 16];
t=0:0.1:10;
[y,x,t]=step(num,den,t);
plot(t,y);
grid on;
xlabel('t');ylabel('c(t)');

3. 单位斜坡和单位脉冲

单位斜坡和单位脉冲都是单位阶跃变换来的,均用step表示

单位斜坡:
C ( s ) = 16 s 2 + 4 s + 16 1 s 2 = 16 s ( s 2 + 4 s + 16 ) 1 s C(s)=\frac{16}{s^2+4s+16}\frac{1}{s^2}=\frac{16}{s(s^2+4s+16)}\frac{1}{s} C(s)=s2+4s+1616s21=s(s2+4s+16)16s1

num=[16];
den=[1 4 16 0];
t=0:0.1:10;
[y,x,t]=step(num,den,t);
plot(t,y);
grid on;
xlabel('t');ylabel('c(t)');

单位阶跃:
C ( s ) = 16 s 2 + 4 s + 16 = 16 s s ( s 2 + 4 s + 16 ) C(s)=\frac{16}{s^2+4s+16}=\frac{16s}{s(s^2+4s+16)} C(s)=s2+4s+1616=s(s2+4s+16)16s

num=[16 0];
den=[1 4 16];
t=0:0.1:10;
[y,x,t]=step(num,den,t);
plot(t,y);
grid on;
xlabel('t');ylabel('c(t)');

三、频域响应

1. 伯德图

bode(num,den);
[mag,phase,w]=bode(num,den,w);

如果不需要设定幅值和相角的取值范围,直接使用bode(num,den)即可,MATLAB会自动生成,如果要指定幅值和相角范围,则使用如下:

num=[15 75];
den=[1 16 100 0];
w=logspace(-2,3,100);           %取对数
[mag,phase,w]=bode(num,den,w);  %取幅值和相角,根据所取的w确定
subplot(211);
semilogx(w,20*log10(mag));      %取半对数坐标函数
grid on;
title('Bode Diagram of G(s)=75(0.2s+1)/[s(s^2+16s+100)]');
subplot(212);
semilogx(w,phase);
grid on;

2. nyquist图

nyquist(num,den);
[Re,Im]=nyquist(num,den,w);	
[Re,Im,w]=nyquist(num,den);	

需要指定的w时;

num=[1500];
den=[0.1 1 120 0];
w1=0.1:0.1:10;
w2=10:2:100;
w3=100:5:1000;
w=[w1 w2 w3];
[Re,Im]=nyquist(num,den,w);	%一定w范围的nyquist图
plot(Re(:, :),Im(:, :),Re(:, :),-Im(:, :));	%w从负无穷到正无穷
v=[-2 1 -3 3];	%图形坐标的设置范围
axis(v);
grid on;
title('Nyquist of G(s)=1500/[s*s*(1+0.1s)+120*s]');
xlabel('Re');ylabel('Im');

3. 求相位裕量和增益裕量

[Gm,Pm,Wgm,Wpm]=margin(mag,phase,w)
margin(mag,phase,w)

幅值的单位不是db,从左到右依次是幅值,相角,相位交界频率,剪切频率

num=conv([0,1.97],[5,1]);
den=conv(conv([1,0],[10,1]),conv([0.25,1],[0.25,1]));%相当于两个多项式相乘
G=tf(num,den)
w=logspace(-2,2,100);
bode(G,w);
[Gm,Pm,Wgm,Wpm]=margin(G) 
%Gm增益裕度和Pm相位裕度,Wpm测量相位裕量的频率和Wgm测量增益裕量的频率。

G =
 
             9.85 s + 1.97
  ------------------------------------
  0.625 s^4 + 5.062 s^3 + 10.5 s^2 + s
  
  Gm = 7.7102,Pm =57.4452,Wgm = 3.8986,Wpm = 0.9479
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

自动控制原理MATLAB常用函数总结 的相关文章

  • Aop小案例

    AOP小案例 AOP Aspect Oriented Programming 面向切面编程 00P Object Oriented Programming 面向对象编程 xff0c 用对象化的思想来完成程序 AOP是对0OP的一个补充 xf
  • 详细介绍在ubuntu20.04如何安装ROS系统,附常见错误的解决办法

    为保证在安装的过程中配置无误 xff0c 建议先打开软件与更新的界面 xff0c 检查框出的选项是否打上了 检查完成后 xff0c 就可以开始安装啦 xff01 1 添加ROS软件源 将以下两个命令任意选择一个复制到ubuntu的终端执行
  • ROS1学习笔记:创建工作环境与功能包(ubuntu20.04)

    参考B站古月居ROS入门21讲 xff1a 创建工作环境与功能包 基于VMware Ubuntu 20 04 Noetic版本的环境 文章目录 一 工作空间介绍二 创建工作空间2 1 创建工作空间2 2 编译空代码的工作空间2 3 设置和检
  • SQL注入

    常用函数 SQL注入步骤 联合查询注入 函数与报错注入 SQL盲注 宽字节注入 sqlmap工具 常用函数 常用系统函数 基础信息函数功能system user 系统用户名user 用户名current user 当前用户名session
  • 信息收集*

    域名信息收集 DNS记录查询 whois查询 备案信息查询 子域名信息收集 常用工具 查询网站 网络信息收集 c段查询 nmap扫描 获取真实IP 敏感信息收集 目录后台扫描 指纹信息识别 系统指纹识别 中间件指纹识别 Web程序指纹识别
  • 将kali linux 的语言切换为中文

    重置root密码 导入kali后 xff0c 一般没有root密码 xff0c 需要重置root密码的 使用sudo passwd root 命令重置密码 换源 因为默认源下载东西特别慢 xff0c 所以我们需要换源 输入vim etc a
  • curl命令

    在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具 xff0c 可以说是一款很强大的http命令行工具 它支持文件的上传和下载 xff0c 是综合传输工具 xff0c 但按传统 xff0c 习惯称url为下载工具 htt
  • Docker基本命令

    一 安装docker 1 docker运行时需要到管理员用户权限 现在我们是普通用户 xff0c 终端内输入命令 su root切换为root用户 使用apt get update 更新软件源中的所有软件列表 2 使用apt install
  • Nmap常用命令

    nmap hostname ip 或者多个 ip 或者子网 192 168 123 iL ip txt 扫描 ip txt 的所有 ip A 包含了 sV xff0c O xff0c 探测操作系统信息和路由跟踪 一般不用 xff0c 是激烈
  • Jmeter性能测试(6)--元件的作用域与执行顺序

    jmeter xff08 六 xff09 元件的作用域与执行顺序 jmeter是一个开源的性能测试工具 xff0c 它可以通过鼠标拖拽来随意改变元件之间的顺序以及元件的父子关系 xff0c 那么随着它们的顺序和所在的域不同 xff0c 它们
  • sql,逻辑漏洞,xss,反序列化思维导图

  • Arduino MAX30102脉搏心率传感器使用教程

    最近闲来无事 xff0c 得到了一块MAX30102 xff0c 手头刚好有多余的Arduino控制板 xff0c 就跑了个官方的案例 xff0c 发现测出来的脉搏和心率还是挺准的 xff0c 三星手机用过这个系列的芯片 xff0c 但是有
  • 两种方法用IDEA创建一个Servlet程序 新手教程详解

    1 Servlet 是什么 xff1f Java Servlet 是运行在 Web 服务器或应用服务器上的程序 xff0c 它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层 2
  • reduce()累计器理解与使用实例

    关于reduce reduce 语法 xff1a arr reduce callback accumulator currentValue index array initialValue arr reduce accumulator cu
  • {}与Object.create(null)

    var one 61 创建的对象带有 proto 下面有一些方法与属性 xff0c 这便是js的原型链继承 xff0c 继承了object的方法和属性 xff1b 故在遍历对象时 xff0c 会遍历原型链上的属性 xff0c 带来性能上的损
  • uni-app 全局变量机制

    getApp globalData 全局变量机制 在App vue中 export default globalData text 39 text 39 在App vue中调用 this globalData text在onLaunch生命
  • vue3动态注册路由

    在vue cil2中 xff0c 我们可以通过webpack中require context这个api实现工程自动化 xff0c 而在vue cil3里vite替代了webpack xff0c 节省了webpack冗长的打包时间的同时我们也
  • try{}catch(res){}、throw(exception)、new Error()

    1 try catch res try 中的代码出现错误异常时 xff0c 系统会将异常信息封装到error对象中 xff0c 传递给catch res xff0c 包含res message res name等 EvalError eva
  • new Map()

    1 new Map let data 61 new Map data set key value 添加一个新建元素到映射 Map 1 key 61 gt value data get key 返回映射中的指定元素 data has key
  • Proxy代理

    Proxy用于修改某些操作的默认行为 xff0c 等同于在语言层面做出修改 xff0c 所以属于一种 元编程 语法 xff1a let proxy 61 new Proxy target handler target 所要拦截的目标对象ha

随机推荐

  • Jmeter性能测试(7)--定时器

    jmeter xff08 七 xff09 定时器 jmeter提供了很多元件 xff0c 帮助我们更好的完成各种场景的性能测试 xff0c 其中 xff0c 定时器 xff08 timer xff09 是很重要的一个元件 xff0c 最新的
  • oninput完美限制输入正整数

    oninput完美限制输入非0正整数 注意vue中需要 64 input进行绑定 方法一 64 input 61 34 if this value length 61 61 1 this value 61 this value replac
  • 行内存放数据属性data-id

    data 61 39 data 39 为行内存放数据的属性 xff0c 可通过事件源中的currentTarget dataset获取data 存放的值 另外css可通过 data 放置的标签名 data 61 39 data 39 设置
  • js常用封装方法

    span class token comment 生成随机数 64 length 指定长度 return 随机数 span span class token keyword export span function span class t
  • 计数器组件

    涉及事件 64 longpress 长按时触发 xff0c 64 touchend 手指从屏幕上离开时触发 1 计数器为文本标签的子组件 lt template gt lt view class 61 34 counter box 34 g
  • rich-text 富文本

    rich text 富文本 普通的text文件不能显示格式 xff0c 富文本格式rtf文件可以显示出很多格式信息 xff0c 比如可以在一个文本包含不同颜色 不同字号的文本 官方 lt rich text nodes 61 34 cont
  • uni-app实现全局组件注册

    uni app 全局注册组件三种方式 1 传统vue组件需要创建 引用 组成三个步骤 2 在page json中对应page设置 34 globalStyle 34 34 autoscan 34 true 和pages同级 3 HBuild
  • Vue--混入(Mixin)

    Vue 混入 Mixin 当不同组件有相同功能时 xff0c 不必重复定义属性和方法 xff0c 可使用vue中的混入 Mixin 来分发 Vue 组件中的可复用功能 一个 mixin 对象可以包含任意组件选项 xff0c 即data me
  • uni-app--tabs切换swiper

    父组件 span class token operator lt span template span class token operator gt span span class token operator lt span view
  • 关于移动端 html5诸多事件

    1 点击事件 64 click与 64 tap的区别 xff1a 64 click 在web手机端上点击 xff0c 有300ms延迟再被触发 64 tap具有事件穿透特点 而 64 click没有 事件冒泡 xff1a 当父元素有点击事件
  • vuex状态管理

    vue 1 下载vuex依赖 2 创建store目录store js xff0c 然后在js中引入 span class token keyword import span span class token module Vue span
  • Jmeter性能测试(8)--断言

    jmeter xff08 8 xff09 断言 jmeter中有个元件叫做断言 xff08 Assertion xff09 xff0c 它的作用和loadrunner中的检查点类似 xff1b 用于检查测试中得到的响应数据等是否符合预期 x
  • Class类

    class类的基本写法 es6引入了class类的概念 xff0c 可通过class关键字来定义类每个类都会有一个构造函数 xff0c 即constructor 方法 xff0c 用于创建和初始化class对象要注意 xff0c 如果一个类
  • install与directive

    install Vue option Vue js提供install方法 xff0c 可用于开发新插件以及全局注册组件等 span class token keyword export span span class token keywo
  • STC15W4K56S4学习笔记——LCD12864滚动显示

    STC15W4K56S4学习笔记 LCD12864滚动显示 最近在准备学校的单片机校赛 xff0c 重新回顾了一遍51单片机 xff0c 上手了STC15W4K56S4试验箱 xff0c 写一些笔记来记录一下 xff0c 水平有限 xff0
  • STM32用XCOM调试助手打印不出数据

    STM32用XCOM调试助手打印不出数据 被困扰了一段时间的串口终于解决了 xff0c 用STM332F103ZET6写串口 xff0c 但是不懂为什么打开串口调试助手就是打印不出数据 首先检查了代码有没有错 xff0c 因为是按照网上的代
  • OpenCV-python学习笔记(十二)——图像轮廓

    十二 图像轮廓 图像轮廓是指将边缘连接起来形成的一个整体 xff0c 用于后续的计算 因为边缘检测得到的边缘是不连续的 查找图像内的轮廓信息 xff1a cv2 findContours 绘制轮廓 xff1a cv2 drawContour
  • k210——maix bit串口通信

    k210 串口通信 k210 一共有3个 uart xff0c 每个 uart 可以进行自由的引脚映射 一 API函数介绍 1 1 register pin function force 61 True K210 可以通过映射来改变引脚功能
  • k210——Maixhub 云端模型训练

    k210 Maixhub 云端模型训练 一 前言 k210的模型训练可以在Maixhub 上进行 xff0c 只需要准备好需要训练的数据集 xff0c 不需要搭建训练环境和代码 xff0c 上传训练数据即可快速训练出模型 Maixhub 有
  • 自动控制原理MATLAB常用函数总结

    自动控制原理MATLAB常用函数总结 一 控制系统的数学模型 1 传递函数数学模型 G xff08 s xff09 61