为了在Simulink中测试这个S-函数,可双击模型中的S-Function模块,打开模块参数对话框,在S-function name参数框内输入timestwo。由于这个模型是不含有参数和状态的,因此可对S-function parameters参数不做修改,如图12-8(a)所示。运行仿真,在示波器中显示的波形如图12-8(b)所示。 (a) (b) 图12-8 例12-2 含参数的可变增益系统。 如果需要用户输入系统的参数,则这些参数必须在S-函数中第一行的输入参数中列出。主函数应当做适当的修改,以便将用户参数传递到子函数中;子函数的定义也应该进行相应的修改,以便通过输入参数接收用户的参数。 现在,图12-9中的模型可实现一个可变增益系统,它的增益值作为S-Function模块中的参数由用户输入。 图12-9 对S-函数模块进行的修改包括:最顶部的函数做了改动,函数中增加了新的参数,并采用新的函数名。 function [sys, x0, str, ts] = sfun_vargain(t, x, u, flag, gain) 由于增益参数只是用来计算输出值的,因此对mdlOutputs的调用可修改为: case 3, sys = mdlOutputs(t, x, u, gain); 对mdlOutputs子函数的定义
原创力文档

文档评论(0)