解耦
耦合是指两个或两个以上的体系或两种运动形式间通过相互作用而彼此影响以至联合起来的现象。 解耦就是用数学方法将两种运动分离开来处理问题,常用解耦方法就是忽略或简化对所研究问题影响较小的一种运动,只分析主要的运动。
数学中解耦是指使含有多个变量的数学方程变成能够用单个变量表示的方程组,即变量不再同时共同直接影响一个方程的结果,从而简化分析计算。通过适当的控制量的选取,坐标变换等手段将一个多变量系统化为多个独立的单变量系统的数学模型,即解除各个变量之间的耦合。最常见的有发电机控制,锅炉调节等系统。软件开发中的耦合偏向于两者或多者的彼此影响,解耦就是要解除这种影响,增强各自的独立存在能力,可以无限降低存在的耦合度,但不能根除,否则就失去了彼此的关联,失去了存在意义。
工程背景在现代化的工业生产中,不断出现一些较复杂的设备或装置,这些设备或装置的本身所要求的被控制参数往往较多,因此,必须设置多个控制回路对该种设备进行控制。由于控制回路的增加,往往会在它们之间造成相互影响的耦合作用,也即系统中每一个控制回路的输入信号对所有回路的输出都会有影响,而每一个回路的输出又会受到所有输入的作用。要想一个输入只去控制一个输出几乎不可能,这就构成了“耦合”系统。由于耦合关系,往往使系统难于控制、性能很差。
主要分类三种解耦理论分别是:基于Morgan问题的解耦控制,基于特征结构配置的解耦控制和基于H_∞的解耦控制理论。
在过去的几十年中,有两大系列的解耦方法占据了主导地位。其一是围绕Morgan问题的一系列状态空间方法,这种方法属于全解耦方法。这种基于精确对消的解耦方法,遇到被控对象的任何一点摄动,都会导致解耦性的破坏,这是上述方法的主要缺陷。其二是以Rosenbrock为代表的现代频域法,其设计目标是被控对象的对角优势化而非对角化,从而可以在很大程度上避免全解耦方法的缺陷,这是一种近似解耦方法。
补偿控制基于不变性原理组成的自动控制称为补偿控制,它实现了系统对全部干扰或部分干扰的补偿。 按其结构的不同, 补偿控制系统一般有前馈控制系统和大迟延过程系统两种。补偿控制系统广泛应用于工业生产过程、医学、心理学、军事、电机、计算机等领域。1
前馈控制是以不变性原理为理论基础的一种控制方法, 属开环控制系统。 常用的前馈控制系统有单纯前馈控制系统、前馈 -反馈控制系统和前馈 -串级控制系统等三种结构形式。大迟延系统的解决方法很多, 最简单的是利用常规控制器。主要采用常规 PID 的变形方案,如微分先行控制方案和中间微分控制方案等。
原理设被控对象受到干扰 Di(t) 的作用时,被控变量 y(t)的不变性可表示为:当 Di(t)≠0 时,则 y(t)=0 (i=l,2,…,n) ,即被控变量 y(t)与干扰 Di(t) 独立无关。基于不变性原理组成的自动控制称为补偿控制, 它实现了系统对全部干扰或部分干扰的不变性,实质上是一种按照扰动进行补偿的开环系统。
补偿控制首先求出满足性能指标的控制规律,然后在系统中增加补偿控制器,来改变控制器的响应,从而使整个系统获得期望的性能指标。
解耦补偿控制基本目标选择适当的控制规律将一个多变量系统化为多个独立的单变量系统的控制问题。在解耦控制问题中,基本目标是设计一个控制装置,使构成的多变量控制系统的每个输出变量仅由一个输入变量完全控制,且不同的输出由不同的输入控制。在实现解耦以后,一个多输入多输出控制系统就解除了输入、输出变量间的交叉耦合,从而实现自治控制,即互不影响的控制。互不影响的控制方式,已经应用在发动机控制、锅炉调节等工业控制系统中。多变量系统的解耦控制问题,早在30年代末就已提出,但直到1969年才由E.G.吉尔伯特比较深入和系统地加以解决。
完全解耦控制对于输出和输入变量个数相同的系统,如果引入适当的控制规律,使控制系统的传递函数矩阵为非奇异对角矩阵,就称系统实现了完全解耦。使多变量系统实现完全解耦的控制器,既可采用状态反馈结合输入变换的形式,也可采用输出反馈结合补偿装置的形式。给定n维多输入多输出线性定常系统(A,B,C)(见线性系统理论),将输出矩阵C表示为,式中D为非奇异对角矩阵,其各对角线上元的值可根据其他性能指标来选取。由这样选取的K和L所构成的控制系统必定是稳定的,并且它的闭环传递函数矩阵G(s)当s=0时即等于D。在对系统参数变动的敏感方面,静态解耦控制要比完全解耦控制优越,因而更适宜于工程应用。
选择适当的控制规律将一个多变量系统化为多个独立的单变量系统的控制问题。在解耦控制问题中,基本目标是设计一个控制装置,使构成的多变量控制系统的每个输出变量仅由一个输入变量完全控制,且不同的输出由不同的输入控制。在实现解耦以后,一个多输入多输出控制系统就解除了输入、输出变量间的交叉耦合,从而实现自治控制,即互不影响的控制。互不影响的控制方式,已经应用在发动机控制、锅炉调节等工业控制系统中。多变量系统的解耦控制问题,早在30年代末就已提出,但直到1969年才由E.G.吉尔伯特比较深入和系统地加以解决。
相关算法完全解耦控制对于输出和输入变量个数相同的系统,如果引入适当的控制规律,使控制系统的传递函数矩阵为非奇异对角矩阵,就称系统实现了完全解耦。使多变量系统实现完全解耦的控制器,既可采用状态反馈结合输入变换的形式,也可采用输出反馈结合补偿装置的形式。给定n维多输入多输出线性定常系统(A,B,C)(见线性系统理论)
已证明,系统可用状态反馈和输入变换,即通过引入控制规律u=-Kx+Lv,实现完全解耦的充分必要条件是矩阵E为非奇异。这里,u为输入向量,x为状态向量,v为参考输入向量,K为状态反馈矩阵,L为输入变换矩阵。对于满足可解耦性条件的多变量系统,通过将它的系数矩阵A,B,C化成为解耦规范形,便可容易地求得所要求的状态反馈矩阵K和输入变换矩阵L。完全解耦控制方式的主要缺点是,它对系统参数的变动很敏感,系统参数的不准确或者在运行中的某种漂移都会破坏完全解耦。
静态解耦控制一个多变量系统在单位阶跃函数(见过渡过程) 输入作用下能通过引入控制装置实现稳态解耦时,就称实现了静态解耦控制。对于线性定常系统(A,B,C),如果系统可用状态反馈来稳定,且系数矩阵A、B、C满足关于秩的关系式,则系统可通过引入状态反馈和输入变换来实现静态解耦。多变量系统在实现了静态解耦后,其闭环控制系统的传递函数矩阵G(s)当s=0时为非奇异对角矩阵;但当s≠0时,G(s)不是对角矩阵。对于满足解耦条件的系统,使其实现静态解耦的状态反馈矩阵K和输入变换矩阵L可按如下方式选择:首先,选择K使闭环系统矩阵(A-BK)的特征值均具有负实部。随后,选取输入变换矩阵
,式中D为非奇异对角矩阵,其各对角线上元的值可根据其他性能指标来选取。由这样选取的K和L所构成的控制系统必定是稳定的,并且它的闭环传递函数矩阵G(s)当s=0时即等于D。在对系统参数变动的敏感方面,静态解耦控制要比完全解耦控制优越,因而更适宜于工程应用。
软件解耦说起软件的解耦必然需要谈论耦合度,降低耦合度即可以理解为解耦,模块间有依赖关系必然存在耦合,理论上的绝对零耦合是做不到的,但可以通过一些现有的方法将耦合度降至最低。
做事情要想事半功倍,就要高处着眼,触摸到事情的脉络。当今流行着各种眼花缭乱的软件框架,不管是struts,还是spring,hibernate,还是.net,还是各种前端UI框架,其设计的核心思想是:
尽可能减少代码耦合,如果发现代码耦合,就要采取解耦技术;
解耦方法有但不限有如下几种:
(a)采用现有设计模式实现解耦,如事件驱动模式、观察者模式、责任链模式等都可以达到解耦的目的;
(b)采用面向接口的方式编程,而不是用直接的类型引用,除非在最小内聚单元内部。但使用该方法解耦需要注意不要滥用接口。
(c)高内聚,往往会带来一定程度的低耦合度。高内聚决定了内部自行依赖,对外只提供必须的接口或消息对象,那么由此即可达成较低的耦合度。