MATLAB/Simulink学习|在Simulink中调用C语言-02使用C Function 实现积分运算
在上一篇博客中,介绍了如何通过C Function中使用C语言实现比例运算,在本篇博客中,将要介绍如何通过C Function实现积分运算,与比例运算有何不同。
在本篇博客中,着重介绍如何设置C Function模块,如何查找C Function请参考MATLAB/Simulink学习|在Simulink中调用C语言-01使用C Function 实现比例运算-CSDN博客
添加端口和参数
与上一篇介绍C Function不同
输出变量Out是积分量,是一个长度为2的一维数组,用于存储上一个采样周期的状态和当前计算的结果。其中Out[0]为当前计算结果,Out[1]为上一周期存储的结果。因此Out端口的维度需要设置2。
参数变量ki是积分系数。
参数变量Tsample是采样时间,ki×Tsample即为每个采样周期需要积分的大小。
添加输出运算函数
完成输入输出端口以及参数的定义后,在“输出”栏中编辑C代码
Out[0] = Out[1] + ki*In*Tsample;
Out[1] = Out[0];
设置积分系数以及采样时间
双击C Function模块并设置参数,如下图所示,积分系数为1,采样时间为1/10e3
观察仿真结果
下图为搭建完成的仿真结构
下图中,蓝色为积分环节的输入,红色为积分环节的输出,从图中可以看出,积分系数为1时,0~1s期间,积分环节的输出逐渐增加至1。
总结
以上便完成了在Simulink中使用C Function模块,实现C语言的积分运算。希望对你有所帮助,我是ManTou~!
但是仍然存在不足之处!这种写C 代码的方式与我们常见的定义函数的方式不同,也缺少头文件和源文件,在移植代码时仍然有不少工作需要完成。
在后续的更新中,将会介绍弥补上述不足的方法,保持关注哦~