主要内容

建模一个容错燃料控制系统

这个例子展示了如何结合Stateflow®和Simulink®来有效地建模混合系统。这种类型的建模对于具有基于离散事件的多种可能操作模式的系统特别有用。传统的信号流在Simulink中处理,而控制配置的更改则在Stateflow中实现。下面描述的模型代表了一个汽油发动机的燃料控制系统。该系统具有高度鲁棒性,因为可以检测到单个传感器故障,并动态地重新配置控制系统,以实现不间断运行。

分析和物理

物理和经验关系构成了该模型的油门和进气歧管动力学的基础。空燃比的计算方法是用空气质量流量(从进气歧管泵出)除以燃料质量流量(在气门处注入)。理想的(即化学计量)混合比在动力、燃油经济性和排放之间提供了很好的折衷方案。该系统的目标空燃比为14.6。通常情况下,传感器会确定尾气中存在的剩余氧气量(EGO)。这可以很好地指示混合比例,并为闭环控制提供反馈测量。如果传感器显示高氧水平,控制律会增加燃料率。当传感器检测到富含燃料的混合物,对应于极低的剩余氧水平时,控制器降低燃料速率。

建模

图1显示了Simulink模型的顶层。要打开模型,点击开放模式。按下模型窗口工具栏中的播放按钮,运行模拟。模型将必要的数据加载到模型工作区中sldemo_fuelsys_data.m。模型将相关数据记录到MATLAB工作空间中的数据结构称为sldemo_fuelsys_output并将数据传输到模拟数据检查器。记录信号用蓝色指示器标记,而流信号用浅蓝色徽章标记(见图1)。

注意,将初始条件加载到模型工作区将使模拟数据与您可能已经打开的其他开放模型中的数据隔离开来。这也有助于避免MATLAB工作空间的杂化。要查看模型工作区的内容,选择Modeling > model Explorer,并从model Hierarchy列表中单击model workspace。

注意,单元在模型和子系统图标和信号线上都是可见的。单元在端口和总线对象上指定。

图1:燃油控制系统模型顶层图

Dashboard子系统(如图2所示)允许您在模拟过程中与模型进行交互。故障注入开关可以从正常位置移动到故障位置,以模拟传感器故障,而发动机转速选择开关可以切换以改变发动机转速。燃油和空气/燃油比信号通过仪表盘仪表和瞄准镜可视化,在模拟运行过程中提供可视化反馈。

图2:仪表盘子系统为燃料控制系统模型

燃料率控制使用来自系统传感器的信号来确定燃料率,这给出了一个化学计量混合物。燃料速率与发动机气体动力学模型中的实际空气流量相结合,以确定在排气处感知到的最终混合比例。

通过使用仪表板子系统中的滑块开关,可以选择性地禁用四个传感器(油门角度、速度、EGO和流形绝对压力[MAP])中的每一个,以模拟故障。Simulink通过将滑块开关绑定到恒定块的值参数来实现这一点。双击仪表板子系统,打开控制仪表板,改变开关的位置。同样,通过拨动仪表板子系统上的发动机转速开关,可以诱导发动机转速过高的故障条件。repeat Table块提供节气门角度输入,并周期性重复掩码中指定的数据序列。

fuel_rate_control块,如图3所示,使用传感器输入和反馈信号来调整燃料速率,给出一个化学计量比。该模型使用三个子系统来实现这一策略:控制逻辑、气流计算和燃油计算。在正常运行的情况下,模型估算气流速率,并将估算值乘以所需比率的倒数,得到燃料速率。来自氧传感器的反馈提供了速率估计的闭环调整,以保持理想的混合比。

图3:燃油率控制器子系统

控制逻辑

由一组6个并行状态组成的单个Stateflow图,完整地实现了控制逻辑。图4顶部所示的四个并行状态对应于四个单独的传感器。底部剩下的两个并行状态同时考虑了四个传感器的状态,并决定了整个系统的运行模式。该模型以0.01秒的常规采样时间间隔同步调用整个Stateflow图,这允许及时测试转换到正确模式的条件。

开放在fuel_rate_control子系统中双击control_logic状态流图。

图4:控制逻辑图

当执行开始时,所有的状态都在它们的正常的除氧传感器(EGO)外的模式。的O2_warmup状态初始进入,直到预热期完成。当油门和压力传感器的测量值超出其标称范围时,系统会检测到它们的故障。在没有速度信号的情况下,流形真空表示速度传感器故障。氧气传感器也有一个故障条件的标称范围,但因为零既是最小信号水平,也是范围的底部,所以只有当它超过上限时,才能检测到故障。

无论哪个传感器发生故障,模型总是生成有向事件广播失败。公司。这样,通用传感器故障逻辑的触发独立于传感器。该模型还使用了相应的传感器恢复事件,失败。12月。的失败State跟踪故障传感器的数量。计数器在每个传感器上递增失败。公司事件和递减在每个失败。12月的事件。该模型使用了超状态,,将多个传感器故障的所有情况进行分组。

底部并行状态代表发动机的加油方式。如果单个传感器出现故障,则继续运行,但空气/燃料混合物更丰富,以更高的排放为代价实现更平稳的运行。如果多个传感器出现故障,作为一种安全措施,发动机会关闭,因为空气/燃料比无法得到可靠控制。

在氧传感器预热过程中,模型将混合物保持在正常水平。如果这不能令人满意,你可以通过移动预热状态来改变设计Rich_Mixture极权主义国家。如果在预热期间发生传感器故障,则Single_Failure状态是在热身时间过后进入的。否则,正常的State此时处于激活状态。

通过在模型中创建一个新状态,增加了一个保护超速的功能Fuel_Disabled极权主义国家。通过使用历史结点,我们保证了当模型退出超速状态时,图表返回到适当的状态。随着对发动机的安全要求变得更加明确,我们可以在Fuel_Disabled极权主义国家。

传感器校正

当传感器出现故障时,该模型计算出传感器的估计值。例如,开放压力传感器的计算。在正常的传感器操作下,模型使用压力传感器的值。否则,模型估计值。

该模型计算作为发动机转速和油门位置函数的流形压力的估计值。为了计算该值,模型使用Stateflow内部的Simulink函数。

气流计算

“风流计算”块(如图6所示)是中央控制律的位置。该块在fuel_rate_control子系统(打开这个块)。该模块估计进气流量,以确定燃料率,从而给出适当的空气/燃料比。闭环控制根据剩余氧反馈调整估计,以精确保持混合比。即使当传感器故障要求开环操作时,也会保留最近的闭环调整,以最好地满足控制目标。

图6:气流估计和校正

方程1

发动机进气流量可以表述为发动机转速、歧管压力和时变标度因子的乘积。

$ $ q = \压裂{N}{4 \π}V_ {cd} \ν\压裂{P_m} {RT} = C_{泵}(N, P_m) N P_m = \ mbox{进气质量流量}$ $

$$N = \mbox{发动机角速度(Rad/sec)}$$

$$V_{cd} = \mbox{发动机气缸排量容积}$$

$$\nu = \mbox{volumetric efficiency}$$

$$P_m = \mbox{流形压力}$$

$$R, T =\mbox{比气常数,气体温度}$$

Cpump由查找表计算,并乘以速度和压力,形成初始流量估计。在瞬态过程中,节流速率,通过高通滤波器近似的导数,校正充气动力学的空气流量。根据公式2,控制算法提供了额外的修正。

方程2

$$e_0 = 0.5 \mbox{for} EGO\le 0.5$$

$$e_0 = -0.5 \mbox{for} EGO >0.5 $ $

$$e_1 = K_i (N,P_m) e_0 \mbox{for} EGO\le 0.5$$

$$\dot{e_2} = e_1 \mbox{用于带有有效EGO信号的LOW模式}$$

$$\dot{e_2} = 0 \mbox{用于RICH、DISABLE或EGO预热}$$

$$ e_0, e_1, e_2 = \mbox{中间错误信号}$$

图7:发动机气体动力学子系统

图8:发动机气体动力学子系统内的混合和燃烧块

非线性氧传感器(EGO sensor块)位于发动机气体动力学子系统(见图7)内的混合与燃烧块(见图8)内。EGO sensor被建模为双曲正切函数,当接近0.5伏时,它提供有意义的信号。因此,用开关阈值检测反馈回路中的原始误差,如式2所示。如果空燃比较低(混合气较稀),则原始的空气估计过小,需要增加。反之,当氧传感器输出高时,空气预估值过大,需要降低。利用积分控制,使修正项达到在混合比中带来零稳态误差的水平。

正常的闭环运行模式LOW,动态调整积分器,使误差最小化。积分在离散时间内进行,每10毫秒更新一次。然而,当操作开环时,在RICH或O2故障模式下,反馈错误被忽略,积分器被保持。这基于最近的有效反馈给出了最好的校正。

燃料计算

fuel_calc子系统(在fuel_rate_control子系统中,见图9)设置注入器信号,以匹配给定的气流计算和故障状态。第一个输入是计算出来的气流估计。将此与目标燃料/空气比相乘,得到指令燃料率。通常目标是化学计量的,即等于14.6的最佳空气/燃料比。当传感器发生故障时,Stateflow控制逻辑将模式输入设置为2或3 (RICH或DISABLED),这样混合物要么化学计量量略丰富,要么完全关闭。

图9:fuel_calc子系统

fuel_calc子系统(图9)采用可调补偿(图10),以在不同的模式下达到不同的目的。在正常运行时,反馈校正信号的相位超前补偿增加了闭环稳定裕度。然而,在RICH模式和EGO传感器故障期间(开环),复合燃料信号被低通滤波,以衰减估计过程中引入的噪声。最终的结果是一个代表燃油流量的信号,在实际系统中,该信号将被转换为喷油器脉冲时间。

图10:可切换的补偿子系统

结果和结论

仿真结果如图11和图12所示。模拟运行时,油门输入在两秒内从10度上升到20度,然后在接下来的两秒内回到10度。在发动机保持恒定速度的同时,这个循环会不断重复,这样用户就可以在不同的故障条件和故障模式下进行实验。点击仪表板子系统中的传感器故障开关,模拟相关传感器的故障。重复此操作,将开关滑回正常操作。

图11:比较不同传感器故障的燃料流量

图11将无故障条件(基线)下的燃料流量与每个传感器单独出现单一故障时的燃料流量进行了比较。在每种情况下,请注意燃油流量与三角节流命令之间的非线性关系(如图13所示)。在基线情况下,燃料流量被严格调节,由于EGO传感器输入电路的开关特性,燃油流量会出现小波动。在其他四种情况下,系统运行为开环。在单次故障模式下,该控制策略被证明能有效地保持正确的燃料分布。在每一种故障条件下,燃料率基本上是基线流量的125%,实现了80%丰富的设计目标。

图12:比较不同传感器故障时的空燃比

图12绘制了每种情况下对应的空气/燃料比。基线图显示了闭环操作的效果。混合比例被严格控制在14.6的化学计量学目标上。丰富的混合比例显示在图12底部的四个图中。虽然它们没有像闭环情况那样被严格调控,但它们接近空气/燃料的目标(0.8*14.6=11.7)。

图13:节流命令

系统的瞬态行为如图14所示。在恒定12度油门角且系统处于稳态的情况下,在t = 2处引入了一个油门故障,并在t = 5处进行了修正。在故障开始时,燃料率立即增加。当富油比在整个系统中传播时,这种影响可以在排气处看到。当闭环操作恢复时,稳态状态迅速恢复。

图14:故障检测的瞬态响应

讲话

如果在Stateflow调试器中启用动画,当各种状态被激活时,状态转换会在Stateflow图中突出显示(参见图4)。激活的顺序通过改变颜色来表示。Stateflow和Simulink之间这种紧密耦合的协同作用促进了完整控制系统的建模和开发。

相关的话题

Baidu
map