MATLAB.Exponenta
–Û·Ë͇ Matlab&Toolboxes

Simulink

Советы пользователям Simulink от ведущего раздела

Полный список советов

10. Изменение параметров блока в процессе расчета

В некоторых случаях требуется, чтобы параметр блока задаваемый в окне его свойств, изменялся в процессе расчета (в том числе и по сигналу вырабатываемому другим блоком данной модели). Например, необходимо, чтобы частота источника синусоидального сигнала изменялась в соответствии с выходным сигналом какого-либо блока. Пример такой модели показан на рис. 10.1.

Рис 10.1. Расчетная модель

В рассматриваемой модели блоки Signal Generator, Constant и Sum формируют сигнал задания на частоту блока Sine Wave. Данный сигнал на каждом шаге расчета с помощью S-функции преобразуется в значение параметра Frequency блока Sine Wave. Результаты моделирования представлены на рис. 10.2. На верхнем графике показан выходной сигнал синусоидального источника, на нижнем – задание на частоту источника.

Рис 10.2. Результаты расчета

Текст S-функции приведен ниже:

function [sys,x0,str,ts] = Var_param_1(t,x,u,flag)
%
switch flag,
case 0,
[sys,x0,str,ts]=mdlInitializeSizes;
case 3,
sys=mdlOutputs(t,x,u);
case {1,2,4,9}
sys=[]; % do nothing
otherwise
error(['Unhandled flag = ',num2str(flag)]);
end
%
function [sys,x0,str,ts]=mdlInitializeSizes
%
sizes = simsizes;
sizes.NumContStates = 0;
sizes.NumDiscStates = 0;
sizes.NumOutputs = 0;
sizes.NumInputs = 1;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1;
sys = simsizes(sizes);
x0 = [];
str = [];
ts = [0 0];
%
function sys=mdlOutputs(t,x,u)
set_param('FAQ_Var_param_1/Sine Wave','Frequency',num2str(u*2*3.1415926))
%
sys = [];

Задачу установки нового значения частоты на каждом шаге расчета решает функция set_param, в параметрах которой указаны имя файла модели и имя блока, а также название изменяемого параметра блока. Функция num2str преобразует числовое значение параметра в символьную строку. Переменой u обозначен входной сигнал S-функции (значение частоты в Гц с помощью множителя 2*3.1415926 переводится в рад/с).

[Скачать пример]

 


Поиск по сайту:

Система Orphus

Яндекс.Метрика