用于提高计算效率的模型预测控制系统和方法与流程

文档序号:13045378阅读:202来源:国知局
相关申请的交叉引用本申请要求2015年2月12日提交的美国临时申请号62/115,208的权益。上述申请的公开内容整体上通过引用并入本文中。本申请与美国专利申请号14/675,860相关,其在2015年4月1日提交,且要求2015年2月12日提交的美国临时申请号62/115,293的权益。上述申请的公开内容整体上通过引用并入本文中。技术领域本公开涉及内燃发动机,且更确切地涉及用于车辆的发动机控制系统和方法。

背景技术:
此处提供的背景描述是出于大体呈现本公开的背景的目的。目前指定的发明人的工作(在于此背景部分中所描述的范围内)以及在申请时可能不被确定为现有技术的描述的方面既不明确地也不隐含地被认为是对抗本公开的现有技术。内燃发动机在气缸内燃烧空气与燃料混合物以驱动活塞,从而产生驱动转矩。经由节流阀来调节进入发动机中的气流。更确切地,节流阀调节节流面积,从而增加或减少进入发动机中的气流。当节流面积增大时,进入发动机中的气流增加。燃料控制系统调节喷射燃料的速率,以将所需的空气/燃料混合物提供到气缸和/或达到所需的转矩输出。增加提供到气缸的空气与燃料的量使发动机的转矩输出增大。在火花点火发动机中,火花开始提供到气缸的空气/燃料混合物的燃烧。在压缩点火发动机中,气缸中的压缩燃烧提供到气缸的空气/燃料混合物。火花定时和气流可以是用于调节火花点火发动机的转矩输出的主要机构,而燃料流可以是用于调节压缩点火发动机的转矩输出的主要机构。已开发了发动机控制系统来控制发动机输出转矩以达到所需的转矩。然而,传统的发动机控制系统并不如所需要的那么准确地来控制发动机输出转矩。另外,传统的发动机控制系统并未提供快速响应来控制信号或在影响发动机输出转矩的各种装置当中协调发动机转矩控制。

技术实现要素:
在一个特征中,公开了用于车辆的发动机控制系统。转矩请求模块基于驾驶员输入产生火花点火发动机的第一转矩请求。转矩转换模块将所述第一转矩请求转换成第二转矩请求。模型预测控制(MPC)模块基于所述第二转矩请求、所述发动机的模型、表格矩阵和基解矩阵来确定一组当前目标值。所述MPC模块:将所述基解矩阵初始化至对偶可行的预定矩阵;选择性地迭代更新所述基解矩阵以及所述表格矩阵的列;基于由选择性地迭代更新产生的所述基解矩阵的输入来分别确定所述目标值的变化;以及通过分别将所述变化与上一组目标值相加来确定所述一组当前目标值。致动器模块基于所述一组当前目标值中的第一者来控制发动机致动器。在另外的特征中,响应于所述基解矩阵的所有原始变量均为正的确定,所述MPC模块分别基于所述基解矩阵的输入来确定所述目标值的变化。在另外的特征中,当所述基解矩阵的原始变量不为正时,所述MPC模块基于对应于所述原始变量的对偶变量的输入位置来识别所述表格矩阵的第一列,且基于所述表格矩阵的所述第一列来更新所述基解矩阵。在另外的特征中,当所述原始变量是多个非正原始变量中的绝对值最大的负数时,所述MPC模块从所述多个非正原始变量选择所述原始变量。在另外的特征中,所述MPC模块基于以下两者之间的比值来识别所述基解矩阵的第二列:所述基解矩阵的对偶变量和所述基解矩阵的所述原始变量中的一者;以及所述表格矩阵的相对应的输入。在另外的特征中,对于所述基解矩阵的每个对偶变量和所述原始变量,确定所述基解矩阵的所述输入与所述表格矩阵的所述相对应的输入之间的比值;识别所述比值中的正的且最小的一个;以及基于所述表格矩阵的所述相对应的输入的所述输入位置来识别所述基解矩阵的第二列。在另外的特征中,当所述比值中没有一个为正时,所述MPC模块指示已发生故障。在另外的特征中,当响应于所述基解矩阵初始化至所述预定矩阵所述基解矩阵不是对偶可行的时,所述MPC模块指示已发生故障。在另外的特征中,所述致动器模块基于所述一组当前目标值中的所述一者来控制节流阀的开度。在另外的特征中:升压致动器模块基于所述一组当前目标值中的第二者来控制涡轮增压器的废气门的开度;排气再循环(EGR)致动器模块基于所述一组当前目标值中的第三者来控制EGR阀的开度;以及移相器致动器模块分别基于所述一组当前目标值中的第四者和第五者来控制进气阀定相和排气阀定相。在一个特征方面中,公开了用于车辆的发动机控制方法。所述发动机控制方法包括:基于驾驶员输入产生火花点火发动机的第一转矩请求;将所述第一转矩请求转换成第二转矩请求;使用模型预测控制(MPC)基于所述第二转矩请求、所述发动机的模型、表格矩阵和基解矩阵来确定一组当前目标值,所述确定包括:将所述基解矩阵初始化至对偶可行的预定矩阵;选择性地迭代更新所述基解矩阵以及所述表格矩阵的列;基于由选择性迭代更新产生的所述基解矩阵的输入来分别确定所述目标值的变化;以及通过分别将所述变化与上一组目标值相加来确定所述一组当前目标值。所述方法还包括基于所述一组当前目标值中的第一者来控制发动机致动器。在另外的特征中,所述发动机控制方法进一步包括:响应于所述基解矩阵的所有原始变量为正的确定,分别基于所述基解矩阵的输入来确定所述目标值的变化。在另外的特征中,所述发动机控制方法进一步包括:当所述基解矩阵的原始变量不为正时:基于对应于所述原始变量的对偶变量的输入位置来识别所述表格矩阵的第一列;以及基于所述表格矩阵的所述第一列来更新所述基解矩阵。在另外的特征中,所述发动机控制方法进一步包括:当所述原始变量是多个非正原始变量中的绝对值最大的负数时,从所述多个非正原始变量选择所述原始变量。在另外的特征中,所述发动机控制方法进一步包括:基于以下两者之间的比值来识别所述基解矩阵的第二列:所述基解矩阵的对偶变量和所述基解矩阵的所述原始变量中的一者;以及所述表格矩阵的相对应的输入。在另外的特征中,所述发动机控制方法进一步包括,对于所述基解矩阵的每个对偶变量和所述原始变量:确定所述基解矩阵的所述输入与所述表格矩阵的所述相对应的输入之间的比值;识别所述比值中的正的且最小的一个;以及基于所述表格矩阵的所述相对应的输入的所述输入位置来识别所述基解矩阵的第二列。在另外的特征中,所述发动机控制方法进一步包括:当所述比值中没有一个为正时,指示已发生故障。在另外的特征中,所述发动机控制方法进一步包括:当响应于所述基解矩阵初始化至所述预定矩阵所述基解矩阵不是对偶可行的时,指示已发生故障。在另外的特征中,所述控制包括:基于所述一组当前目标值中的所述一者来控制节流阀的开度。在另外的特征中,所述发动机控制方法进一步包括:基于所述一组当前目标值中的第二者来控制涡轮增压器的废气门的开度;基于所述一组当前目标值中的第三者来控制排气再循环(EGR)致动器阀的开度;以及分别基于所述一组当前目标值中的第四者和第五者来控制进气阀定相和排气阀定相。根据本发明,其还存在以下技术方案:1.一种用于车辆的发动机控制系统,其包括:转矩请求模块,其基于驾驶员输入产生火花点火发动机的第一转矩请求;转矩转换模块,其将所述第一转矩请求转换成第二转矩请求;模型预测控制(MPC)模块,其基于所述第二转矩请求、所述发动机的模型、表格矩阵和基解矩阵来确定一组当前目标值,其中,所述MPC模块:将所述基解矩阵初始化至对偶可行的预定矩阵;选择性地迭代更新所述基解矩阵以及所述表格矩阵的列;基于由选择性地迭代更新产生的所述基解矩阵的输入来分别确定所述目标值的变化;以及通过分别将所述变化与上一组目标值相加来确定所述一组当前目标值;以及致动器模块,其基于所述一组当前目标值中的第一者来控制发动机致动器。2.根据技术方案1所述的发动机控制系统,其中,响应于所述基解矩阵的所有原始变量均为正的确定,所述MPC模块分别基于所述基解矩阵的输入来确定所述目标值的变化。3.根据技术方案1所述的发动机控制系统,其中,当所述基解矩阵的原始变量不为正时,所述MPC模块基于对应于所述原始变量的对偶变量的输入位置来识别所述表格矩阵的第一列,且基于所述表格矩阵的所述第一列来更新所述基解矩阵。4.根据技术方案3所述的发动机控制系统,其中,当所述原始变量是多个非正原始变量中的绝对值最大的负数时,所述MPC模块从所述多个非正原始变量选择所述原始变量。5.根据技术方案3所述的发动机控制系统,其中,所述MPC模块基于以下两者之间的比值来更新所述基解矩阵:所述基解矩阵的对偶变量和所述基解矩阵的所述原始变量中的一者;与所述表格矩阵的相对应的输入。6.根据技术方案3所述的发动机控制系统,其中,对于所述基解矩阵的每个对偶变量和所述原始变量,确定所述基解矩阵的所述输入与所述表格矩阵的所述相对应的输入之间的比值;识别所述比值中的正的且最小的一个;以及基于所述表格矩阵的所述相对应的输入的所述输入位置来更新所述基解矩阵。7.根据技术方案6所述的发动机控制系统,其中,当所述比值中没有一个为正时,所述MPC模块指示已发生故障。8.根据技术方案1所述的发动机控制系统,其中,当响应于所述基解矩阵初始化至所述预定矩阵所述基解矩阵不是对偶可行的时,所述MPC模块指示已发生故障。9.根据技术方案1所述的发动机控制系统,其中,所述致动器模块基于所述一组当前目标值中的所述一者来控制节流阀的开度。10.根据技术方案9所述的发动机控制系统,其进一步包括:升压致动器模块,其基于所述一组当前目标值中的第二者来控制涡轮增压器的废气门的开度;排气再循环(EGR)致动器模块,其基于所述一组当前目标值中的第三者来控制EGR阀的开度;以及移相器致动器模块,其分别基于所述一组当前目标值中的第四者和第五者来控制进气阀定相和排气阀定相。11.一种用于车辆的发动机控制方法,其包括:基于驾驶员输入产生火花点火发动机的第一转矩请求;将所述第一转矩请求转换成第二转矩请求;使用模型预测控制(MPC)基于所述第二转矩请求、所述发动机的模型、表格矩阵和基解矩阵来确定一组当前目标值,所述确定包括:将所述基解矩阵初始化至对偶可行的预定矩阵;选择性地迭代更新所述基解矩阵以及所述表格矩阵的列;基于由选择性迭代更新产生的所述基解矩阵的输入来分别确定所述目标值的变化;以及通过分别将所述变化与上一组目标值相加来确定所述一组当前目标值;以及基于所述一组当前目标值中的第一者来控制发动机致动器。12.根据技术方案11所述的发动机控制方法,其进一步包括:响应于所述基解矩阵的所有原始变量为正的确定,分别基于所述基解矩阵的输入来确定所述目标值的变化。13.根据技术方案11所述的发动机控制方法,其进一步包括,当所述基解矩阵的原始变量不为正时:基于对应于所述原始变量的对偶变量的输入位置来识别所述表格矩阵的第一列;以及基于所述表格矩阵的所述第一列来更新所述基解矩阵。14.根据技术方案13所述的发动机控制方法,其进一步包括:当所述原始变量是多个非正原始变量中的绝对值最大的负数时,从所述多个非正原始变量选择所述原始变量。15.根据技术方案13所述的发动机控制方法,其进一步包括:基于以下两者之间的比值来更新所述基解矩阵:所述基解矩阵的对偶变量和所述基解矩阵的所述原始变量中的一者;以及所述表格矩阵的相对应的输入。16.根据技术方案13所述的发动机控制方法,其进一步包括:对于所述基解矩阵的每个对偶变量和所述原始变量:确定所述基解矩阵的所述输入与所述表格矩阵的所述相对应的输入之间的比值;识别所述比值中的正的且最小的一个;以及基于所述表格矩阵的所述相对应的输入的所述输入位置来更新所述基解矩阵。17.根据技术方案16所述的发动机控制方法,其进一步包括:当所述比值中没有一个为正时,指示已发生故障。18.根据技术方案11所述的发动机控制方法,其进一步包括:当响应于所述基解矩阵初始化至所述预定矩阵所述基解矩阵不是对偶可行的时,指示已发生故障。19.根据技术方案11所述的发动机控制方法,其中,所述控制包括:基于所述一组当前目标值中的所述一者来控制节流阀的开度。20.根据技术方案19所述的发动机控制方法,其进一步包括:基于所述一组当前目标值中的第二者来控制涡轮增压器的废气门的开度;基于所述一组当前目标值中的第三者来控制排气再循环(EGR)致动器阀的开度;以及分别基于所述一组当前目标值中的第四者和第五者来控制进气阀定相和排气阀定相。本公开的另外的适用领域将从以下描述、权利要求书和附图变得显而易见。详细描述和特定示例旨在仅用于说明的目的而并非旨在限制本公开的范围。附图说明本公开将从详细描述和附图变得更充分理解的,其中:图1是示例发动机系统的功能性框图;图2是示例发动机控制系统的功能性框图;图3是示例空气控制模块的功能性框图;以及图4是描绘求解优化问题和确定目标值的示例方法的流程图;以及图5是描绘使用模型预测控制来控制节流阀、进气和排气阀定相、废气门和排气再循环(EGR)阀的示例方法的流程图。在附图中,可重复使用附图标记来指示相似和/或相同的元件。具体实施方式发动机控制模块(ECM)控制发动机的转矩输出。更确切地,ECM分别基于目标值来控制发动机的致动器,该目标值是基于所请求的转矩量确定的。例如,ECM:基于目标进气和排气移相器角度来控制进气和排气凸轮轴定相;基于目标节流阀开度来控制节流阀;基于目标排气再循环(EGR)开度来控制EGR阀;以及基于目标废气门占空比来控制涡轮增压器的废气门。ECM能够使用多个单输入单输出(SISO)控制器来分别确定目标值,例如,比例积分微分(PID)控制器。然而,当使用多个SISO控制器时,可设定目标值以维持系统稳定性,但这是以可能的燃料消耗减少为代价。额外地,对单独的SISO控制器的校准和设计会是昂贵且耗时的。本公开的ECM使用模型预测控制(MPC)来产生目标值。更确切地,ECM通过迭代地求解每个控制回路的约束二次优化问题来确定最优目标值。本公开的ECM以高效计算方式来求解优化问题。现参考图1,呈现了示例发动机系统100的功能性框图。发动机系统100包括发动机102,该发动机102基于来自驾驶员输入模块104的驾驶员输入使空气/燃料混合物燃烧以产生用于车辆的驱动转矩。发动机102可以是汽油火花点火内燃发动机。空气经由节流阀112被吸入进气歧管110。仅举例说明,节流阀112可包括具有可旋转叶片的蝶形阀。发动机控制模块(ECM)114控制节流阀致动器模块116,该节流阀致动器模块116调节节流阀112的开度以控制被吸入进气歧管110中的空气量。来自进气歧管110的空气被吸入发动机102的气缸中。虽然发动机102可包括多个气缸,但是出于说明的目的示出了单个代表性气缸118。仅举例说明,发动机102可包括2、3、4、5、6、8、10和/或12个气缸。ECM114可命令气缸致动器模块120选择性地停用气缸中的一些,从而可在一些发动机操作条件下改善燃料经济性。发动机102可使用四冲程循环来操作。可将下文所描述的四个冲程称为进气冲程、压缩冲程、燃烧冲程和排气冲程。在曲轴的每次回转(未示出)期间,在气缸118内发生四个冲程中的两个。因此,为使气缸118经历所有四个冲程,需要两次曲轴回转。在进气冲程期间,来自进气歧管110的空气经由进气阀122被吸入气缸118中。ECM114控制燃料致动器模块124,该燃料致动器模块124调节燃料喷射以达到目标空气/燃料比。可在中心位置处或在多个位置处(例如,在每个气缸的进气阀122附近)将燃料喷射至进气歧管110中。在各种执行(未示出)中,可将燃料直接喷射至气缸中或喷射至与气缸相关联的混合室中。燃料致动器模块124可停止将燃料喷射到被停用的气缸。所喷射的燃料与空气混合并且在气缸118中产生空气/燃料混合物。在压缩冲程期间,气缸118内的活塞(未示出)压缩空气/燃料混合物。火花致动器模块126基于来自ECM114的信号使气缸118中的火花塞128通电,其点燃空气/燃料混合物。可相对于当活塞处于其最上位置时的时间(称为上止点(TDC))来指定火花的定时。火花致动器模块126可通过指定在TDC之前或之后多远的定时信号来控制以产生火花。由于活塞位置直接与曲轴旋转有关,所以火花致动器模块126的操作可与曲轴角同步。可将产生火花称为点火事件。火花致动器模块126可具有针对每一点火事件改变火花定时的能力。当上个点火事件与下个点火事件之间的火花定时改变时,火花致动器模块126可针对下个点火事件改变火花定时。火花致动器模块126可停止将火花提供到被停用的气缸。在燃烧冲程期间,空气/燃料混合物的燃烧驱动活塞远离TDC,由此驱动曲轴。可将燃烧冲程限定为在活塞到达TDC的时间与活塞到达下止点(BDC)的时间之间的时间。在排气冲程期间,活塞开始移离BDC并且经由排气阀130排出燃烧副产物。燃烧副产物经由排气系统134从车辆排出。进气阀122可通过进气凸轮轴140来控制,而排气阀130可通过排气凸轮轴142来控制。在各种执行中,多个进气凸轮轴(包括进气凸轮轴140)可控制气缸118的多个进气阀(包括进气阀122)和/或可控制多列气缸(包括气缸118)的进气阀(包括进气阀122)。类似地,多个排气凸轮轴(包括排气凸轮轴142)可控制气缸118的多个排气阀和/或可控制多列气缸(包括气缸118)的排气阀(包括排气阀130)。在各种其它执行中,进气阀122和/或排气阀130可通过除凸轮轴之外的其它装置来控制,例如,无凸轮阀致动器。气缸致动器模块120可通过禁用进气阀122和/或排气阀130的开度来停用气缸118。当进气阀122被打开时的时间可相对于活塞TDC通过进气凸轮移相器148来改变。当排气阀130被打开时的时间可相对于活塞TDC通过排气凸轮移相器150来改变。移相器致动器模块158可基于来自ECM114的信号来控制进气凸轮移相器148和排气凸轮移相器150。当执行时,可变的阀升程(未示出)也可通过移相器致动器模块158来控制。发动机系统100可包括涡轮增压器,该涡轮增压器包括热涡轮机160-1,该热涡轮机160-1由流经排气系统134的热排气供以动力。涡轮增压器还包括由涡轮机160-1驱动的冷空气压缩机160-2。压缩机160-2压缩引入节流阀112的空气。在各种执行中,由曲轴驱动的增压器(未示出)可压缩来自节流阀112的空气并且将压缩空气递送到进气歧管110。废气门162可允许排气绕过涡轮机160-1,由此减少由涡轮增压器提供的升压(进气压缩量)。升压致动器模块164可通过控制废气门162的开度来控制涡轮增压器的升压。在各种执行中,可执行两个或两个以上涡轮增压器,且可通过升压致动器模块164来进行控制。空气冷却器(未示出)可将来自压缩空气负载的热量转移到冷却介质,例如,发动机冷却剂或空气。可将使用发动机冷却剂来冷却压缩空气负载的空气冷却器称为中间冷却器。可将使用空气来冷却压缩空气负载的空气冷却器称为增压空气冷却器。压缩空气负载可(例如)经由压缩和/或从排气系统134的部件接收热量。虽然出于说明的目的被示为分开的,但涡轮机160-1和压缩机160-2可附接至彼此,从而使进气非常接近热排气。发动机系统100可包括排气再循环(EGR)阀170,该EGR阀170选择性地使排气改向返回到进气歧管110。EGR阀170可位于涡轮增压器的涡轮机160-1上游。EGR阀170可通过EGR致动器模块172基于来自ECM114的信号进行控制。可使用曲轴位置传感器180来测量曲轴的位置。可基于曲轴位置来确定曲轴的旋转速度(发动机速度)。可使用发动机冷却剂温度(ECT)传感器182来测量发动机冷却剂的温度。ECT传感器182可位于发动机102内,或位于冷却剂进行循环所在的其它位置(例如,散热器(未示出))处。可使用歧管绝对压力(MAP)传感器184来测量进气歧管110内的压力。在各种执行中,可测量发动机真空度,所述发动机真空度是环境空气压力和进气歧管110内的压力之间的差值。可使用空气质量气流(MAF)传感器186来测量流入进气歧管110中的空气的质量流率。在各种执行中,MAF传感器186可位于壳体中,该壳体也包括节流阀112。节流阀致动器模块116可使用一个或更多个节流阀位置传感器(TPS)190来监控节流阀112的位置。可使用进气温度(IAT)传感器192来测量被吸入发动机102中的空气的环境温度。发动机系统100也可包括一个或更多个其它传感器193,例如环境湿度传感器、一个或更多个爆振传感器、压缩机出口压力传感器和/或节流阀入口压力传感器、废气门位置传感器、EGR位置传感器和/或一个或更多个其它合适的传感器。ECM114可使用来自所述传感器的信号以做出针对发动机系统100的控制决策。ECM114可与变速器控制模块194通信以协调变速器(未示出)中的档位齿轮。例如,ECM114可在换档期间减小发动机转矩。ECM114可与混合动力控制模块196通信以协调发动机102和电动马达198的运行。电动马达198也可充当发电机,且可用于产生电能以供由车辆电气系统使用和/或供存储于电池中。在各种执行中,ECM114、变速器控制模块194和混合动力控制模块196的各种功能可集成到一个或更多个模块中。可将改变发动机参数的每个系统称为发动机致动器。例如,节流阀致动器模块116可调节节流阀112的开度以达到目标节流阀开度范围。火花致动器模块126控制火花塞以达到相对于活塞TDC的目标火花定时。燃料致动器模块124控制燃料喷射器以达到目标燃料参数。移相器致动器模块158可控制进气凸轮移相器148和排气凸轮移相器150以分别达到目标进气和排气凸轮移相器角度。EGR致动器模块172可控制EGR阀170以达到目标EGR开度范围。升压致动器模块164控制废气门162以达到目标废气门开度范围。气缸致动器模块120控制汽缸停用以达到启用或停用的汽缸的目标数量。ECM114产生发动机致动器的目标值,以引起发动机102产生目标发动机输出转矩。ECM114使用模型预测控制来产生发动机致动器的目标值,如下文进一步论述的。现参考图2,呈现了示例发动机控制系统的功能性框图。ECM114的示例执行包括驾驶员转矩模块202、轴转矩仲裁模块204和推进转矩仲裁模块206。ECM114可包括混合动力优化模块208。ECM114还可包括储备/加载模块220、转矩请求模块224、空气控制模块228、火花控制模块232、气缸控制模块236和燃料控制模块240。驾驶员转矩模块202可基于来自驾驶员输入模块104的驾驶员输入255来确定驾驶员转矩请求254。驾驶员输入255可以是基于(例如)加速器踏板的位置和制动踏板的位置。驾驶员输入255还可以是基于巡航控制,其可以是改变车速以维持预定行车间距的自适应性巡航控制系统。驾驶员转矩模块202可存储加速器踏板位置到目标转矩的一个或更多个映射,且可基于这些映射中所选择的一个来确定驾驶员转矩请求254。轴转矩仲裁模块204在驾驶员转矩请求254和其它轴转矩请求256之间进行仲裁。轴转矩(车轮处的转矩)可由包括发动机和/或电动马达的各个源所产生。例如,轴转矩请求256可包括当检测到正车轮滑动时由牵引控制系统所请求的转矩减小。当轴转矩克服车轮与道路表面之间的摩擦且车轮开始在道路表面上滑动时,发生正车轮滑动。轴转矩请求256还可包括转矩增加请求以抵消负车轮滑动,其中由于轴转矩为负所以车辆轮胎相对于道路表面在另外方向上滑动。轴转矩请求256还可包括制动管理请求和车辆超速转矩请求。制动管理请求可减小轴转矩,以确保当车辆停止时轴转矩不超过制动器固持住车辆的能力。车辆超速转矩请求可减小轴转矩以防止车辆超过预定速度。轴转矩请求256还可由车辆稳定性控制系统产生。轴转矩仲裁模块204基于接收到的转矩请求254和256之间的仲裁结果来输出预测转矩请求257和即时转矩请求258。如下文所描述的,来自轴转矩仲裁模块204的预测转矩请求257和即时转矩请求258可在用于控制发动机致动器之前通过ECM114的其它模块进行选择性地调节。通常,即时转矩请求258可以是当前所需的轴转矩的量,而预测转矩请求257可以是在短时间内可需要的轴转矩的量。ECM114控制发动机系统100以产生等于即时转矩请求258的轴转矩。然而,目标值的不同组合可产生相同的轴转矩。ECM114可由此调整目标值,以使得能够更快速地转变到预测转矩请求257,同时仍将轴转矩维持在即时转矩请求258处。在各种执行中,可基于驾驶员转矩请求254来设定预测转矩请求257。在一些情形下,例如,当驾驶员转矩请求254正使得车轮在结冰表面上滑动时,则即时转矩请求258可设定成小于预测转矩请求257。在此类情况下,牵引控制系统(未示出)可经由即时转矩请求258来请求减小,且ECM114将发动机转矩输出减小到即时转矩请求258。然而,ECM114实施此减小,使得在车轮滑动停止时,则发动机系统100能够快速地恢复产生预测转矩请求257。通常,能够将即时转矩请求258和(通常更高的)预测转矩请求257之间的差值称为转矩储备。转矩储备可表示发动机系统100能够以最小延迟开始产生的额外转矩(高于即时转矩请求258)的量。快速发动机致动器用于以最小延迟增大或减小当前轴转矩。快速发动机致动器被定义成与慢速发动机致动器形成对比。通常,快速发动机致动器能够比慢速发动机致动器更快速地改变轴转矩。慢速致动器可比快速致动器更缓慢地响应于其各目标值中的变化。例如,慢速致动器可包括响应于目标值中的变化需要时间来从一个位置移到另外位置的机械部件。慢速致动器的特征还可以在于当慢速致动器开始执行所改变的目标值时开始改变轴转矩所耗费的时间量。通常,此时间量对于慢速致动器而言将大于快速致动器。另外,即使在开始改变之后,轴转矩可需要更长时间来充分响应于慢速致动器中的变化。仅举例说明,火花致动器模块126可以是快速致动器。火花点火发动机可通过应用火花来燃烧包括(例如)汽油和酒精的燃料。通过对比,节流阀致动器模块116可以是慢速致动器。例如,如上文所描述的,当上个点火事件与下个点火事件之间的火花定时被改变时,火花致动器模块126能够针对下个点火事件改变火花定时。通过对比,节流阀开度的变化需要更长时间来影响发动机输出转矩。节流阀致动器模块116通过调节节流阀112的叶片角度来改变节流阀开度。因此,当节流阀112开度的目标值改变时,因为节流阀112响应于该改变从其先前位置移到新位置,所以存在机械延迟。另外,基于节流阀开度的气流变化受到进气歧管110中的空气输送延迟的影响。另外,直到气缸118在下个进气冲程中接收到额外空气,压缩该额外空气并且开始燃烧冲程,进气歧管110中增加的气流才实现为发动机输出转矩的增加。将这些致动器用作示例,能够通过将节流阀开度设定到将允许发动机102产生预测转矩请求257的值来产生转矩储备。同时,能够基于小于预测转矩请求257的即时转矩请求258来设定火花定时。虽然节流阀开度产生足够的气流以使发动机102产生预测转矩请求257,但火花定时基于即时转矩请求258而被延迟(其减小转矩)。发动机输出转矩因此将等于即时转矩请求258。当需要额外转矩时,能够基于预测转矩请求257或在预测转矩请求257与即时转矩请求258之间的转矩来设定火花定时。在接下来的点火事件之前,火花致动器模块126可将火花定时返回至最优值,从而允许发动机102产生以已存在的气流可达到的完全的发动机输出转矩。发动机输出转矩因此可快速增加到预测转矩请求257,而不经历由于改变节流阀开度的延迟。轴转矩仲裁模块204可将预测转矩请求257和即时转矩请求258输出到推进转矩仲裁模块206。在各种执行中,轴转矩仲裁模块204可将预测转矩请求257和即时转矩请求258输出到混合动力优化模块208。混合动力优化模块208可确定应由发动机102产生多少转矩以及应由电动马达198产生多少转矩。然后,混合动力优化模块208分别将修改的预测转矩请求259和即时转矩请求260输出到推进转矩仲裁模块206。在各种执行中,混合动力优化模块208可在混合动力控制模块196中被执行。由推进转矩仲裁模块206接收到的预测转矩请求和即时转矩请求从轴转矩域(车轮处的转矩)转换到推进转矩域(曲轴处的转矩)中。此转换可发生在混合动力优化模块208之前、之后,或作为其的一部分,或代替其。推进转矩仲裁模块206在推进转矩请求290(包括经转换的预测转矩请求和即时转矩请求)之间进行仲裁。推进转矩仲裁模块206产生经仲裁的预测转矩请求261和经仲裁的即时转矩请求262。可通过从接收到的转矩请求当中选择获胜请求来产生经仲裁的转矩请求261和262。可替代地或额外地,可通过基于接收到的转矩请求中的另外一个或更多个修改接收到的请求中的一个来产生经仲裁的转矩请求。例如,推进转矩请求290可包括用于发动机超速保护的转矩减小、用于防止失速的转矩增加以及由变速器控制模块194所请求的以适应换档的转矩减小。推进转矩请求290还可由离合器燃料切断产生,其在驾驶员压下手动档车辆中的离合器踏板时减小发动机输出转矩以防止发动机速度的突然加剧。推进转矩请求290还可包括发动机关闭请求,在检测到紧急故障时可引发该发动机关闭请求。仅举例说明,紧急故障可包括:检测到车辆被盗;起动马达被卡住;电子节流阀控制问题以及意外的转矩增加。在各种执行中,当发动机关闭请求存在时,仲裁将发动机关闭请求选为获胜请求。当发动机关闭请求存在时,推进转矩仲裁模块206可将0输出为经仲裁的预测转矩请求261和即时转矩请求262。在各种执行中,发动机关闭请求仅可独立于仲裁过程而关掉发动机102。推进转矩仲裁模块206可仍接收发动机关闭请求,使得能够将(例如)适当的数据反馈到其它转矩请求器。例如,可通知所有其它转矩请求器其已输掉仲裁。储备/加载模块220接收经仲裁的预测转矩请求261和即时转矩请求262。储备/加载模块220可调整经仲裁的预测转矩请求261和即时转矩请求262以产生转矩储备和/或补偿一个或更多个负载。于是储备/加载模块220将经调整的预测转矩请求263和即时转矩请求264输出到转矩请求模块224。仅举例说明,催化转换器起燃过程或冷起动减排过程可需要延迟的火花定时。储备/加载模块220因此可将经调整的预测转矩请求263增加到高于经调整的即时转矩请求264,以产生用于冷起动减排过程的延迟的火花。在另外示例中,可直接改变发动机的空气/燃料比和/或空气质量流量,例如通过诊断介入当量比测试和/或新发动机净化。在开始这些过程之前,可产生或增加转矩储备以快速补偿由在这些过程期间缺乏空气/燃料混合物产生的发动机输出转矩的减小。在预计到将来的负载的情况下,例如,动力转向泵操作或空调(A/C)压缩机离合器的接合,储备/加载模块220还可产生或增加转矩储备。当驾驶员首先请求空气调节时,可产生用于A/C压缩机离合器的接合的储备。储备/加载模块220可增大经调整的预测转矩请求263,同时使经调整的即时转矩请求264不变以产生转矩储备。然后,当A/C压缩机离合器接合时,储备/加载模块220可使经调整的即时转矩请求264增加A/C压缩机离合器的估计负载。转矩请求模块224接收经调整的预测转矩请求263和即时转矩请求264。转矩请求模块224确定将如何达到经调整的预测转矩请求263和即时转矩请求264。转矩请求模块224可以是根据发动机类型所特定的。例如,转矩请求模块224可以不同方式执行,或针对火花点火发动机与压缩点火发动机使用不同控制方案。在各种执行中,转矩请求模块224可限定在所有发动机类型中普遍的模块与根据发动机类型所特定的模块之间的分界。例如,发动机类型可包括火花点火类型和压缩点火类型。在转矩请求模块224之前的模块(例如,推进转矩仲裁模块206)在发动机类型中可以是普遍的,而转矩请求模块224和后续模块可以是根据发动机类型所特定的。转矩请求模块224基于经调整的预测转矩请求263和即时转矩请求264来确定空气转矩请求265。空气转矩请求265可以是制动转矩。制动转矩可指在当前操作条件下曲轴处的转矩。基于空气转矩请求265来确定气流控制发动机致动器的目标值。更确切地,基于空气转矩请求265,空气控制模块228确定目标废气门开度范围266、目标节流阀开度范围267、目标EGR开度范围268、目标进气凸轮移相器角度269和目标排气凸轮移相器角度270。空气控制模块228使用模型预测控制来确定目标废气门开度范围266、目标节流阀开度范围267、目标EGR开度范围268、目标进气凸轮移相器角度269和目标排气凸轮移相器角度270,如下文进一步论述的。升压致动器模块164控制废气门162以达到目标废气门开度范围266。例如,第一转换模块272可将目标废气门开度范围266转换成待应用至废气门162的目标占空比274,且升压致动器模块164可基于目标占空比274将信号应用至废气门162。在各种执行中,第一转换模块272可将目标废气门开度范围266转换成目标废气门位置(未示出),且将目标废气门位置转换成目标占空比274。节流阀致动器模块116控制节流阀112以达到目标节流阀开度范围267。例如,第二转换模块276可将目标节流阀开度范围267转换成待应用至节流阀112的目标占空比278,且节流阀致动器模块116可基于目标占空比278将信号应用至节流阀112。在各种执行中,第二转换模块276可将目标节流阀开度范围267转换成目标节流阀位置(未示出),且将目标节流阀位置转换成目标占空比278。EGR致动器模块172控制EGR阀170以达到目标EGR开度范围268。例如,第三转换模块280可将目标EGR开度范围268转换成待应用至EGR阀170的目标占空比282,且EGR致动器模块172可基于目标占空比282将信号应用至EGR阀170。在各种执行中,第三转换模块280可将目标EGR开度范围268转换成目标EGR位置(未示出),且将目标EGR位置转换成目标占空比282。移相器致动器模块158控制进气凸轮移相器148以达到目标进气凸轮移相器角度269。移相器致动器模块158还控制排气凸轮移相器150以达到目标排气凸轮移相器角度270。在各种执行中,可包括第四转换模块(未示出),且其可分别将目标进气和排气凸轮移相器角度转换成目标进气和排气占空比。移相器致动器模块158可分别将目标进气和排气占空比应用到进气凸轮移相器148和排气凸轮移相器150。在各种执行中,空气控制模块228可确定目标重叠因子和目标有效位移,且移相器致动器模块158可控制进气凸轮移相器148和排气凸轮移相器150以达到目标重叠因子和目标有效位移。转矩请求模块224还可基于预测转矩请求263和即时转矩请求264来产生火花转矩请求283、气缸关闭转矩请求284和燃料转矩请求285。火花控制模块232可基于火花转矩请求283确定使火花定时(其减小发动机输出转矩)从最优火花定时延迟多久。仅举例说明,可反转转矩关系以求解目标火花定时286。对于给定的转矩请求(TReq)而言,可基于下式来确定目标火花定时(ST)286:其中APC是APC(每气缸空气),I是进气阀定相值,E是排气阀定相值,AF是空气/燃料比,OT是油温度,且#是启用的气缸数量。此关系可体现为方程和/或查找表。空气/燃料比(A/F)可以是如由燃料控制模块240所报告的实际空气/燃料比。当将火花定时设定到最优火花定时时,所产生转矩可尽可能地接近最优转矩的最小点火提前(MBT火花定时)。最优转矩是指,在使用辛烷值大于预定辛烷值的燃料且使用化学计量比加燃料的情况下,在火花定时提前时,针对给定空气流所产生的最大发动机输出转矩。将发生此最优转矩的火花定时称为MBT火花定时。最优火花定时可由于(例如)燃料品质(例如,当使用更低辛烷值燃料时)和环境因素(例如,环境湿度和温度)而略微不同于MBT火花定时。因此,最优火花定时处的发动机输出转矩可小于MBT。仅举例说明,可在车辆设计的校准阶段期间确定对应于不同发动机操作条件的最优火花定时的表,且基于当前发动机操作条件从所述表确定最优值。可由气缸控制模块236使用气缸关闭转矩请求284以确定待停用气缸的目标数量287。在各种执行中,可使用待启用的气缸的目标数量。气缸致动器模块120基于目标数量287来选择性地启用和停用气缸的阀。气缸控制模块236还可命令燃料控制模块240停止为停用的气缸提供燃料,且可命令火花控制模块232停止为停用的气缸提供火花。当已经存在于气缸中的燃料/空气混合物已经燃烧时,则火花控制模块232可停止将火花提供到气缸。燃料控制模块240可基于燃料转矩请求285来改变提供到每个气缸的燃料量。更确切地,燃料控制模块240可基于燃料转矩请求285来产生目标燃料参数288。目标燃料参数288可包括(例如)燃料的目标质量、目标喷射开始定时和目标燃料喷射次数。在正常操作期间,燃料控制模块240可以空气主导模式操作,在该空气主导模式中,燃料控制模块240试图通过基于气流控制加燃料来维持化学计量的空气/燃料比。例如,燃料控制模块240可确定在与每缸空气(APC)的当前质量组合时将产生化学计量比燃烧的目标燃料质量。图3是空气控制模块228的示例执行的功能性框图。现参考图2和图3,如上文所论述的,空气转矩请求265可以是制动转矩。转矩转换模块304将空气转矩请求265从制动转矩转换成基础转矩(basetorque)。由转换成基础转矩产生的转矩请求将称作基础空气转矩请求308。基础转矩可指,在发动机102是热的且附件(例如,交流发电机和A/C压缩机)未将转矩负载强加于发动机102上的情况下,在发动机102操作期间在测力计上产生的曲轴处的转矩。转矩转换模块304可(例如)使用使制动转矩与基础转矩相关联的映射或函数将空气转矩请求265转换成基础空气转矩请求308。在各种执行中,转矩转换模块304可将空气转矩请求265转换成另外的合适类型的转矩(例如,指示转矩)。指示转矩可指曲轴处的可由于经由气缸内的燃烧所产生的功的转矩。MPC模块312使用MPC(模型预测控制)来产生目标值266-270以达到基础空气转矩请求308。MPC模块312包括状态估计器模块316和优化模块320。状态估计器模块316基于发动机102的数学模型、来自先前(例如,上个)控制回路的发动机状态及来自先前控制回路的目标值266-270来确定控制回路的状态。例如,状态估计器模块316可基于以下关系式来确定控制回路的状态:其中k是第k个控制回路,x(k)是具有指示第k个控制回路的发动机102状态的输入的向量,x(k-1)是来自第k-1个控制回路的向量x(k),A是包括基于发动机102的特征所校准的常数值的矩阵,B是包括基于发动机102的特征所校准的常数值的矩阵,u(k-1)是包括在上个控制回路期间所使用的目标值266-270的输入的向量,y(k)是向量x(k)的线性组合,C是包括基于发动机102的特征所校准的常数值的矩阵,Bv是包括基于发动机的特征所校准的常数值的矩阵,且v是包括测量扰动的矩阵。测量扰动模型包括影响发动机行为但无法直接操纵的参数,例如环境压力和/或温度。可基于这些参数的测量或估计值(由反馈输入330一起图示出)来调节状态参数中的一个或更多个。状态估计器模块316可(例如)使用卡尔曼滤波器或另外的合适类型的状态估计器来确定状态。由MPC模块312实施的功能通常能够描述如下。对于k=1,……,N(N是大于1的整数),其实现:(1)使用以上方程和反馈输入330来获得在k时刻的发动机102状态的估计值;(2)计算对于k时刻的目标值266-270的最优值,以最小化在从k时刻到将来的k+p时刻的周期期间的成本函数;以及(3)将目标值266-270设定成仅对于k+1时刻所计算的最优值。然后,针对下个控制回路返回到(1)。k时刻和k+p时刻之间的周期是指预测时域。成本函数是在每个控制回路在预测时域范围内所定义的最优控制问题中待最小化的性能准则。此函数反映所需的控制目标。其可以是(例如)对应于跟踪误差的不同项的和,例如针对用于跟踪一些参考位置的操纵变量的,针对用于跟踪一些所需的设定点值的控制变量的,控制效果(例如,或)以及用于约束违反的惩罚项。更通常地,成本函数取决于操纵变量u、来自上个控制回路的操纵变量的变化∆u、控制变量y和约束违反惩罚变量。可将目标值266-270称为操纵变量且其由变量u表示。可将预测参数称为控制变量且其可由变量y表示。致动器约束模块360(图2)可设定目标值266-270的致动器约束348。例如,致动器约束模块360可设定对于节流阀112的致动器约束、对于EGR阀170的致动器约束、对于废气门162的致动器约束、对于进气凸轮移相器148的致动器约束和对于排气凸轮移相器150的致动器约束。对于目标值266-270的致动器约束348可包括相关联目标值的最大值和此目标值的最小值。通常,致动器约束模块360可将致动器约束348设定成相关联致动器的预定操作范围。更确切地,通常,致动器约束模块360可分别将致动器约束348设定成对于节流阀112、EGR阀170、废气门162、进气凸轮移相器148和排气凸轮移相器150的预定操作范围。然而,在一些情形下,致动器约束模块360可选择性地调节致动器约束348中的一个或更多个。输出约束模块364(图2)可设定对于控制变量(y)的输出约束352。对于控制变量的输出约束352可包括此控制变量的最大值和此控制变量的最小值。通常,输出约束模块364可分别将输出约束352设定成相关联控制变量的预定范围。然而,在一些情形下,输出约束模块364可改变输出约束352中的一个或更多个。参考模块368(图2)分别产生对于目标值266-270的参考值356。参考值356包括对于目标值266-270中的每者的参考。换言之,参考值356包括参考废气门开度范围、参考节流阀开度范围、参考EGR开度范围、参考进气凸轮移相器角度和参考排气凸轮移相器角度。参考模块368可(例如)基于空气转矩请求265、基础空气转矩请求308和/或一个或更多个其它合适参数来确定参考值356。优化模块320使用Dantzig二次规划(QP)求解器来确定目标值266-270。QP求解器在不等式约束下使用二次成本函数来求解优化问题。例如,如果向量表示一些优化变量,则能够将x的二次函数表示为以下形式:其中,Q是nxn常数的对称正定矩阵,Constant是常数值,且h对于每个控制回路是恒定的向量,但能够根据不同的控制回路而变化。线性约束呈以下形式:其中C是常数矩阵,且b对于每个控制回路是恒定的向量,但能够根据不同的控制回路而变化。将依据nu和ny来描述下文,nu是指目标值的数量(例如,在以上示例中为5个),且ny是指控制变量的数量。其中i是在1和nu之间的整数。能够将待求解的控制问题写成以下形成:在以下约束下:最小化下式:其中,如上文所描述的,同时满足。w∆u、wu和wy为正的预定加权值。v∆u、vu和vy为大于或等于0的预定软约束值。可将预定约束值设定成0,(例如)以引起对相应参数的硬约束。具有下标min和max的值表示相应参数的上限约束和下限约束。能够将操纵变量u或操纵变量变化∆u用作待优化(经由优化问题)的值。将依据操纵变量变化∆u是待优化的值来描述以下示例。基于以上方程(1)和(2)以及归纳法:。因此,。依据∆u进行重写得到:其中u(1)是包括前一个控制回路的目标值的矩阵,且x(0)是包括当前控制回路的状态参数的矩阵,该状态参数是由状态估计器模块316所提供。为了简化记录,定义。然后,其中其中。为了减小优化问题的大小,优化模块320应用阻断-移动(blocking-move)技术。假设nc是自由控制移动(freecontrolmove)的数量。假设Jm是对应于ΔU的给定阻断移动结构的矩阵。于是,Jm是大小为pnuxnc的矩阵,其仅包括nc识别适当位置和0处的Inu。假设z是新的优化变量(所有自由移动变量)。于是通过构造下式:。使用z,能够将方程(6)重写为:依据上文所提供的成本函数,是包括加权值的矩阵。为了简化记录,。在这些矩阵中,对角块的数量等于预测时域的长度。使用此记法,可以将成本函数重写为:。从成本函数移除所有常数项并依据∆U和来表示J,。这意味着:。用Jmz代替ΔU产生:。现在引入下式:。由于这些定义,能够将成本函数重写为:,其中是K当前。能够按如下来重写约束和所述约束的满足。从方程(5)和(6),能够获得下式:或相当于以及。使用以下定义:产生:,其中是M当前。在Mz矩阵中,通过移除对应于被阻断至0的所有∆us的0的所有行,能够将块缩减为,其中Iz表示大小为z的单位矩阵。类似地,也通过移除不必要的行来缩减其它M矩阵。能够针对以下块执行对应于致动器约束的类似缩减:。预测参数(y值)在整个预测时域范围内受到约束。然而,有可能在强加输出约束的预测时域范围内挑选特定时间步。在此情况下,矩阵中仅保持对应于以下块中的这些时间步的行:,且相应地通过移除不必要的行来修改所有其它M矩阵。矩阵和以及向量和对于给定线性模型而言不变。向量(K当前)和(M当前)取决于由状态估计器模块316所估计的当前状态以及来自上个控制回路(即,最近控制动作)的目标值266-270,且在由优化模块320用来确定当前控制回路的目标值266-270之前对于每个控制回路进行更新。使用这些记录,能够将在每个控制回路由优化模块320求解的QP问题重写为:其受到以下约束:。以上优化问题具有以下形式,其在以下约束下:最小化下式:其中以及。上标T的使用表示转置使用。根据Karush-Kuhn-Tucker(KKT)定理,当且仅当存在时,是QP问题的唯一解,使得:(i)满足(ii),以及(iii)。上文中,(ii)涉及原始和对偶约束满足,且(iii)涉及互补性。可将x称为原始变量。可将λ称为拉格朗日乘子或对偶变量。对于收到约束的QP优化问题而言,最优解包括原始变量和对偶变量的最优对。能够引入新的变量y,其中。因此,。以和来表示条件(ii)和(iii),产生,以及。求解,我们得到:。因此,以及。假设:且我们得到。使用以上记录,关系式(11)中的条件相当于:(i)满足(ii)以及(iii)。是单位矩阵。因此能够使用以下方程来确定:。可将求解满足条件(i)到(iii)的最优对的求解器称为对偶求解器。优化模块320包括对偶求解器且求解如上文所描述的最优对。包括对应于来自前一个控制回路(例如,k-1)的目标值266-270的变化的最优值。优化模块320分别基于的值来调节来自前一个控制回路的目标值266-270,以产生当前控制回路的目标值266-270用于控制相应的致动器。仅举例说明,优化模块320可分别将目标值266-270与的值相加,以产生用于当前控制回路的目标值266-270。这些目标值266-270将用于控制相应的致动器。能够将以上重写为:,且以及,其中以及其中和是在中。A是已知的mxm正矩阵,且向量是已知的。可将找到满足上式的(w,u)的问题称为线性互补问题(LCP)且通过优化模块320来求解。具体而言,可由DantzigQP求解器来使用此形式。对称矩阵A和向量q包括预定数据。可将A矩阵称为表格。表格的大小影响产生目标值266-270所需要的计算数量。在关系式(12)中,LCP(w和u)中存在2n个未知数,且存在n个线性方程。为了确定w和u,此外还需要n个方程。以更简单的方式写出关系式(12)的条件,我们得到:以及。这意味着对于(i=1……m)。因此,在w和u的所有2n个分量当中存在至少n个0。DantzigQP求解器以迭代方式确定对于w和u的零分量以及非零分量的正确组合,使得关系式(12)和其条件同时得到满足。应用于LCP的DantzigQP求解器是用于线性规划的单纯形求解器的扩展。关系式(12)具有至多n个非零分量。关系式(12)的基本解仅为在求解过程中由于关系式(12)的条件而需要加以考虑的那些基本解。对于给定的基本解而言,可将具有非零值的所有分量称为基本变量。基本原始可行解是所有原始变量为非负的基本解。基本对偶可行解是所有对偶变量为非负的基本解。如果没有一对对应的w分量和u分量包括两个非零元素,则可称基本可行解呈标准形式。在标准形式中,每对(wi,ui)的恰好一个元素是零(i=1,…,m)。如果基本可行解呈标准形式,则也可称相对应表格呈标准形式。如果基本可行解不呈标准形式(即,其具有数对的每对(wi,ui),使得两个分量为零或两个均为非零),则可称其呈非标准形式。现将使用以下变量。N是指约束变量w的数量,且等于m。NUC是无约束变量的数量,且在此示例中可等于0。BV是基本变量的值的向量,且由优化模块320以迭代方式确定并且初始化至BV=q。IB是对于u的大小为N的索引向量。如果IB(I)>0,则wI是基本变量且wI=BV(IB(I))。如果IB(I)<0,则wI是非基本变量且wI=0,并且–IB(I)是它在表格A中的列数。IL是对于w的大小为N的索引向量。如果IL(I)>0,则uI是基本变量且uI=BV(IB(I))。如果IB(I)<0,则uI是非基本变量且uI=0,并且–IB(I)是它在表格A中的列数。A是初始表格且其通过优化模块320以迭代方式进行修改。IRET是指示优化已终止的返回值。IRET>0指示已找到最优解,且IRET指示用于获得最优解的迭代次数。IRET=-I指示在初始BV的w变量中的不可行分量的索引。IRET=-3N指示不可能从基移除变量。不应出现IRET=-I和IRET=-3N。通常而言,优化模块320以迭代方式修改关系式(12)的基本解,以便在有限的迭代数量中找到满足关系式(12)以及满足关系式(12)的条件的一个基本解。关系式(12)的一个解是w=q和u=0。在此情况下,满足关系式(12)的所有条件,但除外。如果q的所有分量均为正,则优化模块320停止并且已找到最优解。否则,优化模块320执行一次或更多次另外的迭代。使用以上术语,使基本解初始化至预定基本解:且基本变量为w的分量。如果q具有至少一个负分量,则此基本解是唯一的对偶可行解。根据索引向量IL和IB的以上定义,最初,对于i=1,…,m,IL(i)=I,且IB=-IL。假设表格是表格,且h是当前步骤下的右乘矩阵,相对应的基本解由下式表示:其意味着:其中zB和zN分别是基本变量和非基本变量。显然,zB=h,且根据定义zN=0,其中在初始化时且h=q。假设和h+分别是表格和在下次迭代的右乘矩阵。现将解释优化模块320如何从和h进行到和h+。其中Ei和Mi分别表示I和M的第i列。所进行的一次迭代如下:(i)根据一些规则(确定IC和IR),选择M中的IC列和I中的IR列并交换这两个列,使得。(ii)通过主元消元(pivoting)求解,即,通过对和h进行运算以获得:以及。然后,确定进入基和离开基的变量。当提及非基本变量应进入基时,其意指,对应于表格中的此变量的列应代替对应于基本变量的一列。当提及基本变量应离开基时,其意指,对应于表格中的此变量的列应由对应于应进入基的非基本变量的一列来代替。如果表呈标准形式,则非基本u变量应进入基,使得对应的w变量具有h中的绝对值最大的负值。如果表格呈非标准形式,且(wi,ui)为非基本对,然后wi应进入基。假设MIC是表格的待进入基的列,且h是基本变量的当前值。计算所有基本u变量与对应于主要变量(所述主要变量与将进入基的u变量相关联)的变量的比值hi/Mi,IC。删除对应于最小正比值的变量。关于主元消元,如果使左乘P-1,则我们将获得以下单位块:。因此,,且。优化模块320根据关系式(13)来更新表格和基本解。然而,需要计算P-1。P由下式给出:。优化模块320验证:。主元消元会是由优化模块320为获得最优解所执行的(计算上)最耗时的运算。相对于用于执行主元消元的计算时间,DantzigQP求解器的所有其它运算的时间可忽略。假设g是大小为N的向量,且假设E(i,g)是通过用g代替单位矩阵的第i列所获得的矩阵,使得。可将E(i,g)称为初等矩阵。由于以上所述,P和P-1也是单位矩阵。假设a是大小为N的任何向量,。由于以上所述,显然,所执行的用于计算E(i,g)a的运算次数与N线性地成比例,而计算通用矩阵-向量积所需的运算次数与向量大小的平方成比例。如上文所描述,假设(IR,IC)是主元消元的位置,将在每次迭代时执行以下矩阵相乘:。然而,又如上文所陈述,仅需要基本变量的值来确定IC(即,不需要来自表格的信息),且在确定IC之后,仅表格的第IC列需要进行更新,以便执行剩余的迭代以确定IR。例如,在一控制回路期间的n次迭代时,已基于基本变量的更新值确定了索引IC。问题于是在于,如何在先前的n-1次迭代期间更新初始表格的第IC列。假设是在先前的n-1次迭代期间所使用的初等(左手侧)矩阵,其均呈E(IRk,gk)的形式,其中IRk是在k次迭代时所选择的主元行,且gk是在k次迭代时从主元列所获得的列向量。假设gn是表格的第IC列在当前迭代时应达到的值。在第一种情况下,在目前控制回路的先前迭代中还没有选择表格的第IC列。在此情况下,假设g0是初始表格的第IC列:其与(n-1)N成比例。在第二种情况下,在目前控制回路的前一个迭代中选择了表格的第IC列。在此情况下,假设k是使用第IC列的上一次迭代,且假设IRk是在此迭代时所选择的行的索引,第IC列需要通过EIrk=(0,...,0,1,0,...,0)T与的仅等于1的分量相关联,使得。对于一些gk而言,具有E(IRk,gk)的形式。因此,我们得到:。此外,其与n-1-k(N)成比例。由于以上内容,在n次迭代时的所需计算次数至多与(n-1)N成比例。因此,对于n次迭代的总运行时间与下式成比例:。如果对于每次迭代执行全矩阵相乘,则总的运行时间将是nN2。上式与nN2的比值接近n/2N。因此,通过优化模块320实现了计算效率改进(以每次迭代实施更少计算的方式)。图4是流程图,其描绘一种求解优化问题和确定目标值266-270的示例方法。控制回路始于404,在404处,优化模块320初始化,从而将初始基本解BV设定成预定初始基本解:且将基本变量设定成w的分量。在408处,优化模块320确定初始基本解是否为对偶可行解。预定的初始基本解是对偶可行解。因此,如果初始基本解BV在408处不是对偶可行解,则优化模块320在410处指示已发生故障且将IRET设定成指示初始基本解BV不是对偶可行解的第一预定值(例如,-I)。如果408为真,则控制继续至412。在412处,优化模块320确定基本解BV是否呈标准形式。如果基本解BV在412处不呈标准形式,则控制继续至416。优化模块320在416处将列位置索引IC保存在非基本对的原始变量的表格中,且控制继续至436,如下文进一步论述的。此变量(及因此其在表格中的列)将对于下次迭代进入基。如果基本解BV在412处呈标准形式,则控制继续至420。在420处,优化模块320确定基本解BV的所有原始变量是否均为正。如果所有原始变量在420处均为正,则已求解优化问题,且控制继续至424。在424处,优化模块424指示求解目前控制回路的优化问题所需的迭代次数。d向量于是包括λ*值,这些λ*值用于确定x*值,如上文所描述的。所述x*值分别是目标266-270的∆值。优化模块320将目前控制回路的目标值266-270设定成等于来自前一个控制回路的目标值266-270分别加上所述∆值的和。这些(更新的)目标值266-270将用于控制当前控制回路的致动器。如果基本解BV的原始变量中的一个或更多个在420处为负,则还没有求解优化问题,且控制继续至428。在428处,优化模块320识别基本解BV的绝对值最大的负(mostnegative)原始变量。优化模块320在432处将相对应的对偶变量的列位置索引IC保存在表格中。此变量(及因此其在表格中的列)将对于下次迭代进入基。控制接着继续至436。在436(始于432或者416)处,对于对应于所识别的基本对偶变量和原始变量的每个分量,优化模块320确定(目前)基本解BV的分量与表格的IC列的相对应分量之间的比值。在440处,优化模块320确定所确定的比值中的一个或更多个是否为正。如果440为假,则优化模块320在444处指示已发生故障且将IRET设定到指示无法从基移除变量的第二预定值(例如,-3N)。如果440为真,则控制继续至448。在448处,优化模块320识别所确定的比值中的正的且最小的一个。在452处,优化模块320将列位置索引IR存储在表格中。此变量(及因此其在表格中的列)将对于下次迭代离开基。在456处,优化模块对于下次迭代更新表格A和基本解BV,且控制返回到412以开始目前控制回路的下次迭代。可针对每个控制回路执行图4的示例。如上文所陈述的,优化问题具有以下形式,其在的约束下使得下式最小:。在对偶表示中问题的表格和初始基分别由下式给出:以及。能够确定最优原始变量x*如下:其中λ*是最优对偶变量。假设sX是nxn可逆矩阵,且sC是具有严格正对角输入的mxm对角矩阵,能够将优化问题重写为:在的约束下,使得下式最小化:其中且。这是x的变化和约束的缩放。在此情况下,优化问题的表格和初始基由下式给出:。假设和是优化问题的最优原始变量和对偶变量。因此,。缩放约束相当于缩放对偶变量。为了改进数值稳定性,优化模块320缩放SC矩阵:。该缩放使可能值的范围变窄,由此改进优化结果的准确度。MPC的一个特征是预期未来事件并相应地调节控制动作的能力。这通过求解一系列受约束的QP问题来获得。MPC能否在嵌入式控制器上成功地实施强烈取决于能够处理这些优化问题中所需的数据的良好程度如何。如上文所论述,DantzigQP求解器用于求解QP问题。DantzigQP求解器操纵称作表格的大矩阵,所述表格包括大量输入(例如,几千个)以便求解QP问题并找到最优解。所述表格存储在ROM(只读存储器)中。在每个控制回路调用DantzigQP求解器以求解新的一组QP问题,所述QP问题取决于系统的当前状态和约束。为了更新成本函数和约束,也可将几个大矩阵存储在ROM中。包括整个表格的所有矩阵能够保存在ROM中并加以复制以供在调用DantzigQP求解器之前使用。由于这些矩阵的大小,存储器需要大的存储空间,且存储器复制是耗时的。这些属性会影响MPC的性能且甚至影响可执行性。然而,本申请实现了ROM使用的缩减少。表格是对称矩阵。因此,表格矩阵的仅包括对角线的下三角形部分需要保存在ROM中,如果表格是mxm的大小,则该下三角形部分总共具有m*(m+1)/2个输入,而不是m*m个输入。在复制下三角形部分的同时,矩阵的上三角形部分由在线的MPC模块312使用对称性来构建。由于使用对称性,所以通过将大小为m*(m+1)/2的向量V2的元素复制到大小为m*m的向量V1中的正确位置中并使用对称性完成V1的缺失输入来从所述向量V2构建所述向量V1。如果V2以标准方式(例如,使用堆叠列)存储并被复制到V1中以占据最初的m*(m+1)/2个位置,则仅m个最初输入位于正确位置处,且剩余的m*(m-1)/2个元素需要移到其正确位置。在本申请中,V2以非标准方式存储,使得在将V2复制到V1中时待移动的元素数量最小化。如上文所陈述的,V2对应于表格矩阵的下三角形部分。此直角三角形可称为大三角形。概念是垂直“切割”的大三角以获得左边的直角梯形和右边的小直角三角形,接着将小三角形旋转180度并将其置于梯形顶部以形成矩形。然后以标准方式存储此矩形矩阵。能够示出,如果使用此结构来保存V2,则仅需要移动(m*m-1)/8个元素,而不是m*(m-1)/2个元素。一些矩阵被用于更新成本函数的线性部分。更确切地,Kut和Kr是用于在每个控制回路更新成本函数中的线性项的两个大矩阵。利用其特殊结构以达到ROM缩减。Kut与输入信号的参考值的矩阵积有助于更新成本函数。通过直接使参考值与其相对应的加权参数相乘,能够更有效得多地获得积结果。根据本申请,Kut矩阵不存储在ROM中且不执行与0的不必要的相乘。基于一个或更多个其它矩阵来构建Kut矩阵。还需要Kr与输出信号的参考值的矩阵积以更新成本函数。Kr矩阵具有块结构,且是通过由对应的输出跟踪加权参数缩放另外矩阵的行所构建(与存储在ROM中相反)。因此,如果某个输出信号的跟踪权值为0,则在预测时域范围内Kr中的相对应的行也等于0。因此,不必存储这些行。一些矩阵被用于更新约束。在每个控制回路待求解的QP问题的约束取决于系统的当前状态、先前应用的输入信号以及在预测时域范围内的预期的测量扰动信号。因此,三个大矩阵Mx、Mu1和Mv被存储在ROM中并在每个控制回路用于更新。通过利用以下结构来实现ROM缩减:所有三个这些矩阵被结构化为对应于混合约束、输出约束、输入约束和输入速率约束的四个行块(rowblock)。对应于输入约束和输入速率约束的所有块行能够被有效地恢复(由MPC模块312构建)并且不存储在ROM中。对应于输入速率约束的所有行均为0。对应于输入约束的所有行含有0(Mx和Mv)或者单位矩阵(Mu1)的块。如果输出信号具有下边界约束和上边界约束两者,则在这三个矩阵中其对应行仅相差一负号。因此,至多仅对应于输出约束的行的一半需要存储在ROM中。如果加权值中的一个或更多个改变,则修改上文所论述的K矩阵。如上文所描述的,。不必构建Kut矩阵。相关的是,其是块大小为pxnc的块-行矩阵。如果块移动结构是(p1,p2,...,pnc),则第i块位置等于:。又如上文所描述的,。使SuJm左乘Wy2对应于SuJm的行缩放。通过不使行缩放0(相当于忽略掉具有0加权值的所有y)获得计算效率。可构建矩阵Mz、Mx、Mu1和Mv,和/或将其存储在存储器中。可存储MzKz-1而非Mz。如果加权值实时地改变,则可存储Mz。通常,需要存储的M矩阵的行的数量仅取决于y个约束的数量而不是约束的总数。依据Mx矩阵,因此能够仅存储对应于约束y值的Sx的行。因此,通过计算Mxx(o)来实时更新矩阵,其中x(0)表示由状态估计器模块316提供的当前状态。连同一系列乘以0的乘法,能够执行Sxx(0)一次,而不是两次。关于Mu1矩阵,。与Mx矩阵类似,对于Mu1能够仅存储Su1。当计算Mu1u(-1)(其中u(-1)表示前一个控制回路的目标值)时,能够仅计算Su1(-1)一次,即:。关于Mv矩阵,。对此而言,能够仅存储:。假设:,产生:。现参考图5,呈现了流程图,其描绘一种估计操作参数并使用MPC(模型预测控制)来控制节流阀112、进气凸轮移相器148、排气凸轮移相器150、废气门162(及因此涡轮增压器)和EGR阀170的示例方法。控制可从504开始,在504处,转矩请求模块224基于经调节的预测转矩请求263和即时转矩请求264来确定空气转矩请求265。在508处,转矩转换模块304可将空气转矩请求265转换成基础空气转矩请求308或另外合适类型的转矩以供由MPC模块312使用。在512处,状态估计器模块316确定当前控制回路的发动机102状态,如上文所描述的。状态估计器模块316可(例如)使用卡尔曼滤波器来确定状态。在516处,优化模块320求解优化问题以确定用于确定目标值266-270的最优对(x*,λ*),如上文所描述的。在520处,优化模块320分别基于上个控制回路的目标值266-270和x*的∆值来确定当前控制回路的目标值266-270。仅举例说明,优化模块320通过分别将x*的∆值与上个控制回路的目标值266-270相加来确定目标值266-270。在528处,第一转换模块272将目标废气门开度范围266转换成待应用于废气门162的目标占空比274,第二转换模块276将目标节流阀开度范围267转换成待应用于节流阀112的目标占空比278。在428处,第三转换模块280也将目标EGR开度范围268转换成待应用于EGR阀170的目标占空比282。第四转换模块也可分别将进气凸轮移相器角度269和排气凸轮移相器角度270转换成待应用于进气凸轮移相器148和排气凸轮移相器150的目标进气和排气占空比。在532处,节流阀致动器模块116控制节流阀112以达到目标节流阀开度范围267,且移相器致动器模块158分别控制进气凸轮移相器148和排气凸轮移相器150以达到目标进气凸轮移相器角度269和目标排气凸轮移相器角度270。例如,节流阀致动器模块116可将信号应用至处于目标占空比278的节流阀112以达到目标节流阀开度范围267。并且在532处,EGR致动器模块172控制EGR阀170以达到目标EGR开度范围268,且升压致动器模块164控制废气门162以达到目标废气门开度范围266。例如,EGR致动器模块172可将信号应用至处于目标占空比282的EGR阀170以达到目标EGR开度范围268,且升压致动器模块164可将信号应用至处于目标占空比274的废气门162以达到目标废气门开度范围266。虽然图5示出在432后结束,但图5说明了一个控制回路,且可按预定速率执行控制回路。前述描述本质上仅为说明性的且不以任何方式旨在限制本公开、其应用或用途。能够以多种形式来实施本公开的广泛教导。因此,虽然本公开包括特定示例,但不应如此限制本公开的真实范围,因为在研究了附图、说明书和以下权利要求书后,其它修改将变得显而易见的。如本文所使用的,短语A、B和C中的至少一个应解释为意指逻辑(A或B或C)(使用非排它性逻辑OR),且不应解释为意指“A中的至少一个、B中的至少一个和C中的至少一个”。应理解到,在不更改本公开的原理的范围内,可以不同次序(或同时)执行方法内的一个或更多个步骤。在本申请(包括以下定义)中,可用术语“电路”代替术语“模块”或术语“控制器”。术语“模块”可指以下各者、为以下各者的一部分、或包括以下各者:特定用途集成电路(ASIC);数字、模拟或混合型模拟/数字离散电路;数字、模拟或混合型模拟/数字集成电路;组合逻辑电路;现场可编程门阵列(FPGA);执行代码的处理器电路(共用、专用或组);存储由处理器电路执行的代码的存储器电路(共用、专用或组);提供所需功能性的其它合适的硬件部件;或以上中的一些或所有的组合(例如,在片上系统中)。模块可包括一个或更多个接口电路。在一些示例中,接口电路可包括有线或无线接口,该接口连接到局域网(LAN)、因特网、广域网(WAN)或其组合。可将本公开的任何给定模块的功能性分配于经由接口电路所连接的多个模块当中。例如,多个模块可允许负载平衡。在另外的示例中,服务器(也称为远程服务器或云服务器)模块可代表客户模块实现一些功能性。如上文所使用的,术语代码可包括软件、固件和/或微码,且可指程序、例程、函数、类、数据结构和/或对象。术语共用处理器电路涵盖执行来自多个模块的一些或所有代码的单个处理器电路。术语组处理器电路涵盖与额外处理器电路结合且执行来自一个或更多个模块的一些或所有代码的处理器电路。对多个处理器电路的引用涵盖离散电路小片(die)上的多个处理器电路、单个电路小片上的多个处理器电路、单个处理器电路的多个核、单个处理器电路的多个线程或以上各者的组合。术语共用存储器电路涵盖存储来自多个模块的一些或所有代码的单个存储器电路。术语组存储器电路涵盖与额外存储器结合且存储来自一个或更多个模块的一些或所有代码的存储器电路。术语存储器电路是术语计算机可读介质的子集。如本文所使用的,术语计算机可读介质不涵盖经由介质(例如,在载波上)传播的暂时性的电信号或电磁信号;术语计算机可读介质因此可被认为是有形的和非暂时性的。非暂时性的、有形的计算机可读介质的非限制性示例是非易失性存储器电路(例如,快闪存储器电路、可擦除可编程只读存储器电路、或掩模只读存储器电路)、易失性存储器电路(例如,静态随机存取存储器电路或动态随机存取存储器电路)、磁性存储介质(例如,模拟或数字磁带或硬盘驱动)和光学存储介质(例如,CD、DVD或蓝光盘)。本申请中所描述的设备和方法可部分地或全部由通过配置通用用途的计算机所产生的专用计算机来实施,以执行计算机程序中所体现的一个或更多个特定功能。上文所描述的功能块、流程图组成和其它元素充当软件说明书,其能够通过有经验的技术人员或程序员的常规作业转译成计算机程序。计算机程序包括存储在至少一个非暂时性的、有形的计算机可读介质上的处理器可执行指令。计算机程序还可包括或依赖于所存储的数据。计算机程序可涵盖与专用计算机的硬件相互作用的基本输入/输出系统(BIOS)、与专用计算机的特定装置相互作用的装置驱动器、一个或更多个操作系统、用户应用、后台服务、后台应用等。计算机程序可包括:(i)待解析的描述性文本,例如HTML(超文本标记语言)或XML(可扩展标记语言);(ii)汇编代码;(iii)通过编译器从源代码产生的目标代码;(iv)供由解译器执行的源代码;(v)供由即时编译器编译和执行的源代码等等。仅作为示例,可使用来自包括以下各种语言的语法来写源代码:C、C++、C#、ObjectiveC、Haskell、Go、SQL、R、Lisp、Java®、Fortran、Perl、Pascal、Curl、OCaml、Javascript®、HTML5、Ada、ASP(主动服务器网页)、PHP、Scala、Eiffel、Smalltalk、Erlang、Ruby、Flash®、VisualBasic®、Lua和Python®。除非使用短语“用于……的机构”或在方法权利要求的情况下使用短语“用于……的操作”或“用于……的步骤”来明确叙述元件,否则权利要求中所叙述的元件中没有一个旨在是在35U.S.C.§112(f)的意义范围中的手段加功能元件。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1