【控制理论】控制系统中的Matlab仿真、编程与函数合集

简介: 控制原理中的Matlab仿真与函数合集

控制原理中Matlab仿真与函数合集

1 基本模型

1.1 传递函数模型(tf)

1.1.1 tf(num,den)

1.2 状态空间模型(ss)

1.2.1 ss(A,B,C,D)

1.2.2 ssdata(sys)

1.2.3 canon(sys)

1.3 零极点模型(zpk)

1.3.1 pzmap(sys)

1.4 模型间的转换

1.4.1 ss2tf(sys)/tf2ss(sys)

1.4.2 tf2zp(sys)/zp2tf(sys)

2 时域分析法

2.1 时域响应

2.2 根轨迹法

3 频域分析法

3.1 伯德图

3.2 奈奎斯特图

4 状态空间分析法

4.1 求状态转移矩阵

4.2 可控性可观性分析

5 非线性分析

5.1 相平面图

6 常用的工程数学函数

6.1 矩阵运算

6.1.1 矩阵求逆inv(A)

6.1.2 矩阵行列式det(A)

6.1.3 矩阵特征分解eig(A)

6.1.4 矩阵秩rank(A)

6.2 积分变换

6.2.1 拉氏变换与反拉式变换laplace()/ilaplace()

1 基本模型

1.1 传递函数模型(tf)

1.1.1 tf(num,den)

num,den分别表示分子、分母多项式。可以用**conv()**耦合两个多项式,例如:conv([1,1,0],[1,2])表示

( s 2 + s ) ( s + 2 ) (s^2+s)(s+2)

(s

2

+s)(s+2)

1.2 状态空间模型(ss)

1.2.1 ss(A,B,C,D)

A,B,C,D分别是状态空间模型的系统矩阵、输入矩阵、输出矩阵和直连矩阵。

A=[1 0;1 1];
B=[1 1]';         %转置
C=[1 1];
D=0;
sys = ss(A,B,C,D);      %sys即为状态空间表述
1.2.2 ssdata(sys)

从状态空间模型提取状态矩阵

[A,B,C,D]=ssdata(sys)   %sys即为状态空间表述
1.2.3 canon(sys)

将状态空间模型标准化。

A=[1 0;1 1];
B=[1 1]';         %转置
C=[1 1];
D=0;
sys = ss(A,B,C,D);      %sys即为状态空间表述
sys_can = canon(sys)    %sys_can即为标准化状态空间模型
%[A_,B_,C_,D_]=ssdata(sys_can)%可以提取新的矩阵

1.3 零极点模型(zpk)

1.3.1 pzmap(sys)

绘制系统的零极点图,零点用o表示,极点用x表示。

1.4 模型间的转换

1.4.1 ss2tf(sys)/tf2ss(sys)

状态空间模型与传递函数模型的相互转换。

1.4.2 tf2zp(sys)/zp2tf(sys)

传递函数模型与零极点模型的相互转换。


2时域析法

2.1 时域响应

单位阶跃响应

y=step(num,den,t) %时间向量t=[0:step:end]

[y,x,t]=step(num,den) %传递函数模型:时间向量t由系统自动生成

[y,x,t]=step(A,B,C,D,iu) %状态方程模型

上述使用方法去掉等号及等号左边的变量,step()函数可以直接画出阶跃响应曲线

单位冲激响应

y=impulse(num,den,t) %时间向量t=[0:step:end]

[y,x,t]=impulse(num,den) %传递函数模型:时间向量t由系统自动生成

[y,x,t]=impulse(A,B,C,D,iu) %状态方程模型

上述使用方法去掉等号及等号左边的变量,impulse()函数可以直接画出阶跃响应曲线

任意输入响应

lsim(sys_1,u,t)

lsim(sys_2,u,t,x_0)

[y,T,x]=lsim(sys_1,u,t)

[y,T,x]=lsim(sys_2,u,t,x_0)

其中,u 为输入信号,x_0 为初始条件,t 为时间向量,sys_1为时域模型,sys_2 为状态空间模型,y为响应输出,T为仿真时间,x为系统状态变量。

A=[1 0;1 1];
B=[1 1]';
C=[1 1];
D=0;
sys = ss(A,B,C,D);
x_0 = [1 0]';
t=[0:0.01:2];
u=heaviside(t);
[y,T,x]=lsim(sys,u,t,x_0);
plot(t,y);      %输出响应曲线

2.2 根轨迹法

rlocus(sys)可以画出系统根轨迹

3 频域分析法

3.1 伯德图

bode(num,den) % 绘制bode图

[mag pha] = bode(num,den) %mag、pha是bode图的幅值和相位函数

margin(num,den) %计算连续系统的幅值裕度和相角裕度,并绘制bode图

[gm,pm,wcp,wcg] = margin(num,den) % 计算幅值裕度、相角裕度及对应的穿越频率

3.2 奈奎斯特图

nyquist(num,den) %求连续系统的奈奎斯特曲线

4 状态空间分析法

4.1 求状态转移矩阵

syms s;
A=[1 0;1 1];
I=[1 0;0 1];
fai = ilaplace(inv(s*I-A));

4.2 可控性可观性分析

QC = ctrb(A,B);     %获得可控性矩阵
QO = obsv(A,C);     %获得可观性矩阵
%再求两阵的秩即可判断可控性、可观性
[Ac,Bc,Cc,Tc,Kc]=ctrbf(A,B,C) %可控性分解 
%将系统分解为可控子系统和不可控子系统,Tc是变换阵,sum(Kc)是可控状态的数目
[Ao,Bo,Co,To,Ko]=cbsvf(A,B,C)   %可观性分解
将系统分解为可观测子系统和不可观测子系统,Tc是变换阵,sum(Ko)是可观测状态的数目

5 非线性分析

5.1 相平面图

[tout,yout] = ode45(function,[t0,tf],y0)


其中yout是解向量,与时间向量tout一一对应;function是函数句柄,内部包含非线性微分方程;t0, tf是初始时间与终止时间;y0是微分方程的初始条件。


e.g. x ¨ + x ˙ + ∣ x ∣ = 0 \ddot{x}+\dot{x}+\left| x \right|=0

x

¨

+

x

˙

+∣x∣=0

diff_eqn.m
function sys = diff_eqn(t,x)
sys = [x(2);-x(2)-abs(x(1))];
end
main.m
[t,x] = ode45('diff_eqn',[0,9],[-5,11]);
plot(x(:,1),x(:,2));


image.png

6 常用的工程数学函数

6.1 矩阵运算

6.1.1 矩阵求逆inv(A)
6.1.2 矩阵行列式det(A)
6.1.3 矩阵特征分解eig(A)

[V,D]=eig(A):求矩阵A的全部特征值,构成对角阵D,并求A的特征向量构成V的列向量

6.1.4 矩阵秩rank(A)

6.2 积分变换

6.2.1 拉氏变换与反拉式变换laplace()/ilaplace()

此文档将随着学习过程,不断更新。

目录
相关文章
|
9天前
|
机器学习/深度学习 人工智能 算法
基于DCT和扩频的音频水印嵌入提取算法matlab仿真
本文介绍了结合DCT和扩频技术的音频水印算法,用于在不降低音质的情况下嵌入版权信息。在matlab2022a中实现,算法利用DCT进行频域处理,通过扩频增强水印的隐蔽性和抗攻击性。核心程序展示了水印的嵌入与提取过程,包括DCT变换、水印扩频及反变换步骤。该方法有效且专业,未来研究将侧重于提高实用性和安全性。
|
1天前
|
机器学习/深度学习 算法 数据挖掘
基于PSO优化的CNN-GRU-Attention的时间序列回归预测matlab仿真
摘要: 本文介绍了运用粒子群优化(PSO)调整深度学习模型超参数以提升时间序列预测性能的方法。在比较了优化前后的效果(Ttttttttttt12 vs Ttttttttttt34)后,阐述了使用matlab2022a软件的算法。文章详细讨论了CNN、GRU网络和注意力机制在时间序列预测中的作用,以及PSO如何优化这些模型的超参数。核心程序展示了PSO的迭代过程,通过限制和调整粒子的位置(x1)和速度(v1),寻找最佳解决方案(gbest1)。最终,结果保存在R2.mat文件中。
基于PSO优化的CNN-GRU-Attention的时间序列回归预测matlab仿真
|
4天前
|
机器学习/深度学习 算法 计算机视觉
m基于Yolov2深度学习网络的人体喝水行为视频检测系统matlab仿真,带GUI界面
MATLAB 2022a中使用YOLOv2算法对avi视频进行人体喝水行为检测,结果显示成功检测到目标。该算法基于全卷积网络,通过特征提取、锚框和损失函数优化实现。程序首先打乱并分割数据集,利用预训练的ResNet-50和YOLOv2网络结构进行训练,最后保存模型。
14 5
|
7天前
|
机器学习/深度学习 算法 数据挖掘
基于PSO优化的CNN-LSTM-Attention的时间序列回归预测matlab仿真
该文档介绍了使用MATLAB2022A中PSO优化算法提升时间序列预测模型性能的过程。PSO优化前后对比显示了优化效果。算法基于CNN、LSTM和Attention机制构建CNN-LSTM-Attention模型,利用PSO调整模型超参数。代码示例展示了PSO的迭代优化过程及训练、预测和误差分析环节。最终,模型的预测结果以图形形式展示,并保存了相关数据。
|
20天前
|
机器学习/深度学习 算法
基于GA优化的CNN-LSTM-Attention的时间序列回归预测matlab仿真
时间序列预测是许多领域中的核心问题,如金融市场分析、气候预测、交通流量预测等。近年来,深度学习在时间序列分析上取得了显著的成果,尤其是卷积神经网络(CNN)、长短时记忆网络(LSTM)和注意力机制(Attention)的结合使用
|
3月前
|
Perl
【MFAC】基于全格式动态线性化的无模型自适应控制(Matlab代码)
【MFAC】基于全格式动态线性化的无模型自适应控制(Matlab代码)
|
3月前
【数值分析】迭代法求方程的根(附matlab代码)
【数值分析】迭代法求方程的根(附matlab代码)
|
3月前
【数值分析】Jacobi、Seidel和Sor迭代法求解线性方程组(附matlab代码)
【数值分析】Jacobi、Seidel和Sor迭代法求解线性方程组(附matlab代码)
|
3月前
【数值分析】二分法求方程的根(附matlab代码)
【数值分析】二分法求方程的根(附matlab代码)
|
22天前
|
存储 人工智能 机器人
【Matlab】Matlab电话拨号音合成与识别(代码+论文)【独一无二】
【Matlab】Matlab电话拨号音合成与识别(代码+论文)【独一无二】

热门文章

最新文章