中的操作 与Matlab中操作相比,VC中需要设置众多的编译选项,故显得比较复杂。另外,VC中可选的工程类型比较多,本文将说明Matlab编译得到的源程序在如下类型中的使用。 MFC Appwizard(exe) (Dialog Based) Win32 Console Application Win32 Application 其实在这几种类型的工程中大部分的操作都是相同的,本文先描述相同的操作,再说明不同的部分(程序部分)。第一步,用VC建立相应的工程,把第一步中得到的源程序拷贝到工程所在目录中;第二步,选用菜单Tools/Options,在属性页中选择Directories下拉框中选择Include Files,在其最后加入E:\\MATLAB6P5\\EXTERN\\INCLUDE\\CPP和 E:\\MATLAB6P5\\EXTERN\\INCLUDE;再在下拉框中选择Library Files中加入 E:\\MATLAB6P5\\EXTERN\\LIB\\WIN32\\MICROSOFT\\MSVC6和E:\\MATLAB6P5\\EXTERN\\LIB\\WIN32 第三步,选择菜单Project/Settings, 在属性页Link下拉列表中选择Input,在Object/library modules文本框中加入libmmfile.lib、libmatlb.lib,libmx.lib libmat.lib、libmatpm.lib、sgl.lib、libmwsglm.lib和libmwservices.lib;第四步选择C/C++属性页,在下拉列表中选择Preprocessor,在Preprocessor definitions中加入MSVC,IBMPC,MSWIND;第五步,菜单Project-Add To Project-Files把所有拷贝过来的cpp文件加入到当前工程中。 3.2 辨识设计 辨识 是在完全不明确控制模型情况下对系统进行判断,需要我们设定和建立模型。 1.设定数据长度 ,产生 序列。由于我们设计的是简单的SISO系统,一般长度不要求过于复杂,常取 -- ,在本文中我们采用的是 。 2.利用界面给定的实际对象的参数 确定模型的阶次。 3.由上步给出的阶次,给出辨识的输入输出模型。再将它代入最小二乘中算出输出参数。具体的设计流程如图3.1所示: 图3.1 辨识程序流 3.3 DMC算法的实现和程序设 从 年起,动态矩阵控制(DMC) 就作为一种有约束的多变量优化控制算法应用在美国壳牌石油公司的生产装置上。 年,卡特勒等在美国化工年会上首次介绍了这一算法。多年来,它已在石油、化工等部门的过程控制中获得了成功的应用。DMC算法是一种基于对象为阶跃响应的预测控制算法,它适用于渐近稳定的线性对象。对于弱非线性对象,可在工作点处首先线性化,对于不稳定的对象,可先用常规 控制使其稳定,然后再使用DMC算法。基于预测控制算法的多样性,我们通过分析研究来比较各中算法的控制性能。 (1)模型预测 在DMC中,首先需要测定对象的单位阶跃响应的采样值 , 。其中, 为采样周期。对于渐近稳定的对象,阶跃响应在某一时刻 后将趋于平稳,以致 与 的误差和量化误差及测量误差有相同的数量级,因而可以认为,已近似等于阶跃响应的稳态值 。这样,对象的动态信息就可以用有限集合 加以描述。这个集合的参数构成了DMC的模型参数,向量 称为模型向量, 则称为建模时域。 虽然阶跃响应是一种非参数模型,但由于线性系统具有比例和叠加性质,故利用这组模型参数 ,已足以预测对象在未来的输出值。在 时刻,假定控制作用保持不变时对未来 个时刻的输出有初始预测值 ,则当k时刻控制有一增量 时,即可算 出在其作用下未来时刻的输出值: , (3.4) 其中,预测输出向量 的下标为 时表示 为还没有加入当前输入变量 时未来输出的预测值,当下标为1时表示加入当前输入变量 后未来输出的预测值。 表示在 时刻对 时刻的预测。显然,在任一时刻 ,只要知道了对象输出的初始预测值 ,就可根据未来的控制增量由预测模型式(3.4)计算未来的对象输出。 (2)滚动优化 DMC是一种以优化确定控制策略的算法。在每一时刻k,要确定从该时刻起的 个控制增量 ,使被控对象在其作用下未来 个时刻的输出预测值 尽可能接近给定的期望值 (如图(3.2)所示)。这里, , 分别称为控制时域与优化时域,它们的意义可从图(3.2)中直接看出。为了使问题有意义,通常规定 。 图3.2 动态控制矩阵的优化策略 在控制过程中,往往不希望控制增量 变化过于剧烈,这一因素可在优化性能指标中加入软约束。因此, 时刻的优化性能指标可取为: (3.5) (3.6) 其中 , 是权系数,它们分别表示对跟踪误差及控制量变化的抑制。 为期望值向量,式(3.5)中 为设定值,控制器的目标就是要使对象输出稳定在 。 表示 时刻对象实际输出值。 在不考虑软约束的情况下,上述问题就是以 为
优化变量,在动态模型式(3.6)下使性能指标式(3.6)最小的优化问题。为了求解这一优化问题,首先可利用预测模型式(3.4)导出性能指标中 与 的关系,这一关系可用向量形式写为 (3.7) 其中 这里, 表示0时刻没有加入输入变量时的输出预测向量,向量维数为 。 的下标 表示假定未来有 个控制变量。 是由阶跃响应系数 组成的 阵,称为动态矩阵。 同样,性能指标式(3.6)也可写成向量形式 (3.8) 其中 由权系数构成的对角阵 、 分别称为误差权矩阵和控制权矩阵。 将式(3.7)代入式(3.8)可得 在 时刻, , 均为已知,使 取极小值,得 。可通过极值必要条件 求得 (3.9) 它还给出了 的最优值。但 并不把它们都当作应实现的解, 而只是取其中的即时控制增量 构成实际控制 作用于对象。到下一时刻,它又提出类似的优化问题求出 。这就是所谓“滚动优化”的策略。 根据式(3.9),可以求出 (3.10) 其中, 维向量 (3.11) 称为控制向量。 维行向量 表示取首元素的运算。一旦优化策略确定(即 、 、 、 已定),则 可由式(3.11)一次离线算出。这样,若不考虑约束,优化问题在线求解就简化为直接控制律(3.10),它只涉及到向量之差及点积运算,因而是十分简易的。 (3)反馈校正 当 时刻把控制量 加于实际对象时,相当于在对象的输入端加上了一个幅值为 的阶跃,由于对象固有一阶时滞,可利用预测模型式(3.4),可算出在其作用下未来时刻的输出预测值 (3.12) 它实际上就是式(3.4)向量形式。由于上一时刻所求的 的元素是未加入 时的输出预测值,故经过移位后得到 ,它可作为 时刻的初始预测值进行新的优化计算。然后,由于存在模型失配、环境干扰等未知因素,由式(3.12)给出的预测值有可能偏离实际值,因此,若不及时利用实时信息进行反馈校正,进一步的优化就会建立在虚假的基础上。通过式(3.12)求出 时刻的预测值,代入式(3.10),得到 时刻应加入的 , 加入对象后,会得到一个实际输出 ,而 时刻预测的加入 后得到的 时刻的实际输出 应该为 ,为此,在 中,到下一采样时刻首先要检测对象的实际输出 ,并把它与由式(3.12)算出的模型预测输出 相比较,构成输出误差 (3.13) 这一误差信息反映了模型中未包括的不确定因素对输出的影响,可用来预测未来的输出误差,以补充基于模型的预测。由于对误差的产生缺乏因果性的描述,故误差预测 只能采用时间序列方法,例如,可采用对 加权的方式修正对未来输出的预测: (3.14) 得到校正后的输出预测向量,由权系数组成的 维向量 称为校正向量。 在 时刻,由于时间基点的变动,预测的未来时间点也将移到 ,因此,由式(3.14)得到 的元素还需通过移位才能成为 时刻的初始预测值 : , (3.15) 这一初始预测值的设置可用向量形式表示为 (3.16) 其中 为移位矩阵。 有了 ,又可像 时刻那样进行 时刻的优化计算,求出 。整个控制就是以这种结合反馈校正的滚动优化方式反复在线进行的。 DMC是由预测、控制、校正三部分构成的。在每一采样时刻,未来 个时刻的期望输出 与初始预测输出 构成的偏差向量同动态控制向量 点乘 (见式(3.10)),得到该时刻的控制增量 。这一控制增量一方面通过数字积分(累加)运算求出控制量 并作用于对象,另一方面模型与向量 相乘并按式(3.12)计算出在其作用后的预测输出 。到下一采样时刻,首先检测对象的实际输出 ,并与预测值 相比较后按式(3.13)构成输出误差 。这一误差与校正向量 相乘作为误差预测,再与 模型预测一起按式(3.14)得到校正后的预测输出 ,并按式(3.16)移位后作为新的初始预测值 。整个过程将反复在线进行。 至此我们可以这样实现DMC算法: 离线准备工作包括以下三个方面: 1. 检测对象阶跃响应,得到模型系数 。在这里,应强调模型的动态响应 必须是光滑的,测量噪声和干扰必须滤除,否则会影响控制的质量,有时甚至会造成控 制系统的不稳定。 2. 利用仿真程序确定优化策略,根据 计算出控制系数 。 3.选择校正系数 。 这三组动态系数确定后,应置入固定的内存单元,以便实时调用。 DMC的在线计算由初始化模块与实时控制模块组成。初始化模块是在投入运行的第一步检测对象的实际输出 ,并把它设定为预测初值 。 从第二步起即转入实时控制模块,在每一采样时刻的在线计算流程如图3.3。注意,在这里,设定值是固定的,并事先存入内存。若需要跟踪时变的轨迹,则还应编制一设定值模块,用以在线计算每一时刻的期望值。 图
3.3 DMC在线计算流程图 (4)程序设计 DMC算法需要设定的参数有: 预测时域 控制时域 误差权矩阵 控制量变化权矩阵 误差修正向量 设定值 速度因子 仿真步数 1. 求阶跃响应: 由于DMC是基于对象阶跃响应的预测控制算法,第一步要做的测定阶跃响应。可以定义式(1.3)初始时刻以前所有输入为0,初始时刻以后所有输入为1,且式中 、 改为 、 ,记录 时刻的输出,得到模型向量 。 2. 赋值动态矩阵 、移位 。定义初始时刻时的输入输出值 、 。 利用求得的模型向量 和设定的预测时域 和控制时域 即可赋值动态矩阵 、移位 。 3. 按式(3.5)计算期望值。式中 的值为 4. 按式(3.7)预测未来 个时刻的输出。 5. 按式(3.10)计算当前时刻的输入变量 ,与上一时刻的输入相加后作为当前时刻的输入。 6. 按式(3. 3)计算对象实际输出。 7. 预测输出修正并移位。 8. 时刻加一,返回第3步。 在仿真程序中,上述循环的步数为 。然后用Matlab显示输入输出图形,可以很直观的看到控制效果。对于稳定对象而言,调整各项参数,DMC都可以得到令人满意的控制效果。相应的程序框图如图(3.4)所示。 3.4 其他算法的实现及程序设计 3.4.1 广义预测控制算法的实现和程序设计 图3.4 DMC程序流程图 DMC和MAC是分别以阶跃响应和脉冲响应描述的非参数模型为基础的预测控制算法。随着自适应控制算法研究的不断发展,Clarke等人于1984年提出了基于参数化模型的广义预测控制算法 (GPC)。它是以受控自回归积分滑动平均模型为基础,采用了长时段的优化性能指标,并结合辨识和自校正机制,表现出良好的鲁棒性。1987年,Kinnaert等将其推广到多输入多输出系统(MIMO)中,提出了输入和输出维数相等的多变量广义预测控制。 (1) ARIMA预测模型 在广义预测控制中 ,采用CARIMA模型作为预测模型。对于随机干扰的被控对象,由CARIMA模型和式Diophantine方程可以得到系统的预测值 (3.17) 若把上式右边前三项看作是模型输出的预测值 ,则 是模型输出预测值和实际值之间的误差,并且与 相关,因此得到 时刻以后的 步提前预测输出值。 (3.18) 上式写成矢量形式有 (3.19) , 其中,多项式 , , 和 中参数的求解,可由Diophantine方程的递推算法得到。 (2) 滚动优化 在GPC中, 时刻的优化性能指标通常取含有系统输出对期望值的误差,以及控制增量加权项的二次型目标函数的最小值 (3.20) 写成矢量形式为 (3.21) 其中 为数学期望, 为对象输出的期望值; 和P分别为初始值与终值。 为控制时域。其中 应大于对象的时滞。由于以多步预测代替了一步预测优化,即使对时滞估计不当或时滞发生变化,仍能从整体优化中得到合理的控制,这是GPC对模型不精确时具有鲁棒性的重要原因。 由预测控制滚动优化的原理可得当前时刻的最优控制,即对式(3.21) , 有 ( (3.22) 则当前时刻施加于被控对象的控制律为 (3.23) (3)在线辨识与校正 GPC是在自校正控制基础上发展起来的,因此保持了自校正控制的原理,即在控制过程中,不断通过实际输入输出的信息在线估计模型的参数,并以此修正控制律。这是一种广义的反馈校正。与DMC、MAC相比,后者相当于用一个不变的预测模型,并附加一个误差预测模型共同保证对未来输出作出比较准确的预测 ,而GPC则只用一个模型,通过对其在线修正来给出较准确的预测。 (4)程序设计 将式(3.2)改写,并考虑对象收到随机干扰 式中 差分因子 , 表示零均值随机的噪声序列,本软件中取 。这样式(3.3)可写成 (3.24) 因为 引入Diophantin方程 (3.25) (3.26) 式中 定义 式(3.24)与式(3.25)式(3.26)联立即可得到式(3.22)。这样,GPC控制器设计的关键在于求出 。在Matlab程序中 分别定义为 由式(3.25)可知 、 分别为 的商和余项。而下标 则可以理解为除法做的步数。如果用 ( 为 向量)表示第 步的被除多项式,那么 即为 的第一个元素, 等于 与 的差。如果第 步出现 首项为零的情况,按上述方法求得 、 ,且 改为 , 改为 与 的差,并且要进行相应的移位。 求得 后,按式(3.26), 与 内积的 次幂项到 次幂项系数即为 的各项元素, 到 次幂项系数即为 。 求出 ,控制器设计就已经完毕。循环控制程序流程与DMC几乎完全一样。只是少了输出预测、误差修正。原因是 已经将它们整合到 中,所以GPC需要设定的参数比DMC少了一个误差修正向量 。 3.4.2 PID设计 PID (Proportional,
Integral and Differential)控制器 是一种基于“过去”,“现在”和“未来”信息估计的简单算法。常规的PID控制系统原理框图如图3.5所示, 图3.5 PID控制系统原理图 系统主要由PID控制器和被控对象组成。作为一种线性控制器,它根据设定值和实际输出值构成控制偏差 ,将偏差按比例、积分和微分通过线性组合构成控制量 对被控对象进行控制。控制器的输入输出关系可描述为: (3.27) 式中 , 为比例系数, 为积分时间常数, 为微分时间常数。 下面我们来简单介绍 -整定法: —整定法是处理大时滞过程对象的一种方法,又称Dahlin法,这种方法与史密斯预估器和内模控制器密切相关。 考虑过程对象传递函数为 假设期望的闭环传递函数为 其中: 为整定参数,当 =1时,开环和闭环系统的时间常数相同:当 <1时,闭环系统的响应速度比开环系统的响应速度快;当 >1时,闭环系统的响应速度比开环系统的响应速度慢。 因为 则有 故可得 (3.28) 控制器得输入和输出关系为: (3.29) 即 (3.30) 其中, 是基于控制信号 在时间间隔 的时刻的预测值。这种控制器形式又称为预测比例积分控制器(PPI),对大滞后过程由(3.30)式给出的对输出超前控制作用比PID控制器中的微分作用好。 PPI控制器的形式又可写为 (3.31) 其中 的取值范围0.5-5。如果期望开环和闭环时间常数相同,则 =10,则有 (3.32) 其中 , 3.5 程序调试及仿真图形 3.5.1 仿真图形 DMC、GPC和PID三种算法的控制仿真图形如下图所示: 图3.6 DMC仿真曲线 图3.7 GPC仿真曲线 图3.8 PID仿真曲线 3.5.2 参数调整对DMC系统稳定性和鲁棒性的影响 动态矩阵控制(DMC)系统的稳定性 一般分为两种情况研究:一是在模型准确时的稳定性,二是在模型失配时的稳定性分析即所谓鲁棒性 。从算法的形成来看,在设计中真正要确定的原始参数应该是:采样周期 ;优化性能指标中的优化时域 、控制时域 、误差权矩阵 及控制权矩阵 ;校正参数 。在一般情况下,设计者不可能通过解析方法唯一确定上述参数以满足要求。因为这些参数是通过 、 、 间接影响控制系统的性能的,它们与控制的快速性、稳定性、鲁棒性、抗干扰性等并没有直接的解析关系可作为设计的定量依据 。通过对参数的简单调整我们得出了DMC的初步结论,至于其他的算法我们在此不作过多的说明 。 1. 采样周期 与模型长度 采样周期 的选择应满足香农定理,且与模型长度 有密切的关系要求在 后的阶跃响应近似接近稳态值, 减少将会导致 的增大,如果过小,不但加大了计算频率, 而且在很短的采样间隔内,计算量因 的增大而增大,因而影响控制的实时性。所以从 实时性的需要出发,我们选 在 。 2. 优化时域 和误差权矩阵 优化时域 和误差权矩阵 对应着优化性能指标(3.6)中的下述项: 它们的物理意义是显而易见的, 表示我们对 时刻起未来多少步的输出逼近期望值感兴趣,而 作为权系数,则反映了对不同时刻逼近的重视程度。 的大小对于控制的稳定性和快速性有较大的影响。当 足够小,例如只取1,这时优化问题退化为选择 使 的控制问题。如果预测模型足够准确,则它可使对象输出在各采样点紧密跟随期望值。当保持 而把 取得充分大,这时,优化性能指标中稍后时刻的输出预测值几乎只取决于这个 控制增量的稳态响应。前者快速性好但稳定性和鲁棒性极差, 后者稳定性好但动态响应缓慢,在这之间的稳定性的好坏随着 单调变化的。随 的增大系统的稳定性(鲁棒性)也变强。 3. 控制时域 控制时域在优化性能指标(3.6)中表示了所要确定的未来控制量改变的数目。在 已确定的情况下, 越小,越难保证输出在采样点紧密跟随期望值,所得到的性能指标也越差。例如 意味着只用一个控制增量 就要使系统在接下来的 时刻跟随期望值。 增大控制性能提高,使各点输出误差的最小化得到更大程度的满足。 越小,容易导致稳定的控制,并有叫好的鲁棒性;而 越大,稳定性和鲁棒性都会变差。 4. 制权矩阵 由性能指标(3.6)中可知, 与 的取值的相对的,一旦 取为 或 , 便成为一个可调参数。权矩阵 的作用是对 的剧烈变化加以适度的限制,它是作为一个软约束加入到性能指标中的。对于一阶对象,充分大和充分小的 均可导致无振荡的控制,但对于二阶对象,虽然在 充分大和充分小时都能得到稳定的控制,但 的某一区间却会使控制系统振荡发散。 对稳定性的影响不是单调的,不能简单地通过加大 来改善
系统的稳定性。当 充分大是,闭环系统虽然稳定,但响应相当缓慢。所以对控制系统的稳定性调整,调节参数 是不明智的,我们应该通过调节 和 得到满足,而引入 的主要作用,则在于防止控制量过于剧烈的变化,所以我们用到的是一个很小的 值。 5. 校正参数 误差校正向量 中个元素 的选择独立于其他参数的,是DMC中直接可调的换算参数。经过调节可知,它对控制的动态响应没有明显的影响,对系统的抗干扰和鲁棒性都有一定的影响,系统的鲁棒性会随着 的减小而增强。区别于其他设计参数, 的优优点在于它的直接可选性,因而可在算法中在线设置和改变。 基于以上的分析,我们可以得出下列DMC控制的参数整定步骤: (1)根据对象的类型和动态特性确定采样周期 ,获得相应的饿阶跃响应系数 。 (2)取优化时域 覆盖阶跃响应的主要动态部分,即在优化时域中阶跃响应的主要动态已有完全的表现,而不是要不 取到阶跃响应的动态变化全部结束。 (3)初选 。 (4)计算控制系数 ,仿真检验控制系统的动态响应,若不稳定或动态过于缓慢,可调节 直到满意为止。 (5)若对应于上述满意控制的控制量变化幅度偏大,可略为加大 值。 (6)在上述基础上,选择校正参数 第4章 算法比较及设计体会
4.1 算法的比较 由以上对两种预测控制算法的介绍和设计可以看出,两者都是针对单变量系统的,并且是在不考虑输入输出有约束时的基本算法。它们虽然在模型形式、优化性能指标及校正方法上各有特色,但却有共同的方法机理,即包含预测模型、滚动优化、反馈校正三项要素,这正是预测控制算法最本质的特征。另外,典型的PID控制在控制性能上也存在明显的不足之处,具体我们作如下介绍。 (1)GPC和DMC的比较 在GPC中 考察式 假定, 为当前时刻,初始时刻以前所有输入输出为0,初始时刻以后所有输入为1,也就是输入阶跃信号。注意到 , , , 那么在阶跃输入下,输出为 所以, 即为阶跃响应序列,将GPC中的矩阵 与DMC中的动态矩阵 比较 我们发现这两个矩阵完全一样。 DMC中,输入为 GPC中,输入为 并注意到 和 拥有相同的数学表达式,所以DMC与GPC的区别仅在于 与 的区别。 设对象传递函数 在GPC中,在 时刻以后输入量不变的情况下,即 时刻的初始预测输出为 由式 决定。 注意到 , ,可以证明 所以 就是GPC的初始预测值,它与DMC中的初始预测值有什么不同,为什么它能控制不稳定的对象呢? 注意到 ,并且 则 可以改写成 将上式定义为 , 表示在 时刻的输出值与预测值的差。 在DMC中,初始预测值为 式中 表示在 时刻的输出值与预测值的差。 显然,DMC的预测误差修正只考虑了当前时刻的误差,而GPC对每一个预测输出值都做作了滚动修正,这就是GPC能控制不稳定对象的原因。换句话说,GPC具有控制优越性的原因可总结为 :1,采用了CARIMA来描述被控对象。由于该模型比较接近实际的对象模型,且具有积分作用,因此它不仅能为自校正鲁棒控制器的设计莫定良好的基础,而且能有效地消除系统的静态偏差。此外,GPC的最小化参数模型,不仅参数数目较少,适合于在线实现,而且对模型阶次不甚敏感。2,采用有限时域的长时段多步预测,使GPC更适合用于带负载扰动、随机噪声和未知时滞或时变时滞的被控对象。(3)对于预测控制中为进行输出预测而引入的Diophantin方程,采用递推解法,由此更适用于计算机控制并节省大量的预测时间。 (2)传统的PID控制与预测控制的比较 PID控制的优点是: 1. 原理简单,使用方便。 2. 适应性强,可以广泛应用于化工,热工,冶金,炼油以及造纸建材等各种生产部门。按PID控制进行工作的自动调节器早已商品化。在具体实现上它们经历了机械式,液动式,气动式,电子式等发展阶段,但是始终没有脱离PID控制的范畴。即使目前最新式的过程控制计算机,其基本的控制功能也仍然是PID控制。 3,鲁棒性强,即其控制品质对被控对象特性的变化不大敏感。对于不同特性的被控对象,其控制效果基本上一样。尤其使用三阶离散对象。 而相比GPC和DMC来说,PID控制也存在许多不足: 首先,PID对系统基本线性和动态特性不随时间变化的系统有较好的控制,而实际上很多工业过程是时变和非线性的。 其次,PID
参数必须在控制事先就整定的很好。如果过程对象的动态特性变化,PID参数就要重新整定,这再实际应用中是一个很麻烦的环节。 最后,PID在控制非线性、时变、耦合及结构不确定的复杂过程时得不到比较满意的效果。针对这一点,工业上现在提出了改进的自适应PID控制、自校正PID控制、模糊PID控制、非线性PID控制等高级控制策略来克服这些缺点。 4.2 设计体会 (1) 本次设计主要内容是使用最小二乘法辨识实际对象的传递函数,然后设计三种不同的控制器(DMC,GPC,PID)进行控制仿真,输入在界面上设定,并显示输入输出图形。 设计初期是熟悉软件的阶段,我用的是Matlab编写程序。初期总是被程序出错困扰。有时能顺利执行的程序改动输入参数后出错,将参数改回后依然不能执行;有时一个不能执行的程序在改变文件名后又可以执行了等等诸多看起来“不可理喻”的问题。在参阅Matlab书籍,请教高手,以及反复摸索明白该软件的工作空间、工作空间变量等等概念后,再也没有出现这种低级的“不可理喻”的问题了,也越来越体会到Matlab作为数学分析软件的强大,虽然我用到的只是它的冰山一角。 在度过了痛苦的熟悉软件的初期阶段后,就进入学习控制算法的阶段。程序虽然依然错误不断,但已经知道如何做相应的修改。这个阶段出错几乎都是向量、矩阵的维数出现错误,当然这也是很麻烦的问题,因为牵一发而动全身。有时甚至希望它出错,因为一个不出错但结果不正确的程序是最让人头疼的。开始总是以为囫囵吞枣的看看书上介绍的公式及步骤,然后用Matlab计算每个式子,出了错误就把它凑成没有错误,执行的时候双手合十就可以做出来了。 事实证明,在没有理解一个算法原理之前,是不可能正确的把它的仿真程序做出来的! DMC方面,最重要的是理解线性系统的比例和叠加性质,只有理解了这一点,才能明白预测的原理;同时,时滞也是一个重要性和麻烦程度相当的概念。DMC最难理解的是时序,时间基点变动,很多向量都要移位、改变,理解了时序才能明白移位矩阵存在的意义。 GPC方面,在有了时序、时滞的概念后,GPC剩下的就是理解丢番图方程了。这两个方程与我们通常理解的方程不同,它的四个向量 、 、 、 都是通过对象传递函数凑出来的,其中 、 的阶次是变化的,并且是二维的;而 、 的阶次是固定的,而且是三维的。GPC原理介绍中有很多形如 的表达式, 是 维的矩阵,它的第 行记录的 的 次幂到 次幂的系数,所以这里 应理解为向量 ,这样才能在Matlab中计算这个表达式。 理解了算法以后,就是编写程序实现它们的阶段了。在Matlab程序中,多项式是用一维向量表示的,该向量的每一个元素是所对应的多项式的某一阶次的系数。本程序中,表示多项式的的向量的第一个元素是与 次幂的系数对应,第二个元素是与 次幂的系数对应,以此类推。这种对应原则在做程序之前就必须确定。在程序中,对这类向量赋值时必须要将对应阶次系数赋到相应的元素位上。例如在GPC程序设计中, 中的值赋到 时赋值位在特殊情况下是变化的。这点很重要。另外,在对如 的向量赋值时,应该把当前时刻的参量保存在 的第一元素位上,前一时刻的参量保存在第二元素位上,当然在保存之前应该将所有元素向后移。因为如果将第一时刻的参量保存存在第一位上,第 时刻的参量保存在第 位上,那么在时刻 时, 将不存在而出错。 (2) 设计的不足 1. 控制算法没有做外部接口,不能控制实际对象。 2. DMC,GPC设计没有随机干扰。 3. 没有理解GPC能控制不稳定的对象的原理。
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库预测控制(2)在线全文阅读。
相关推荐: