|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 cupy001 于 2025-3-9 10:46 编辑
首先,在已知传输函数的情况下,不管是考虑噪声E(z),还是经典的无噪声理论模型时,我们在matlab中用代码实现根轨迹,只需要知道开环传输函数。因为根轨迹是基于开环传递函数G(s)H(s)绘制的,【其中G(s)是前向传递函数,H(s)是反馈传递函数(通常为 1,即单位反馈)】,根轨迹的物理意义就是特征方程1+KG(s)H(s)=0 的根随增益K 变化的轨迹,根据系统的开环传递函数G(s)H(s),确定其极点和零点(极点是分母的根,零点是分子的根)。
下面通过一个例子说明:
假如噪声传递函数如右所示,
从L1也能反推出NTF(Z)=1/(1-L1)
对上述理想模型进行优化
(此处的λ就是我们所说的增益变量K),所以将上述特征方程转化成标准形式 1+KG(s)H(s)=0 ,
可得 1+K*(-L1)=0
所以其开环传输函数就为(-L1),由式(3)可得,-L1=-(1-1/NTF)=1/NTF-1
因此,开环传递函数为: 其matlab代码如下所示:
% 定义 Laplace 变量 s
s = tf('s');%将时域转换成频域,不用涉及到卷积运算,分子分母可直接代公式
% 分子部分
numerator = (s - 0.2745) * (s - 0.851) * (s^2 - 1.84*s + 0.9066);
% 分母部分
denominator = (s - 1)^4;
% 开环传递函数 G(s)
G = numerator / denominator - 1;
% 绘制根轨迹
rlocus(G);
hold on; % 保持当前图形
% 绘制单位圆
theta = linspace(0, 2*pi, 100); % 角度从 0 到 2π
x = cos(theta); % 单位圆的实部
y = sin(theta); % 单位圆的虚部
plot(x, y, '--k', 'LineWidth', 0.5); % 黑色虚线,线宽为 0.5
% 设置坐标轴范围,确保单位圆完整显示
axis([-1 1 -1 1]); % x 和 y 轴范围设置为 [-1, 1]
% 添加标题和标签
title('Root Locus with Unit Circle');
xlabel('Real Axis');
ylabel('Imaginary Axis');
axis equal; % 保证 x 和 y 轴比例一致
hold off;
运行上述代码可得NTF的根轨迹:
注:上述理论推导参考附件论文,以上代码由deepseek实现,deepseek确实好用
|
|