【经典控制理论】自控实验总结
※自控系统脚本编写
1、变量
sym, syms 符号变量
sym a; syms a b; f = str2sym('a+ b^2');
2、基本操作
求导
dfa = diff(f函数,a对哪个变量求(偏)导);
积昏
intb = int(f函数,b对哪个变量求积分,b1,b2区间);
拉氏变换
%t还是得事先定义好,s求拉氏变换时会自带 ft = exp(2*t); L1 = laplace(ft);
拉氏反变换
ftt = ilaplace(L1);
3、控制系统模型
多项式形式(传递函数模型)
系数连续存于一个数组中,分子分母各一个数组,从高次到低次传
num = [1 2 3]; %分子对应的系数 den = [4 5 6 7]; %分母对应的系数 gs = tf(num,den);
零极点模型
需要两个数组,同上,加一个k增益
z = [1 2 3]'; %零点,注意加转置 p = [4 5 6 7]; %极点 k = 9; gs2 = zpk(z,p,k);
互相转换
[num,den] = zp2tf(z,p,k); %零极点转传递函数
其他表达
分子/分母表达式有zpk类型,但是需要tf格式时,使用conv(就是多项式乘法)统一转化为多项式类型,例如
num = [1 2.9 2]; den = conv([1 0],[1 10 25]); gs = tf(num,den); %后面要画根轨迹图
4、模型的连接
串联— series
[num3,den3] = series(num,den,num2,den2);
并联— parallel
[num3,den3] = parallel(num,den,num2,den2);
反馈— feedback
[num3,den3] = feedback(numg,deng,numh,denh,sign); %先给G(s)的传递特征,再给H(s)的传递特征,最后sign是默认-1(负反馈),可以改+1(正反馈)
单位反馈— cloop
[num3,den3] = cloop(numg,deng,sign); %和上面比少传H(s)
5、典型输入函数
单位阶跃函数— step
t = [0:0.1:100]; num = 1; den = [1 0.4 1]; step(num, den, t); %t主要是得说明要画多长t的ct图像,num,den直接传闭环传递函数的特征数组了
单位脉冲函数— impulse
t = [0:0.1:100]; num = 1; den = [1 0.4 1]; impulse(num, den, t); %t主要是得说明要画多长t的ct图像,num,den直接传闭环传递函数的特征数组了
自定义输入— lsim
t = 0:0.1:10;%u用含t的表达式即可,比如 u = t; %或者lsim(num,den,u,t); lsim(z,p,k,u,t); %仍然是开始给出系统闭环传递函数的特征,如上两种形式均可,u是输入的r(t),用含t的表达式整,t是时间%例如,这个用于频率特性测试时,给系统输入一个正弦函数 t = [0:0.001:10]; rt = 1* sin(15 * t); lsim(nums,dens,rt,t);
注意:以上所有的函数使用后,如果用其返回值,则默认直接单窗口绘图;而如果使用一个变量存返回值(就是系统输出的结果,是一个一维数组),之后可以用于多图的绘制
6、3种系统特性图像
根轨迹绘制
gs = tf(num,den); rlocus(gs); %给的是完整的函数表达,且这里开环传函的首一表达式(不含根轨迹增益K*)
奈奎斯特图
matlab画出来包含了w从0到-∞的轨迹,与正的部分完全对称,不用管
nyquist(gs); %传参传 开环传函表达式
bode图
bode(gs); %同前,一般画的是开环的对数幅频图,那就给开环的表达式
例如,左根轨迹,右bode图
7、matlab绘图大法
基本绘图设置
grid; %添加网格 xlabel("标题名"); %设置横坐标轴名称 ylabel("同上"); %纵坐标轴名称 title("abb"); %绘制的图像名称
多图绘制
(1)一个窗口画一张图,注意,grid和legend这类特殊要求不是作用于所有窗口的,每个figure有需要都要单独添加
figure; %code,绘制一张图figure; %code,绘制另一张图,以此类推%举例,先画了一个bode图,再画了一个奈奎斯特图 figure; z = [-0.2]; p = [0 -0.1 -4]; k = 16; [num,den] = zp2tf([],[0 -4*sqrt(2)],k); tf_gs = tf(num,den); bode(tf_gs);figure; nyquist(tf_gs); grid; %attention
(2)多图绘制于一个窗口
首先需要不让matlab将响应直接绘制,就用变量接收返回值
t = 0:0.1:10; y_step = step(numfi,denfi,t); %接收返回值u = t; y_ramp = lsim(numfi,denfi,u,t); %接收返回值
接着使用类似于前面的格式,subplot的参数参考这篇文章:http://t.csdn.cn/pXIZ5
subplot(x1,y1,z1); plot(t1,c1); axis normal;subplot(x2,y2,z2); plot(t2,c2); axis normal;%举例,接前面的内容 subplot(2,1,1); plot(t,y_step); xlabel("时间/s"); ylabel("c(t)"); grid; axis normalsubplot(2,1,2); plot(t,y_ramp); xlabel("时间/s"); ylabel("c(t)"); axis normal grid;
※simulink插件仿真
常用元器件库名称
下面的就是,在元器件库直接对相应的名字搜索就可以得到
增益K gain
传递函数
多项式类型 transfer fcn:
零极点模型 Zero-Pole
示波器 scope
斜坡信号 ramp
阶跃信号step
正弦信号 sine wave
求和 sum
死区模块 dead zone
限幅模块 saturation
传递函数的系统特性图分析
先利用in和out模块,搭建如下模型
对一个传函模块,右键,找到Linearize block
将输入输出的来源选择为如下图所示,之后点击想获取的系统特性曲线,就可以直接绘制了
如果想在同一张图上绘制多条曲线(多用于系统校正),就在第一次画出图后,(自己对simulink的模型简单修改参数值后),再点击当前plot的按钮,就有两张图了,按照此方式叠加
PID模块 PID controller
对应修改PID三个参数即可
还可以使用PID tunner即时调节快速性和波动性,见下图
※脚本和simulink梦幻联动
将simulink仿真数据用.m脚本处理
直接用传递函数模型,再通过一个simout把数据传出来就是
几种设置模式
structure with time
这个有时间和对应的输出
plot(out.so.time, out.so.signals.values); %out应该是必加so给simout命的名字,这个可以自定义,因为一个.slx可以有很多歌simout模块
structure
只有输出
yt = out.so.signals.values;
array
只有输出,以数组形式返回
plot(out.so);
timeseries
plot(out.so.Time,out.so.Data);
用.m绘制李萨如图形/时域响应曲线
这里直接用自控第八次实验的代码了
figure; plot(x.signals.values,y.signals.values); title("李萨如图形"); grid;figure; plot(x.time,x.signals.values); hold on; plot(y.time,y.signals.values); legend("输入","输出"); title("时域曲线"); grid;
可以用x(对应着系统的输入),和y(对应系统的输出)直接用matlab拟合
注意:先将x,y的数据类型设置为2-D array,就是二维数组,再按照下面文章的步骤进行数据导入:
http://t.csdn.cn/NrfDU
接下来分析环节:operations个人觉得不需要,分析方式就用传函模式,需要给出它的零极点个数,matlab根据零极点数量直接拟合
以自己第八次实验的截图为例,当时选择的无零点,3个极点
※自控原理补漏~~(某菜狗考完试才弄明白)~~
主要是与高阶系统利用主导极点降阶法和频率测试有关,结合自控的具体实验内容简单阐述一下
1、高阶系统主导极点降阶
题目(第一问忽略):
个人理解:给出的传函就是这个系统的开环传递函数,且对应根轨迹增益为160,要绘制那就得到不含160的传函作为参数传给rlocus绘图即可;
而对于降阶,则需要得到在K*=160的所有根,其实用matlab绘制的根轨迹图去图中找4个根不如直接上卡西欧991解方程香,直接得到更精确的结果,教程见
fx-991CN X方程(组)求解功能的使用 - 電卓院亜紀良的文章 - 知乎 https://zhuanlan.zhihu.com/p/28795401
理论知识补充:先膜一波哈工大巨佬的讲解:https://www.bilibili.com/video/BV1cK4y1U7jR?share_source=copy_web
对于高阶系统的降阶,需要保证降阶前后系统的闭环增益不变,所以最好的方式还是得到系统的闭环传函,写为闭环零极点形式,接着分析闭环零极点的位置,有一对十分接近的零极点(偶极子,蓝色框中的),可以去除,剩余的极点的实部并没有2-3倍以上的关系,所以均不能省去
结果:按照K不变的原则,去掉谁就把对应的常数项留下,最后获得阶跃响应曲线
2、频率特性测试
题目:
补充:
(1)关于相位和幅度的求解如下,所以只需要在李萨如图像(x为输入,y为输出)中寻找到图像与x=0轴的交点,在阶跃响应曲线中找到输入输出图像的峰值整理成表格,画图即可
R(t)=A0∗sin(wt)C(t)=A1∗sin(wt+φ)A(w)=A1/A0φ(w)=acrsin(C(0)/A1)R(t) = A_{0}*sin(wt)\\ C(t) = A_{1}*sin(wt+φ)\\ A(w) = A1/A0\\ φ(w) = acrsin(C(0)/A1) R(t)=A0∗sin(wt)C(t)=A1∗sin(wt+φ)A(w)=A1/A0φ(w)=acrsin(C(0)/A1)
(2)相位也有讲究,李萨如图像是椭圆的,其长轴倾斜的角度(与正x轴夹角)也就大概是相位差,所以要注意相位超越90°/180°/270°等,及时修改对应的相位求解公式比如这个图,就是正椭圆,相位接近90°
这个就是已经超过90°了
(3)但是你可以发现上面的曲线并不够光滑,于是我抄了之前老师发过的类似的模型设置,曲线瞬间美丽:在simulink界面里面寻找这个设置
(4)接下来是excel处理部分,整理好w/A1/A0/C0并使用excel的函数,利用散点图带渐近线的类型,就可以得到频率特性测试的图像,并根据最大相位、转折点、初相位、初幅度等进行判断
(5)虽然显然是3阶系统,但是用二阶系统的分析方式居然也还行、、、但是不建议这样搞,system identification它不香吗;其他的方式,比如通过阶跃响应的曲线也可以得到一些信息从而拟合该函数
也是考完试才解决的疑惑(纯纯是因为自己撒币了):bode图针对的就只是传递函数的表达式,与开环闭环没有啥关系,它就是只用这个函数的正弦响应结果得到了A、φ,所以书上的各种典型传函环节(惯性、振荡、一二阶微分、积分等)都是可以适用于观察频率特性得到的结果
自控1完结撒花✿✿ヽ(°▽°)ノ✿,已经是个精神自控人了
【经典控制理论】自控实验总结相关推荐
- 【现代控制理论】自控实验总结
试着把自控的两篇笔记做成pdf上传了,欢迎在链接下载 北航云盘 (buaa.edu.cn) ※现控系统实验总结 (夹带一点私货:指的自己在电脑备份文件时简单地复制文件夹,跳过了所有重名的文件而不选择覆 ...
- 滞后超前校正控制器的设计和matlab仿真 静态速度误差系数为10,自控实验六 基于频域的串联校正控制器设置 - GXUZF.COM - 林澈思的茶...
广西大学电气工程学院 <自动控制理论>实验报告 广西大学电气工程学院 <自动控制理论>实验报告 成绩 教师签字 学生姓名 赵帆 学号 17021***** 专业班级 电自171 ...
- 第2章-系统控制原理 -> 经典控制理论
第1章-多智能体系统 回到目录 第2章-系统控制原理 -> 线性系统状态空间 文章目录 2 系统控制原理 2.1 经典控制理论 2.1.2 连续系统求解 定义 2.1 [拉普拉斯变换] 定义 2 ...
- 【经典控制理论】| 自动控制原理知识点概要(上)
参考资料 胡寿松<自动控制原理>第6版 刘豹<现代控制理论>第3版 斐润<自动控制原理> 哈工大控制学科803考研资料 前言 对于控制工程专业的我来说,经典控制理论 ...
- 现代控制理论课程实验一:线性系统状态空间分析与运动解
现代控制理论课程实验一:线性系统状态空间分析与运动解 一.实验目的 二.实验设备与软件: 三.实验原理: 3.1.求矩阵特征值和特征向量命令格式 3.2.求运动的方法 3.3.状态方程的数值积分方法- ...
- 自动控制理论简明实践教程——1.1经典控制理论简介
系列文章目录 自动控制理论简明实践教程(更新中) 文章目录 系列文章目录 自动控制理论简明实践教程(更新中) 前言 一.控制系统简介 二.经典控制理论的研究内容 1.定常系统 2.零初始条件 3.研究 ...
- matlab传递函数转能控或能观标准型,《现代控制理论》实验指导书讲解.doc
<现代控制理论>实验指导书讲解 <现代控制理论> 实验指导书 适用专业: 电气工程与自动化 课程代码: 6002039 总学时: 40 总学分: 2.5 编写单位: 电气信息学 ...
- 【经典控制理论】| 自动控制原理知识点概要(下)
参考资料 胡寿松<自动控制原理>第6版 刘豹<现代控制理论>第3版 斐润<自动控制原理> 哈工大控制学科803考研资料 前文 [经典控制理论]| 自动控制原理知识点 ...
- 学习笔记16--汽车运动控制理论之经典控制理论
本系列博客包括6个专栏,分别为:<自动驾驶技术概览>.<自动驾驶汽车平台技术基础>.<自动驾驶汽车定位技术>.<自动驾驶汽车环境感知>.<自动驾驶 ...
- 经典 【操作系统实验】 实验六 设备驱动程序 RH5 2.6.18 + 2.6.32 内核
经典 [操作系统实验] 实验六 设备驱动程序 设备驱动程序 简单介绍一下2.6版本内核添加模块的方法: 虚拟块设备驱动程序内容 设备驱动程序 前言: 本文是基于Linux的设备驱动实验流程记录,涵盖了 ...
最新文章
- malloc函数具体解释
- 2020年6月学术会议变动汇总
- logo、展板、彩页、手提袋总结
- linux启动weblogic指令,linux下如何启动和关闭weblogic .
- python 程序停止打印日志_停止 Spring Boot 服务的几种优雅姿势
- 【Python CheckiO 题解】Roman Numerals
- signals系列之一——基本用法
- gen文件下有两个R.java_android工程gen目录中R.java包名是怎么确定
- TinyWeb:C#中的简单Web服务器
- 算法之【折半插入法】
- 谷歌如何获取了我们的个人数据?
- 使用.net的Cache框架快速实现Cache操作
- LFW pairs.txt解释
- 华三交换机配置DHCP中继
- 今天把中国建设银行APP4.2.1版iOS客户端里所有的功能都点了一遍
- iOS-OC-提交审核:Missing Push Notification Entitlement
- Java程序员未来职业应如何规划?
- 【多多情报通】看完让人焕然大悟的6种拼多多店铺玩法
- 浅谈 2020 年诺贝尔化学奖:通向未来的基因编辑
- Attention机制学习(二)使用
热门文章
- [纽约摄影学院教程].美国纽约摄影学院.插图版.pdf
- Metrix 5465e-103数字输入模块32 DDI01
- DNS原理总结及其解析过程
- 博士毕业去高校难度大吗?
- 命运赋-北宋-吕蒙正
- 我的shiro之旅-权限验证标签
- CV脱坑指南(二):ResNet·downsample详解
- css怎么使用其他的中文字体,CSS如何让中文跟英文使用不同字体
- 华为公关事故处罚流出;FF中国分家细节曝光;苹果股价下跌拖累美股|雷锋早报...
- 插件化?好像也就那么回事