基于Simulink代码生成(4)——if-else和switch-case实现方式 在Simulink建模时可以通过多种方式实现if-else和switch-case逻辑,不同的场景应该用不同的实现方式,这样可以降低模型的复杂度,也可以提高模型生成代码的质量。如果条件是状态信号或者直接就是枚举类型的信号,并且状态多余一种,可以考虑使用switch-case,与之相反的情况则建议用if-else。
基于Simulink代码生成(3)——模块使用 当基础模块不能满足你的要求,然后在其他的Group里面也找到你想要的模块,或者找到的模块代码生成效率较低,就可以考虑自定义模块,在汽车行业大家一般都会将自定义模块做成reusable的库供团队内的成员共同使用,比方说滤波器、计数器、诊断里面的bounce、debounce、PID等,后续再对如何创建这样一些自定义库模块进行详细的讲解创建库文件在查看或者分析模型时,当一个模型中有很多模块,往往我们希望能一眼辨认出哪些是自定义的模块,这样可以提高模型的可读性和问题问题的效率,按照如下操作就可达到此目的。
基于Simulink代码生成(2)——模型配置 配置模型是Simulink建模过程中非常重要的一项工作,因为不同的配置方式可能会导致模型仿真和代码生成的结果差异很大,今天在这里讲一下用于代码生成的Simulink模型的一些基本配置,以及如何进行模型配置的管理,后续再专门详细讲解模型配置条目的含义和配置方案。代码生成最重要的几项配置如下。
基于Simulink代码生成(1)——数据管理 数据管理是嵌入式软件的Simulink模型开发过程中非常重要的一项工作,它会影响到软件开发效率和生成代码的质量。主流的数据管理方案有两种,第一种是将数据的属性填写到Excel中,然后通过脚本将Excel中的数据导入到MATLAB的base workspace中,第二种是直接在Simulink自带的sldd中进行管理,下面我们来讲解一下两种方法的实现方式和各自的优缺点。