【MATLAB编程实战】自动控制仿真实验

您所在的位置:网站首页 matlab在频率法中的应用 【MATLAB编程实战】自动控制仿真实验

【MATLAB编程实战】自动控制仿真实验

2024-07-11 05:19| 来源: 网络整理| 查看: 265

欢迎关注,本专栏主要更新MATLAB仿真、界面、基础编程、画图、算法、矩阵处理等操作,拥有丰富的实例练习代码,欢迎订阅该专栏!(等该专栏建设成熟后将开始收费,快快上车吧~~)

【MATLAB编程实战】自动控制仿真实验——控制系统数学模型、时域分析、拉普拉斯变换、Simulink、根轨迹分析、频率特性及线性矫正 控制系统数学模型

这部分主要有一下的几个模块,要给谁根据多项式模型写为零极点增益模型,一个是根据零极点增益模型转换为多项式模型,还有就是传递函数的等效变换,下面是一个例子:

在这里插入图片描述 在这里插入图片描述 对于第一个问题的代码如下:

clc; clear; num1 = [2 13]; den1 = [1 2 5]; G1 = tf(num1,den1) zpG1 = zpk(G1) num2 = [3 2 8]; den2 =[1 0 3 1 2 0]; G2 = tf(num2,den2) zpG2 = zpk(G2)

对于第二个问题的代码如下:

clc; clear; k1 = 2; z = []; p = [-1;-2]; zpG1 = zpk(z,p,k1) G1 = tf(zpG1) k2 =13; z = [0;0;-3]; p=[-5;-7]; zpG2 = zpk(z,p,k2) G2 = tf(zpG2)

对于第三个问题的代码结果为: 在这里插入图片描述 在这里插入图片描述

其代码如下:

clc; clear; num1 = [3 4]; den1 = [1 3 0]; G1 = tf(num1,den1) num2 = [1 3 0]; den2 = [1 31 2 1]; G2 = tf(num2,den2) %串联 G3 = series(G1,G2) %并联 G4 = parallel(G1,G2) %2.单位反馈 k=1; num3 = [1 1]; den3 = [1 5 6 0]; [num4,den4] = cloop(num3,den3); G5 = tf(num4,den4) %3.化简方框图 clear; num1 = [2 3]; den1 = [5 2 2]; G1 = tf(num1,den1); num2 = [1 2]; den2 = [1 8.5,4]; G2 = tf(num2,den2); num3 = [2 6]; den3 = [1 1 8]; G3 = tf(num3,den3); num4 = [1 4]; den4 = [1 5 5 1]; G4 = tf(num4,den4); [num12,den12] = series(num1,den1,num2,den2); [num123,den123] = parallel(num12,den12,num3,den3); [numG0,denG0] = parallel(num123,den123,num4,den4) [numGs,denGs] = cloop(numG0,denG0); G = tf(numGs,denGs) zplane(numGs,denGs) 时域分析

问题

在这里插入图片描述 对于问题1的代码如下:

clc; clear; %拉氏变换 syms s t a w f1 = t; f2 = 0.5*t^2; f3 = exp(-a*t); f4 = t*exp(-a*t); f5 = exp(-a*t)*sin(w*t); f6 = exp(-a*t)*cos(w*t); Lf1 = laplace(f1) Lf2 = laplace(f2) Lf3 = laplace(f3) Lf4 = laplace(f4) Lf5 = laplace(f5) Lf6 = laplace(f6)

第二问的代码如下:

clc; clear; syms a s b w Lf1 = a; Lf2 = s; Lf3 = 1/(s+a)*(s+b); Lf4 = s/(s+a)*(s+b); Lf5 = 1/(s^2*(s+a)); Lf6 =(s+a)/((s+a)^2+w^2); Lf7 = w/((s+a)^2+w^2); f1 = simplify(ilaplace(Lf1)) f2 = simplify(ilaplace(Lf2)) f3 = simplify(ilaplace(Lf3)) f4 = simplify(ilaplace(Lf4)) f5 = simplify(ilaplace(Lf5)) f6 = simplify(ilaplace(Lf6)) f7 = simplify(ilaplace(Lf7))

第三问代码如下:

clc; clear; syms s R = 1/s; G = (s^2 + 4*s + 6)/(s+1)^3; C = R*G; ct = simplify(ilaplace(C)) %2.部分展开法 clear; syms s %下面的这个,已经乘单位阶跃响应了 num1 = [1 -2]; den1 = [1 3 3 1 0]; G = tf(num1,den1) [r,p,k]=residue(num1,den1) %根据结果知G = 2/s+1 + 2/(s+1)^2 + 3/(s+1)^3 - 2/s; G = 2/(s+1) + 2/(s+1)^2 + 3/(s+1)^3 - 2/s; ct = simplify(ilaplace(G))

对于第四问的代码给出下载链接(创作不易,还望海涵) 下载链接

4.标准二阶系统传递函数为 C(s)_ (s)= Ps-s+2Z,s +w 求: (1)当r(t)=Eu(t),利用拉式逆变换函数求c(t),u(t)为单位阶跃函数;(2)在同一图中绘制在不同参数下的单位阶跃响应。 参数∶E=1(即单位阶跃响应),自然振荡角频率wn=3,阻尼比et=0.1,0.3,0.707,1.2要求:加图题,坐标轴名称,图例(gtext),网格(grid命令) 提示:1)先定义t s E wn et符号变量再构建传递函数; 3)第二问绘制单位阶跃响应时,时间采样点t=0:0.02:10; 4)第二问将参数值带入后求出输出ct,注意点乘的使用,使用plot(t,ct);hold on绘图; 5)带入不同阻尼比参数时,可以使用for循环或者 while循环。 其结果图为:

在这里插入图片描述

一阶系统正弦输入信号输出相应图

1.已知一阶系统传递函数为 G(s)= ’ s+1 输入为正弦信号sin(t),求其输出响应。要求∶输入、输出信号绘制于同一图中,附图例。

在这里插入图片描述 代码下载

结果图如图所示: 在这里插入图片描述

分别用游动鼠标法、LTI Viewer和编程法计算系统在单位阶跃响应的指标(超调量、上升时间等)

在这里插入图片描述

文件内容: 在这里插入图片描述 文件下载链接

结果如下: 在这里插入图片描述

无误差比例微分环节和有误差比例微分环节系统的单位阶跃响应的超调量、峰值时间、调节时间的对比

在这里插入图片描述 文件下载链接 文件内容: 在这里插入图片描述

其中m4_3.m就是准备系统的,然后打开了LTI view:

clc; clear; num1 = [10]; den1 = [1 1 0]; num2 = [2]; den2 = [1 1]; [num1,den1] = cloop(num1,den1); [num2,den2] = cloop(num2,den2); G1 = tf(num1,den1); G2 = tf(num2,den2); ltiview

视频中给出了LTI view的使用的方式。

系统单位相应的稳态误差

在这里插入图片描述

代码下载链接 实验结果如图所示: 在这里插入图片描述

几种典型环节传递函数及其对应的simulink模型

在这里插入图片描述 simulink图如下,直接跟着simulink搭建即可: 或者点击这里直接下载 在这里插入图片描述 仿真结果部分如下: 在这里插入图片描述

二阶开环传递函数simulink仿真

在这里插入图片描述 仿真下载链接 仿真如下图所示,跟着搭建就行其实也: 在这里插入图片描述 结果所示: 在这里插入图片描述

单位负反馈控制系统输入为单位阶跃信号、斜坡信号、加速度信号时系统的稳定性

在这里插入图片描述

仿真下载链接 仿真如下图所示,跟着搭建就行其实也:

在这里插入图片描述 结果所示: 在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3