该示例示出如何生成代码,可用于在代码执行期间刺激波形之间进行切换。
对于一个波形发生器块,则无法使波形的参数,如幅度和相移,可调谐在生成的代码。相反,你可以生成代码,使您可以从一组波形选择积极的波形变种您在块中指定。在代码的执行,可以激活通过调整全球结构域的值的变体。
您必须设置模式配置参数默认参数行为至可调
。然后,默认情况下,在模型块参数出现在生成的代码可调谐的。这些参数可能会占用大量的内存大模型。
创建模型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;
在代码执行期间,以改变活性波形,在全局参数结构调整结构字段的值。