主要内容

空燃比控制系统与Stateflow图表

生成代码的空燃比控制系统设计与仿真软件®和Stateflow®。万博1manbetx

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

使用命令rtwdemo_fuelsys打开模型sldemo_fuelsys。然后,编译模型信号数据类型。

rtwdemo_fuelsys sldemo_fuelsys ([]、[] [],“编译”);sldemo_fuelsys ([]、[] [],“术语”);

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

空燃比控制系统由仿真软件®和Stateflow®。万博1manbetx的部分是控制系统的模型生成的代码。

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 (“是”,“万博1manbetxSimulink.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米14.017秒ans = ' sid = sldemo_fuelsys: 107 &inputlocs ={“数据”:[{“文件”:“fuel_rate_control。c”、“线”:[“21”、“168”、“331”、“435”、“440”、“443”、“444”、“445”、“448”、“449”、“450”、“453”、“454”、“455”、“458”、“461”、“464”、“467”、“470”、“473”、“476”、“479”、“482”、“485”、“488”、“491”、“492”、“493”、“494”、“495”、“499”、“500”、“501”、“502”、“503”、“504”、“505”、“506”、“507”、“508”、“511”、“512”、“513”、“519”、“520”、“522”、“523”、“524”、“525”、“526”、“529”、“530”、“536”、“537”、“539”、“540”、“548”、“549”、“550”、“551”、“552”、“553”、“554”、“555”、“558”、“559”、“564”、“565”、“566”、“567”、“573”、“574”、“575”、“576”、“577”、“578”、“581”、“582”、“586”、“592”、“593”、“594”、“595”、“596”、“597”、“598”、“599”、“602”、“603”、“608”、“609”、“610”、“616”、“617”、“619”、“620”、“621”、“622”、“625”、“626”、“630”、“636”、“637”、“638”、“639”、“640”、“641”、“642”、“643”、“646”、“647”、“653”、“654”、“655”、“656”、“659”、“660”、“661”、“662”、“664”、“672”、“673”、“675”、“676”、“677”、“678”、“681”、“682”、“686”、“692”、“693”、“696”、“697”、“701”、“853”、“855”、“858”、“859”、“860”、“861”、“862”]},{“文件”:“fuel_rate_control。h”、“线”:[“36”,“41”、“43”、“44”、“45”、“46”、“47”,“48”、“49”、“50”、“五一”、“52”,“53”,“54”,“55”,“56”、“57”,“58”、“59”,“60”、“61”、“62”、“63”、“64”、“67”]}]}”

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

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);

相关的例子

相关定点使用sldemo_fuelsys的例子,看看