MATLAB 帮助中心
多个模型的反馈连接
sys = feedback(sys1,sys2)
sys = feedback(sys1,sys2,feedin,feedout)
sys = feedback(sys1,sys2,'name')
sys = feedback(___,sign)
sys = feedback(sys1,sys2) 返回一个模型对象 sys,其中包含 sys1,sys2 的负反馈互连。
sys
sys1,sys2
在上图中,闭环模型 sys 的输入向量为 u,输出向量为 y。sys1 和 sys2 这两个模型必须都是连续的或者都是离散的,并且具有相同的采样时间。
sys1
sys2
示例
sys = feedback(sys1,sys2,feedin,feedout) 使用通过 feedin 和 feedout 指定的输入和输出连接来计算闭环模型 sys。当您只想连接 MIMO 系统的部分可用 I/O 时,请使用此语法。
feedin
feedout
sys = feedback(sys1,sys2,'name') 使用 MIMO 模型 sys1 和 sys2 各自的 I/O 名称指定的反馈连接计算闭环模型 sys。仅当一组 MIMO 系统中所有必需的 I/O 都正确命名时,才使用 'name' 标志。
'name'
sys = feedback(___,sign) 为具有由 sign 指定的反馈类型的反馈环返回模型对象 sys。默认情况下,feedback 采用负反馈,并且等效于 feedback(sys1,sys2,-1)。要计算具有正反馈的闭环系统,请使用 sign = +1。
sign
feedback
feedback(sys1,sys2,-1)
sign = +1
全部折叠
pendulumModelAndController.mat 包含一个 SISO 倒立摆传递函数模型 G 及其相关联的 PID 控制器 C。
pendulumModelAndController.mat
G
C
将倒立摆和控制器模型加载到工作区。
load('pendulumModelAndController','G','C'); size(G)
Transfer function with 1 outputs and 1 inputs.
size(C)
PID controller with 1 output and 1 input.
为了创建此闭环结构,请将控制器模型和被控对象模型串行连接起来以创建 sys1,并将 sys2 设置为 1 以表示单位反馈。默认情况下,该函数应用负反馈,但您可以使用可选的 sign 参量来指定反馈类型。对于此示例,您可以省略 sign 参量,也可以将其设置为 -1 以指定负反馈。
sys1 = G*C; sys2 = 1; sign = -1;
使用 feedback 与 G 和 C 创建负反馈环。
sys = feedback(sys1,sys2,sign)
sys = 1.307e-06 s^3 + 3.136e-05 s^2 + 5.227e-06 s --------------------------------------------------------- 2.3e-06 s^4 + 1.725e-06 s^3 - 4.035e-05 s^2 - 5.018e-06 s Continuous-time transfer function. Model Properties
sys 是使用负反馈获得的最终闭环连续时间传递函数。
对于此示例,假设两个传递函数分别描述被控对象 G 和控制器 C。
G(s)=2s2+5s+1s2+2s+3C(s)=5(s+2)s+10
创建被控对象和控制器传递函数。
G = tf([2 5 1],[1 2 3],'inputname',"torque",'outputname',"velocity"); C = tf([5,10],[1,10]);
sys = feedback(G,C,-1)
sys = From input "torque" to output "velocity": 2 s^3 + 25 s^2 + 51 s + 10 --------------------------- 11 s^3 + 57 s^2 + 78 s + 40 Continuous-time transfer function. Model Properties
sys 是使用负反馈并以扭矩为输入、速度为输出获得的最终闭环传递函数。
使用 feedback 与 G 和 C 创建正反馈环。
sys = feedback(G,C,+1)
sys = From input "torque" to output "velocity": -2 s^3 - 25 s^2 - 51 s - 10 --------------------------- 9 s^3 + 33 s^2 + 32 s - 20 Continuous-time transfer function. Model Properties
sys 是使用正反馈并以扭矩为输入、速度为输出获得的最终闭环传递函数。
根据下图,考虑在一个负反馈环中连接两个 MIMO 传递函数,它们各具有两个输入和两个输出。
对于此示例,使用 rss 创建两个随机连续状态空间模型。
rss
G = rss(4,2,2); C = rss(2,2,2); size(G)
State-space model with 2 outputs, 2 inputs, and 4 states.
State-space model with 2 outputs, 2 inputs, and 2 states.
根据上图,使用 feedback 在一个负反馈环中连接两个状态空间模型。
sys = feedback(G,C,-1); size(sys)
State-space model with 2 outputs, 2 inputs, and 6 states.
得到的状态空间模型 sys 是具有 6 个状态的 2 输入 2 输出模型。负反馈环已完成,满足以下条件:
G 的第一个输出连接到 C 的第一个输入
G 的第二个输出连接到 C 的第二个输入
mimoPlantAndController.mat 包含一个 2 输入 2 输出传递函数被控对象模型 G 和一个 2 输入 2 输出传递函数控制器模型 C,连接方式如下:
mimoPlantAndController.mat
首先,将被控对象模型和控制器模型加载到工作区。
load('mimoPlantAndController.mat','G','C'); size(G)
Transfer function with 2 outputs and 2 inputs.
默认情况下,feedback 会将 G 的第一个输出连接到 C 的第一个输入,并将 G 的第二个输出连接到 C 的第二个输入。为了按照图示连接被控对象和控制器,请先对这两个系统的 I/O 分别命名以确保正确连接。
G.InputName
ans = 2×1 cell {'torque'} {'angle' }
G.OutputName
ans = 2×1 cell {'velocity'} {'force' }
C.InputName
ans = 2×1 cell {'force' } {'velocity'}
C.OutputName
ans = 2×1 cell {'angle' } {'torque'}
然后使用 'name' 标记和 feedback 命令根据 I/O 名称建立连接。
sys = feedback(G,C,'name');
生成的闭环负反馈传递函数 sys 具有所需顺序的反馈连接。
假设有一个具有五个输入与四个输出的状态空间被控对象 G 和一个具有三个输入与两个输出的状态空间反馈控制器 K。被控对象 G 的输出 1、3 和 4 必须连接到控制器 K 的输入,并且该控制器的输出连接到该被控对象的输入 2 和 4。
K
对于此示例,使用 rss 函数为 G 和 K 生成随机连续时间状态空间模型。
G = rss(3,4,5); K = rss(3,2,3);
根据反馈环中要连接的输入和输出,定义 feedout 和 feedin 向量。
feedin = [2 4]; feedout = [1 3 4]; sys = feedback(G,K,feedin,feedout,-1); size(sys)
State-space model with 4 outputs, 5 inputs, and 6 states.
sys 是通过连接 G 和 K 的指定输入和输出获得的最终闭环状态空间模型。
将在反馈环中连接的系统,指定为动态系统模型。您可以使用的动态系统包括:
连续时间或离散时间数值 LTI 模型,如 tf、zpk、pid、pidstd 或 ss 模型。
tf
zpk
pid
pidstd
ss
频率响应模型,如 frd 或 genfrd。
frd
genfrd
广义或不确定的 LTI 模型,如 genss 或 uss (Robust Control Toolbox) 模型。(使用不确定模型需要 Robust Control Toolbox™ 软件。)
genss
uss
生成的反馈环采用
对于可调控制设计模块,采用可调组件的当前值。
对于不确定的控制设计模块,采用标称模型值。
有关详细信息,请参阅动态系统模型。
当 sys1 和 sys2 是两种不同模型类型时,feedback 使用优先级规则来确定生成的模型 sys。例如,当状态空间模型和传递函数在反馈环中连接时,基于优先级规则,得到的系统是状态空间模型。有关详细信息,请参阅Rules That Determine Model Type。
要使用的输入的子集,指定为向量。
在图中,feedin 包含 MIMO 被控对象 P 的输入向量的索引,并指定反馈环中涉及输入 u 的哪个子集。生成的模型 sys 具有与 G 相同的输入,其顺序保持不变。
P
有关示例,请参阅指定反馈环中的输入和输出连接。
要使用的输出的子集,指定为向量。
feedout 指定 MIMO 被控对象 G 的哪些输出用于反馈。生成的模型 sys 具有与 G 相同的输出,其顺序保持不变。
-1
+1
反馈的类型,对于负反馈,指定为 -1;对于正反馈,指定为 +1。feedback 默认采用负反馈。
闭环系统,以 SISO 或 MIMO 动态系统模型形式返回。sys 可以是以下项之一,具体取决于优先级规则:
连续时间或离散时间数值 LTI 模型,如 tf、zpk、ss、pid 或 pidstd 模型。
广义或不确定的 LTI 模型,如 genss 或 uss (Robust Control Toolbox) 模型。(使用不确定模型需要 Robust Control Toolbox 软件。)
当 sys1 和 sys2 是两种不同模型类型时,feedback 使用优先级规则来确定生成的模型 sys。例如,当状态空间模型和传递函数在反馈环中连接时,基于Rules That Determine Model Type中概述的优先级规则,生成的系统是状态空间模型。
反馈连接不能有代数环。例如,如果 D1 和 D2 是 sys1 和 sys2 的馈通矩阵,则此条件等效于:
在使用负反馈时 I + D1D2 非奇异
在使用正反馈时 I − D1D2 非奇异
对于复杂的反馈结构,请使用 append 和 connect。
append
connect
在 R2006a 之前推出
append | connect | series | lft | sumblk | parallel
series
lft
sumblk
parallel
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
欧洲
亚太
联系您当地的办事处