主要内容

空燃比控制系统与Stateflow图表

生成代码的空燃比控制系统设计与仿真软件®和Stateflow®。金宝app

图1、2和3显示sldemo_fuelsys模型的相关部分,包含植物和控制器的闭环系统。工厂验证控制器在设计周期的早期在模拟。在本例中,您生成代码相关控制器子系统,“fuel_rate_control”。图1显示了高层仿真模型。

开放和配置sldemo_fuelsys模型。然后,编译模型信号数据类型。

模型=“sldemo_fuelsys”;open_system(模型)rtwconfiguredemo(模型,“导”,“浮”);set_param(模型,“ShowPortDataTypes”,“上”);set_param(模型,“SampleTimeColors”,“上”);sldemo_fuelsys ([]、[] [],“编译”);sldemo_fuelsys ([]、[] [],“术语”);

图1:顶级的植物和控制器模型

空燃比控制系统由仿真软件和Stateflow。金宝app的部分是控制系统的模型生成的代码。

open_system (“sldemo_fuelsys / fuel_rate_control”);

图2:空气燃料比控制器子系统

控制逻辑是Stateflow图表,指定不同的操作模式。

open_system (“sldemo_fuelsys / fuel_rate_control / control_logic”);

图3:燃料率控制器逻辑

这些窗户关闭。

close_system (“sldemo_fuelsys / fuel_rate_control / airflow_calc”);close_system (“sldemo_fuelsys / fuel_rate_control / fuel_calc”);close_system (“sldemo_fuelsys / fuel_rate_control / control_logic”);hDemo.rt = sfroot; hDemo.m = hDemo.rt.find (“是”,“金宝appSimulink.BlockDiagram”);hDemo.c = hDemo.m.find (“是”,“Stateflow.Chart”,“——”,“名字”,“control_logic”);hDemo.c.visible = false;close_system (“sldemo_fuelsys / fuel_rate_control”);

配置和构建模型与嵌入式编码器

配置和构建生产ANSI®C / c++代码模型,设定模型配置参数系统目标文件ert.tlc(嵌入式实时(ERT))。你可以设置系统目标文件参数编程。

rtwconfiguredemo (“sldemo_fuelsys”,“导”);

生成和检查代码。你可以导航到相关代码段交互使用以前的下一个按钮。从图表上下文菜单(右键单击Stateflow块),选择C / c++代码>导航到C / c++代码。通过编程,使用rtwtrace实用程序。

slbuild (“sldemo_fuelsys / fuel_rate_control”);rtwtrace (“sldemo_fuelsys / fuel_rate_control / control_logic”)
# # #开始构建过程:fuel_rate_control # # #成功完成构建过程:fuel_rate_control模型建立目标:总结构建模型重建行动的原因= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = fuel_rate_control代码生成和编译。代码生成信息文件不存在。1 1模型的建立(0模型已经更新)构建持续时间:0 h 0米26.126秒ans = []

视图中的空燃比控制逻辑生成的代码。

rtwdemodbtype (“fuel_rate_control_ert_rtw / fuel_rate_control.c”,/ *函数图:”,“案例IN_Warmup:”1 0);
/ *函数图:“< S1 > / control_logic”* /静态孔隙Fueling_Mode (const int32_T * sfEvent){开关(rtDWork.bitsForTID0.is_Fueling_Mode){案例IN_Fuel_Disabled: rtDWork。fuel_mode =禁用;开关(rtDWork.bitsForTID0.is_Fuel_Disabled){案例IN_Overspeed: / *尺寸:“< Root > /传感器”如果(rtDWork.bitsForTID0 * /。is_Speed = = IN_normal) & & (rtU.sensors。速度< 603.0 f)){如果(rtDWork.bitsForTID0。is_Fail ! = {rtDWork.bitsForTID0 IN_Multi)。is_Fuel_Disabled = IN_NO_ACTIVE_CHILD;rtDWork.bitsForTID0。is_Fueling_Mode = IN_Running;/ *燃料是在这个状态主动控制。* /开关(rtDWork.bitsForTID0.was_Running){案例IN_Low_Emissions: rtDWork.bitsForTID0。is_Running = IN_Low_Emissions;rtDWork.bitsForTID0。was_Running = IN_Low_Emissions;rtDWork。fuel_mode = LOW; switch (rtDWork.bitsForTID0.was_Low_Emissions) { case IN_Normal: rtDWork.bitsForTID0.is_Low_Emissions = IN_Normal; rtDWork.bitsForTID0.was_Low_Emissions = IN_Normal; /* All sensors are in correct operating modes, so effective closed-loop mixture control can be used. */ break;

关闭模型和代码生成报告。

清晰的hDemo;rtwdemoclean;close_system (“sldemo_fuelsys”,0);