某单位反馈系统的开环传递函数为G(s)=K*(S+2)/S(S+1),当K*由0变到无穷大,证明复平面的根轨迹是以开环零点为圆心的圆,并用MATLAB绘制根轨迹。
时间: 2024-11-22 13:48:46 浏览: 184
开环传递函数 \( G(s) = \frac{K(s + 2)}{s(s + 1)} \) 中有两个极点(位于 \( s = -1 \) 和 \( s = 0 \)),一个零点(位于 \( s = -2 \))。根轨迹分析关注的是闭环系统中根的实数部分变化情况,因为当\( K \)增大时,如果系统稳定,则根应该远离虚轴。
对于开环传递函数,当 \( K \rightarrow \infty \) 时,极点比零点更靠近虚轴。根据根轨迹定理,根轨迹是由开环零点和极点确定的,且当 \( K \) 趋于无穷大时,根将趋近于离原点最远的那个零点的实部值。在这个例子中,就是 -2。
根轨迹实际上是一系列曲线,每个 \( K \) 值对应一条线,当 \( K \) 变化时,它们围绕着零点形成一个圆形轨迹。这个圆的半径等于零点的负实部距离,即2。
为了用 MATLAB 绘制根轨迹,可以按照以下步骤操作:
1. 定义一个范围,如 \( K \) 的步长和最小、最大值。
2. 对于每个 \( K \) 值,计算对应的 \( s \) 平面上的根。
3. 使用 `root轨迹` 函数或者手动解方程组 \( KG(s) = 1 \) 来找到根。
4. 画出根轨迹,通常使用 `plot` 函数,并确保显示了实轴和虚轴。
以下是示例代码片段(假设 \( K \) 的范围从0到50):
```matlab
syms s K
G = K * (s + 2) / (s^2 + s);
% 确定 \( K \) 的范围
K_values = linspace(0, 50, 100); % 更改范围和步长
% 计算根轨迹
for k = K_values
roots_k = solve(G == 1, s, 'RealPart');
% 添加根轨迹至图
hold on;
plot(real(roots_k), imag(roots_k), '.-');
end
% 显示实轴和虚轴
hold off;
grid on;
xlabel('Re(s)');
ylabel('Im(s)');
title('Root Trajectory for G(s) when K varies');
% 画出零点和极点
plot(-2, 0, 'ro', '-1', 0, 'ko'); % 开环零点和极点位置
% 保存或显示图形
xlim([-3, 0]);
ylim([-2, 2]); % 调整坐标范围以包含根轨迹
```
运行此代码后,你会得到一张描绘根轨迹的图像,它是一个以开环零点为圆心的圆。
阅读全文