Simulink 使用C语言发PWM波 (一)

1.在matlab中安装C语言模块mingw 

 

2.在simulink中引用S-Function模块 和S-Function Examples模块

3.使用S-Function Examples模块创建C文件,双击S-Function Examples模块后再选择C-file再选择basic C-Mex

  

 4.将创建的C文件模板另存到仿真文件所在文件夹,并将文件名重命名为工程名称如Boost.c,在S-Function中将名称更改为C文件名如Boost,在C的宏定义中将S_FUNCTION_NAME 后面名称改为文件名

 

 

5.在simulink中设置的 model properties中的initfcn中输入mex Boost.c,这样matlab在仿真前会先编译所生产的C文件

6.修改.c文件中的采样时间

 7.修改S-Function的输入输出,如果为默认下图形式,并且将输入连接到采样,输出连接到示波器,会发现波形为100K的采样波形,到此就实现了采样保持器

 

 

 8.使用C发PWM波        

        a.定义结构体变量Cnt和周期

        

 

        b.初始化结构体变量,其中400为周期,计算方法为PWM的频率除以采样时间

                Prd = Fre/Slample    例程中开关频率为100K(1e-5)   采样时间为2.5e-8

        

 

 c.添加S-Function输出端口数量,如下改为2可以有两组输出

        d.在模块中执行PWM运算,即可在示波器中看到PWM波