Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Модель гибридной системы

Введение | Этапы моделирования | Callback-методы S-функции | Создание S-функций на языке MATLAB | Простейшая S-функция | Модель непрерывной системы | Математическое описание ДПТ НВ | Пример S-функции для ДПТ НВ | Создание S-функций на языке C с помощью S-Function Builder | Your machine has a Lcc C compiler located at |


Читайте также:
  1. A)используется для вызова всех функций системы
  2. D13.0 Доброкачественные новообразования других и неточно обозначенных отделов пищеварительной системы
  3. G 09 Последствия воспалительных болезней центральной нервной системы
  4. I. Общая характеристика и современное состояние уголовно-исполнительной системы (по состоянию на 2012 год).
  5. I.4. Состояния системы. Уравнения состояния системы.
  6. II. Административно-командная патерналистская модель СП
  7. II. ПОРЯДОК ПРИМЕНЕНИЯ НАКОПИТЕЛЬНОЙ БАЛЛЬНО-РЕЙТИНГОВОЙ СИСТЕМЫ В УЧЕБНОМ ПРОЦЕССЕ

Модель гибридной системы (комбинации непрерывной и дискретной системы) дана в файле mixedm.m. Рассматриваемая S-функция моделирует систему, состоящую из последовательно включенных интегратора (1/s) и блока задержки (1/z). Особенность S-функции для гибридной системы в том, что вызов callback-методов для расчета дискретной части системы выполняется в те же моменты времени, что и для непрерывной ее части, поэтому пользователь, при написании S-функции, должен предусмотреть проверку правильности вызова callback-методов рассчитывающих дискретную часть системы.
Ниже приведен текст этой S-функции.

S-функция dsfunc:

function [sys,x0,str,ts] = mixedm(t,x,u,flag) % MIXEDM Пример S-функции. S-функция моделирует систему, состоящую из% последовательно включенных интегратора (1/s) и блока задержки (1/z).%% Шаблон для создания S-функции - файл sfuntmpl.m. %% Copyright 1990-2001 The MathWorks, Inc.% $Revision: 1.27 $% Авторский перевод комментариев: Черных И.В.% Шаг модельного времени и смещение для дискретной части системы: dperiod = 1; doffset = 0;switch flag % В зависимости от значения переменной flag происходит % вызов того или иного метода:%===============%% Инициализация %%===============% case 0 [sys,x0,str,ts]=mdlInitializeSizes(dperiod,doffset); %====================%% Расчет производных %%====================% case 1 sys=mdlDerivatives(t,x,u); %============================================================%% Расчет значений вектора состояний дискретной части системы %%============================================================% case 2, sys=mdlUpdate(t,x,u,dperiod,doffset); %===========================================%% Расчет значений вектора выходных сигналов %%===========================================% case 3 sys=mdlOutputs(t,x,u,doffset,dperiod); %====================%% Завершение расчета %%====================% case 9 sys = []; %======================================%% Неизвестное значение переменной flag %%======================================% otherwise error(['unhandled flag = ',num2str(flag)]); end % Окончание mixedm %===============================================================%% mdlInitializeSizes %% Функция инициализации %% Расчет начальных условий, значений вектора модельного времени,%% размерности матриц %%===============================================================% function [sys,x0,str,ts]=mdlInitializeSizes(dperiod,doffset)sizes = simsizes;sizes.NumContStates = 1; % Число непрерывных переменных состояния. sizes.NumDiscStates = 1; % Число дискретных переменных состояния. sizes.NumOutputs = 1; % Число выходных переменных (размерность выходного % вектора). sizes.NumInputs = 1; % Число входных переменных (размерность входного % вектора). sizes.DirFeedthrough = 0; % Прямой проход. Прохода входного сигнала на выход % нет. sizes.NumSampleTimes = 2; % Размерность вектора шагов модельного времени. % Шаги модельного времени задаются для непрерывной % и для дискретной частей системы. sys = simsizes(sizes);x0 = zeros(2,1); % Задание вектора начальных значений переменных % состояния. % Начальные условия нулевые str = []; % Параметр заразервирован для будущего % использования. ts = [0 0]; % Шаг модельного времени для непрерывной части % системы. dperiod doffset]; % Шаг модельного времени для дискретной части % системы.% Окончание mdlInitializeSizes %%========================================================================%% mdlDerivatives %% Функция для расчета значений производных вектора состояния непрерывной %% части системы %%========================================================================% function sys=mdlDerivatives(t,x,u)sys = u; % Окончание mdlDerivatives %=========================================================================%% mdlUpdate %% Функция для расчета значений вектора состояния дискретной части системы %%=========================================================================%% function sys=mdlUpdate(t,x,u,dperiod,doffset) % Расчет значения переменной состояния дискретной части системы% выполняется в соостветствии с дискретным шагом расчета% (погрешность по времени выбрана равной 1e-15). if abs(round((t - doffset)/dperiod) - (t - doffset)/dperiod) < 1e-15 sys = x(1);else sys = [];end % Окончание mdlUpdate %%========================================================% % mdlOutputs %% Функция для расчета значений вектора выходных сигналов %%========================================================% % function sys=mdlOutputs(t,x,u,doffset,dperiod) % Расчет значения выходного сигнала системы% выполняется в соостветствии с дискретным шагом расчета% (погрешность по времени выбрана равной 1e-15).% Если условие, заданное оператором if истинно, то выходной сигнал блока% изменяется. В противном случае выходной сигнал остается равным значению% на предыдущем шаге.% if abs(round((t - doffset)/dperiod) - (t - doffset)/dperiod) < 1e-15 sys = x(2);else sys = [];end % Окончание mdlOutputs

Пример модели с S-функцией mixedm приведен на рис.16.7.

Рис. 16.7 Модель с S-функцией mixedm

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


Дата добавления: 2015-09-05; просмотров: 65 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Модель дискретнойной системы| Модель дискретной системы с переменным шагом расчета

mybiblioteka.su - 2015-2024 год. (0.006 сек.)