负单位反馈系统的前馈函数定义为 G(s) = 10* (2s + 5) * (s^2 + 6s + 34) / ((s + 7) * (50s^4 + 644s^3 + 996s^2 - 739s - 3559)) 系统的输入为r (t) = u (t)。其中K=25。 您将需要提供一个Matlab代码来计算以下值,在命令行窗口输出值,并且显示在根轨迹图中。 (1)渐近线与实轴的交点σa (2)渐近线与实轴的夹角ϴa (3)分离点 (4)根轨迹与虚轴的交点。 解释:渐近线是无穷远处极点或零点的线,由其与实数轴的交点和其与实数轴的夹角确定。分离点为两个极点间存在根轨迹会在一个点进行分离。
时间: 2024-03-15 13:44:51 浏览: 55
以下是计算步骤和Matlab代码:
步骤1:计算系统的开环传递函数
```
num = 10 * [2, 5, 1, 34]; % 分子系数
den = conv([1, 7], [50, 644, 996, -739, -3559]); % 分母系数
G = tf(num, den); % 创建传递函数
```
步骤2:计算系统的根轨迹
```
rlocus(K * G); % 绘制根轨迹
```
步骤3:计算渐近线和分离点
```
[num, den] = tfdata(G);
p = roots(den);
z = roots(num);
n = length(p) - length(z);
sigma_a = real(sum(p) - sum(z)) / n; % 计算渐近线与实轴的交点
theta_a = (2 * (0:n-1) + 1) * pi / (2 * n) - angle(den(end)); % 计算渐近线与实轴的夹角
sep_points = rlocus(K * G, 1i * linspace(-10, 10, 10000)); % 计算根轨迹与虚轴的交点
sep_points = sep_points(imag(sep_points) ~= 0);
```
步骤4:在命令行窗口输出结果
```
disp(['渐近线与实轴的交点: ', num2str(sigma_a)]);
disp(['渐近线与实轴的夹角: ', num2str(theta_a * 180 / pi), '°']);
disp(['分离点: ', num2str(sep_points)]);
```
步骤5:显示根轨迹图
```
title('Root Locus');
xlabel('Real Axis');
ylabel('Imaginary Axis');
grid on;
```
完整的Matlab代码如下:
```matlab
num = 10 * [2, 5, 1, 34]; % 分子系数
den = conv([1, 7], [50, 644, 996, -739, -3559]); % 分母系数
G = tf(num, den); % 创建传递函数
K = 25; % 比例增益
rlocus(K * G); % 绘制根轨迹
[num, den] = tfdata(G);
p = roots(den);
z = roots(num);
n = length(p) - length(z);
sigma_a = real(sum(p) - sum(z)) / n; % 计算渐近线与实轴的交点
theta_a = (2 * (0:n-1) + 1) * pi / (2 * n) - angle(den(end)); % 计算渐近线与实轴的夹角
sep_points = rlocus(K * G, 1i * linspace(-10, 10, 10000)); % 计算根轨迹与虚轴的交点
sep_points = sep_points(imag(sep_points) ~= 0);
disp(['渐近线与实轴的交点: ', num2str(sigma_a)]);
disp(['渐近线与实轴的夹角: ', num2str(theta_a * 180 / pi), '°']);
disp(['分离点: ', num2str(sep_points)]);
title('Root Locus');
xlabel('Real Axis');
ylabel('Imaginary Axis');
grid on;
```
阅读全文