При определенных обстоятельствах вы не можете сконфигурировать параметр Фазы блока Sine Wave, чтобы появиться в сгенерированном коде как настраиваемая глобальная переменная (для получения дополнительной информации, смотрите страницу с описанием блока). Этот пример показывает, как сгенерировать код так, чтобы можно было настроить фазу во время выполнения.
Создайте модель ex_phase_tunable
при помощи блока Digital Clock.
open_system('ex_phase_tunable')
Установите поведение параметра По умолчанию на Tunable
так, чтобы параметры блока Sine Wave появились в сгенерированном коде как настраиваемые поля глобальной структуры параметра.
set_param('ex_phase_tunable','DefaultParameterBehavior','Tunable')
Сгенерируйте код из модели.
rtwbuild('ex_phase_tunable')
### Starting build procedure for model: ex_phase_tunable ### Successful completion of code generation for model: ex_phase_tunable
В отчете генерации кода просмотрите файл ex_phase_tunable.c
. Алгоритм кода в функции модели step
вычисляет блок Sine Wave вывод. Параметры блока, включая Фазу, появляются в коде как настраиваемые поля структуры.
file = fullfile('ex_phase_tunable_grt_rtw','ex_phase_tunable.c'); rtwdemodbtype(file,'/* Outport: ''<Root>/Out1'' incorporates:',... 'ex_phase_tunable_P.SineWave_Bias;',1,1)
/* Outport: '<Root>/Out1' incorporates: * DigitalClock: '<Root>/Digital Clock' * Sin: '<Root>/Sine Wave' */ ex_phase_tunable_Y.Out1 = sin(ex_phase_tunable_P.SineWave_Freq * (((ex_phase_tunable_M->Timing.clockTick1+ ex_phase_tunable_M->Timing.clockTickH1* 4294967296.0)) * 1.0) + ex_phase_tunable_P.SineWave_Phase) * ex_phase_tunable_P.SineWave_Amp + ex_phase_tunable_P.SineWave_Bias;
Во время выполнения кода можно присвоить новые значения полю структуры, которое соответствует параметру Фазы.