编辑推荐:
本文来自于csdn,主要介绍了MATLAB与SIMULINK仿真嵌入式C算法的概述与方法。
概述
为在嵌入式开发中碰到的算法验证问题,借助matlab平台可以更方便的调试。如控制算法,可以先验证算法编写的正确性,防止盲目调参的无用功。借助的是SIMULINK
与 S-Function Builder
方法
首先保证 matlab MEX部分能正常工作,可以参考 mex -setup相关信息。主要是让mex找到正确的编译器,如:已安装了gcc套件,则只需设置下环境变量:
setenv(‘MW_MINGW64_LOC’,’F:\MinGW64’);
即可
S-Function 是一个将c c++ 等编译为simulink模块的工具,吧待检测的代码构建为simulink
标准模块便可借助 simulink 强大功能仿真了。S-Function 有特定的格式,可以手写,这里用更简单的S-Function
Builder做。
下面以一个iir滤波器算法为例
1.待验证的iir实现如下,保存为iir_souce.c
/**
* @brief 离散 IIR 滤波器算法,被s function builder
* 使用并建立iir.c (与builder设置的函数名相同)
*
* @param u 输入
* @param xD 离散变量寄存器, sfuncton builder 提供
* @return double 输出
*/
double iir(doub