开关输出波形之间在执行的波形发生器分组码

该示例示出如何生成代码,可用于在代码执行期间刺激波形之间进行切换。

对于一个波形发生器块,则无法使波形的参数,如幅度和相移,可调谐在生成的代码。相反,你可以生成代码,使您可以从一组波形选择积极的波形变种您在块中指定。在代码的执行,可以激活通过调整全球结构域的值的变体。

您必须设置模式配置参数默认参数行为可调。然后,默认情况下,在模型块参数出现在生成的代码可调谐的。这些参数可能会占用大量的内存大模型。

创建模型ex_switch_waveform

open_system('ex_switch_waveform'

在波形发生器模块,配置此波形:

方(安培,10,0,占空比)

在底座的工作区中,创建变量功放占空比

安培= 2.71;占空比= 50;

该波形代表您希望应用程序在开始执行时使用的基线刺激。

假设,在执行期间,要观察改变从10至15的波形的频率和0至0.5的相移的影响。在波形发生器块,添加这些波形变种:

方(安培,10,0.5,占空比)见方(安培,15,0,占空比)见方(安培,15,0.5,占空比)

设置模型配置参数默认参数行为可调

set_param('ex_switch_waveform''DefaultParameterBehavior'“可调”

从模型中生成代码。

rtwbuild('ex_switch_waveform'
###启动构建过程:ex_switch_waveform ###代码生成的成功完成:ex_switch_waveform

生成的文件ex_switch_waveform.h定义了标准结构类型,对于模型存储可调参数的数据。该结构包含一个字段,其值表示活性波形。

文件=完整文件('ex_switch_waveform_grt_rtw''ex_switch_waveform.h');rtwdemodbtype(文件,'/ *参数(默认存储)* /'...“/ *实时模型数据结构* /”,1,0)
/ *参数(缺省存储)* /结构P_ex_switch_waveform_T_ {real_T WaveformGeneratorStimulus_Selec;/ *掩码参数:WaveformGeneratorStimulus_Selec *引用的由: ' /开关' * / real_T GainControlSystem_Gain;/ *表达式:3.5 *引用的由: '<根> /增益(控制系统)' * /};

文件ex_switch_waveform_data.c定义了一个全局结构变量并初始化字段的值来1。该值表示基线波形。

文件=完整文件('ex_switch_waveform_grt_rtw''ex_switch_waveform_data.c');rtwdemodbtype(文件,'/ *块参数(缺省存储)* /''};',1,1)
/ *块参数(缺省存储)* / P_ex_switch_waveform_T ex_switch_waveform_P = {/ *掩码参数:WaveformGeneratorStimulus_Selec *引用的由: ' /开关' * / 1.0,/ *表达式:3.5 *引用由:“<根> /增益(控制系统)” * / 3.5};

文件ex_switch_waveform.c定义了模型执行功能。该功能使用开关语句来确定活动波形的值,然后计算根级外港块的值,输出1

文件=完整文件('ex_switch_waveform_grt_rtw''ex_switch_waveform.c');rtwdemodbtype(文件,'开关((int32_T)'...'ex_switch_waveform_Y.Out1 =',1,1)
开关((int32_T)ex_switch_waveform_P.WaveformGeneratorStimulus_Selec){情况1:温度=温度 - 地板(温度)<= 0.5?2.71:-2.71;打破;情况2:温度= TEMP_0  - 地板(TEMP_0)<= 0.5?2.71:-2.71;打破;情况3:温度= TEMP_1  - 地板(TEMP_1)<= 0.5?2.71:-2.71;打破;默认值:温度= temp_2  - 地板(temp_2)<= 0.5? 2.71 : -2.71; break; } /* End of MultiPortSwitch: '/MultiportSwitch' */ /* Outport: '/Out1' incorporates: * Gain: '/Gain (Control System)' */ ex_switch_waveform_Y.Out1 = ex_switch_waveform_P.GainControlSystem_Gain * temp;

在代码执行期间,以改变活性波形,在全局参数结构调整结构字段的值。

相关话题