您当前的位置:五五电子网电子知识电工技术经验交流D/D设计中控制系统的优化技巧 正文
D/D设计中控制系统的优化技巧

D/D设计中控制系统的优化技巧

点击数:7832 次   录入时间:03-04 12:03:42   整理:http://www.55dianzi.com   经验交流
理论

  很多目前可用的计算软件工具都包含了优化函数。运用算法可以看作是让描述系统的函数解法与目标结果最为接近的方法。这个问题可以用下面的算术等式来表现:

  将χ,ξ,ξ最小化以实现

  f(x) –权值 * ξ ≤ 目标结果

  取决于这些约束:

  c(x) ≤ 0

  ceq(x) = 0

  Ax ≤ b

  Aeqx = beq

  lb ≤ x ≤ up

  上面的公式可以看作是一个最小化问题,从权值? ξ可以看出,这里有一定的宽松度。宽松度是指超出目标或未达到目标的程度。宽松度的大小取决于“权值”向量中的进项。如果必须完全准确地达到某个目标结果,可以将该目标函数的权值设为零。这些限制条件可以看作是问题解法的可行区域。比如,电阻和电容不能有负值。因此,如果x是一个代表电路中电阻和电容的向量,我们就可以将下限(Ib)设为零。

  序列二次规划算法(SQP)[1]是一个经常被用来解决约束型多目标优化问题的算法。SQP算法可以看作是牛顿解法的一种变体,并在几次反复后收敛。这一算法被执行在MATLAB的fgoalattain函数中,简化了一个优化程序的开发。

  软件执行

  执行于MATLAB fgoalattain函数中的SQP算法有多个输入变量,包括要优化的函数、初值、目标、目标权值、约束和各种选项来显示目标达到进展或出口条件。要在MATLAB中执行fgoalattain函数,可以采用以下形式:

  [x, fval, attainfactor] = fgoalattain(fun, x0, 目标, 权值, A, b, Aeq, beq, lb, ub, nonlcon, options)

  以一个控制器设计为例,输入变量fun是一个MATLAB函数,可以返回一个闭路开关模式电源的过冲、上升时间和稳定性测量值等参数。输入变量x0是控制器初值,可以利用标准法则来计算[2]。权值的选择可以以设计目标的相关重要性作为依据。若要完全实现设计目标,可以将可变权值设为和目标向量绝对值相等。如果一个权值被设为零,就会被当作一个硬约束,而结算器会对该目标进行排序。

  输入变量A, b, Aeq, beq, lb, up和nonlcon都是在上一章节中所提到过的约束。这些约束值取决于设计人员能够应付的设计空间。如果一个约束被忽视,就会有一套括号"[]"被填充到它的位置。输入变量options让结算器的多个内部参数可以同时显示到指令窗口。利用这一特性可以帮助我们确认某个特殊计算的进程。

  为了方便说明,我们来看看下面的简单示例,其中目标是极点位置。假设一个系统由下面的转移函数来表示:


  其中a是某个设计参数

  假设设计目标是使系统的极点s = –1 rps, –10 rps和 –100 rps。这可以通过下面的代码来完成:

  函数 a= root_loc

  a0 = 1; % Initial guess for a

  goal = [-100 -10 -1]; % Pole placement goal

  weight = abs(goal); % Equal weighting of goals

  ptions = optimset('LargeScale', 'off', 'Display', 'iter', 'GoalsExactAchieve', 3); [a,fval,attainfactor] = fgoalattain(@sysfun,...

  a0,goal,weight,[],[],[],[],[],[],[],[]) % Optimization function

  function r = sysfun(a) % System function

  sys_den = [1 111 1110 a]; % Denominator of system transfer function

  r = roots(sys_den); % Calculate the poles of the system

  end

  end

  在程序执行完上面的代码后,下面的内容会出现在MATLAB的指令窗口中:

  Optimization terminated: magnitude of directional derivative in search

  direction less than 2*options.TolFun and maximum constraint violation

  is less than options.TolCon.

  Active inequalities (to within options.TolCon = 1e-006):

  lower upper ineqlin ineqnonlin

  1

  2

  3

  a = 1000.00000002537

  fval = -100.000000000003

  -9.99999999996868

  -1.00000000002847

  attainfactor = 3.77294549557555e-013

  这里我们可以看到这个程序被终止了,因为它不能进行更多的反复。要注意的是:如果达到因素很小,则表明目标已经基本完全达到;如果达到因素是正值,就说明还没有完全达到目的。

  要了解更多有关fgoalattain函数的信息,可以登陆Mathworks网站。若想看到执行fgoalattain算法的MATLAB编码,只需在MATLAB指令提示符输入“type fgoalattain”即可。

  设计示例

  为了展示这个方法的功效,我们假设有一个采用第2类控制器的降压稳压器,其规格如下:

  最大过冲 ≤5%

  上升时间≤100微秒

  这个控制器也必须稳定可靠,并具有幅度为10 dB的增益和53度的相补角。

  我们使用的是国家半导体公司的LM2657型可调200~500 kHz同步降压稳压器。这是一个用于高电流应用的双通道电压模式控制型调节器。对于每个阶段的高位和低位,LM2657只需要n-通道FET。它的参数和工作条件如下:

  VOUT = 2.5 V

  IOUT = 4A

  L = 10μH

  C = 100μF

  RESR = 90毫欧姆

  调节器增益, A = 10 V/V

  开关频率 = 300 kHz



  图1:采用第2类补偿方案的降压稳压器。

  假设瞬态性能比可靠性更重要,而且加权值得当。随后就会执行一个多目标优化程序:该程序结合了增益和相补角的盘余量测量值(例如:盘余量是一个基于Nyquist图和一个以–1, 0为中心的圆盘的可靠性的测量值)。该程序会产生下面的数字:

  过冲 = 6.6%

  80%上升时间 = 103 微秒

  增益余量 = 7.23 dB

  相补角 = 72.8度

  接下来这个程序会计算元件值:R2 = 42.3KΩ, R3 = 7.52 KΩ, C2 = 2.36 pF, C3 = 1.99 nF

  回路增益和系统瞬态反应分别如下面图2和图3所示。


  图2:回路增益,降压稳压器。


  图3:瞬态反应,降压稳压器。

  注意在这里设计目标并没有达到。此时设计人员可以选择采用第3类补偿来尝试达到目标,重新考虑给定规格的重要性和分量,或者接受已完成的现有设计。一般来说设计人员都会接受最初书面设计的结果,因为测量值总是会不可避免地和计划值有所偏差。

  总结

  在给定的要求下,设计人员可以通过多目标优化调节系统中的变量来满足这些要求。MATLAB的fgoalattain函数可以帮助进行这样的优化。这种程序的应用是很广泛的,可以扩展到电力电子的任何领域。



本文关键字:技巧  控制系统  经验交流电工技术 - 经验交流

《D/D设计中控制系统的优化技巧》相关文章>>>