传递函数数学模型
%传递函数数学模型
num=[1 2];
den=[1 2 1];
sys=tf(num,den)
下方是代码的输出结果
sys =
s + 2
-------------
s^2 + 2 s + 1
零极点的传递函数
%零极点的传递函数
Z=[-1]; %零点
P=[-2,-3]; %极点
K=[1]; %增益
sys=zpk(Z,P,K)
下方是代码的输出结果
sys = (s+1) ----------- (s+2) (s+3)
串联
G1=tf(1,[1 1]); %1/(s+1)
G2=tf(1,[1 2]); %1/(s+2)
sys=series(G1,G2)%相乘
结果
sys =
1
-------------
s^2 + 3 s + 2
并联
G1=tf(1,[1 1]);
G2=tf(1,[1 2]);
sys=parallel(G1,G2)%相加
结果
sys =
2 s + 3
-------------
s^2 + 3 s + 2
反馈
%反馈
G1=tf(1,[1 1]);
H=tf(1,[1 3]);
sys=feedback(G1,H,-1)
结果
sys =
s + 3
-------------
s^2 + 4 s + 4
求特征方程的根
%求特征方程的根
den=[1 3 2 24];% s^3+3s^2+2s+24
roots(den)
结果
ans = 3×1 complex
-4.0000 + 0.0000i
0.5000 + 2.3979i
0.5000 - 2.3979i
单位阶跃响应
step(num,den)
step(num,den,t)
闭环传递函数
%闭环传递函数:
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)');
rlocfind函数
%%演示如何使用rlocfind函数查找满足条件的行和列的位置:
% 创建一个二维数组
A = [1 2 3; 4 5 6; 7 8 9; 10 11 12];
% 找到所有大于5的元素的位置
[~, index] = rlocfind(A, A(:) > 5)
% 输出结果
disp('找到的行索引:')
disp(index)
% 找到所有满足条件的列的位置
[~, col_index] = rlocfind(A, A(:, :) > 5)
% 输出结果
disp('找到的列索引:')
disp(col_index)
实验的程序
%传递函数数学模型
num=[12 11 11];
den=[1 2 8 12 8 5 5];
sys=tf(num,den)
% 绘制根轨迹
figure;
rlocus(sys);
roots(num)%零点
roots(den)%极点
%零极点的传递函数
Z=[]; %零点
P=[0,-2,-0.25]; %极点
K=[0.5]; %增益
sys=zpk(Z,P,K);
%传递函数数学模型
% num=[1 6];
% den=[1 3 6 0];
% sys=tf(num,den);
% 绘制根轨迹
figure;
rlocus(sys);
[k,p]=rlocfind(sys);
disp("该处根轨迹增益:");
disp(k);
disp("根轨迹增益对应极点:");
disp(p);
Z=[]; %零点
P=[-4,-4,-1,1]; %极点
K=[1]; %增益
sys=zpk(Z,P,K);
%传递函数数学模型
% num=[1 6];
% den=[1 3 6 0];
% sys=tf(num,den);
% 绘制根轨迹
figure;
rlocus(-sys)