
在 MATLAB 中,feedback 函数用于计算两个传递函数的闭环响应。这个函数特别适用于控制系统设计,其中你需要分析一个系统的闭环行为。feedback 函数接受两个传递函数(通常是开环系统的传递函数和反馈路径的传递函数),并返回闭环系统的传递函数。
语法
[clsys, ~] = feedback(sys1, sys2, sign)或者
clsys = feedback(sys1, sys2)参数
- sys1:开环系统的传递函数,可以是单输入单输出(SISO)或多输入多输出(MIMO)系统。
- sys2:反馈路径的传递函数。对于单位负反馈,sys2 可以是标量 -1 或与 sys1 维度匹配的传递函数矩阵。
- sign(可选):指定反馈的符号。默认值是 -1,表示负反馈。如果是正反馈,可以设置为 +1。
返回值
- clsys:闭环系统的传递函数。
示例
示例 1:单位负反馈的 SISO 系统
假设有一个开环传递函数 $ G(s) = \frac{1}{s+1} $,并且有一个单位负反馈路径。
% 定义开环传递函数 G = tf(1, [1 1]); % 计算闭环传递函数(单位负反馈是默认情况) Clsys = feedback(G, 1); % 显示闭环传递函数 Clsys示例 2:具有不同反馈路径的 SISO 系统
假设有一个开环传递函数 $ G(s) = \frac{1}{s+1} $,并且反馈路径传递函数 $ H(s) = \frac{1}{s+2} $。
% 定义开环传递函数 G = tf(1, [1 1]); % 定义反馈路径传递函数 H = tf(1, [1 2]); % 计算闭环传递函数 Clsys = feedback(G, H); % 显示闭环传递函数 Clsys示例 3:MIMO 系统
对于 MIMO 系统,假设有两个输入和两个输出,开环传递函数和反馈路径传递函数是 2x2 的传递函数矩阵。
% 定义开环传递函数矩阵 G = [tf(1, [1 1]), tf(1, [2 1]); tf(1, [1 2]), tf(1, [1 1])]; % 定义反馈路径传递函数矩阵(这里假设为单位负反馈) H = eye(2); % 计算闭环传递函数 Clsys = feedback(G, H); % 显示闭环传递函数 Clsys注意
- feedback 函数通常用于线性时不变(LTI)系统。
- 对于 MIMO 系统,sys1 和 sys2 必须是维度相同的传递函数矩阵。
- feedback 函数返回的是闭环系统的传递函数,可以直接用于进一步的分析,如稳定性分析、频率响应分析等。
通过这些示例,你应该能够理解 feedback 函数在 MATLAB 中的基本用法,并能够应用于各种控制系统设计问题。
