# Model Based Design **Repository Path**: jason__buaa/model-based-design ## Basic Information - **Project Name**: Model Based Design - **Description**: 基于模型的设计,基于MATLAB/Simulink,搜集相关参考资料 - **Primary Language**: Matlab - **License**: LGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2021-12-05 - **Last Updated**: 2024-10-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Model Based Design ## 介绍 基于模型的设计,基于MATLAB/Simulink,搜集相关参考资料 ## 入门例子 ### 参考文献 [Simulink Code Generation Tutorial for generating C code from Simulink Models using Simulink Coder](https://cloud.189.cn/t/eUbuYbYb6JNj (访问码:6hyk)) ### 日志 2021.12.05: 更新初版模型。 2021.12.06: 更新ert_main.c。运行Calc_Test_Model.bat,运行生成的exe查看运算结果。 2021.12.16:如何修改ert_main.c? ```C /* Attach rt_OneStep to a timer or interrupt service routine with * period 1.0 seconds (the model's base sample time) here. The * call syntax for rt_OneStep is * * 将 rt_OneStep取消注释。 */ rt_OneStep(Calc_Test_Model_M); ``` 然后增加输入输出显示,修改rt_OneStep的实现: ```C OverrunFlag = true; /* Save FPU context here (if necessary) */ /* Re-enable timer or interrupt here */ int32_T Input_A = 1; int32_T Input_B = 2; /* Step the model */ while(1) { /* Pass input data */ Calc_Test_Model_U_Input_A = Input_A; Calc_Test_Model_U_Input_B = Input_B; Calc_Test_Model_step(Calc_Test_Model_M, Calc_Test_Model_U_Input_A, Calc_Test_Model_U_Input_B, &Calc_Test_Model_Y_sum, &Calc_Test_Model_Y_sub, &Calc_Test_Model_Y_mul, &Calc_Test_Model_Y_div, &Calc_Test_Model_Y_sum_gain); printf("Input_A: %ld , Input_B: %ld\n\n" "sum: %ld\n\n" "sub: %ld\n\n" "mul: %ld\n\n" "div: %lf\n\n" "sum_gain: %ld\n\n" , Calc_Test_Model_U_Input_A, Calc_Test_Model_U_Input_B, Calc_Test_Model_Y_sum, Calc_Test_Model_Y_sub, Calc_Test_Model_Y_mul, Calc_Test_Model_Y_div, Calc_Test_Model_Y_sum_gain); Input_A++; Input_B++; sleep(1); } /* Get model outputs here */ ``` 2021.12.20 增加模型 multiratesingletasking.slx 以及对应的makefile文件。 ## 课程 [Embedded Systems - Model-Based Design](http://retis.sssup.it/~marco/teaching/embeddedsystems/lessons/) ## 编译工具 [Windows 下使用 Mingw32-make 来执行 Makefile示例](https://blog.csdn.net/linjf520/article/details/108559210) ## C语言基础 1. [C语言fflush()函数:清空文件缓冲区](http://c.biancheng.net/cpp/html/2506.html) 2. [C语言extern关键字用法和理解](http://www.uml.org.cn/c%2B%2B/201908011.asp)