II Всероссийская конференция пользователей MATLAB, 25-26 мая 2004 года >>
На первую страницу
Рубрика Matlab&Toolboxes
Российские MATLAB-разработки
Вход
Раздел "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 переводится в рад/с).

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

 


О получении локальных копий сайтов
  Всероссийская научная конференция "Проектирование научных и инженерных приложений в среде MATLAB" (май 2002 г.)
На первую страницу \ Сотрудничество \ MathWorks \ SoftLine \ Exponenta.ru \ Exponenta Pro   
E-mail:    
  Информация на сайте была обновлена 11.05.2004 Copyright 2001-2004 SoftLine Co 
Наши баннеры