Моделирование системы телемеханического управления тяговыми подстанциями. Нормативные документы для проектирования систем телемеханики, страница 17

Надпись:  
Рис. 22. Буфер данных
а – блок управления записью-чтением очереди, б – внешний вид подсистемы очередь         Буфер (buffer). Буфер эффективен для преобразования входного потока в наборы данных, а также как средство хранения этих данных. Рассмотрим применение буфера для выделения из потока пронумерованных байт данных с фиксированными номерами. На рис. 22 приведено изображение  рассматриваемой подсистемы Buf. Пусть система предназначена для выборки из входного потока наборов данных (D_inp) по их номерам (Indx). Для простоты рассмотрен случай, когда требуется выбрать два первых набора. Внутренняя схема подсистемы (рис.23) содержит два компаратора Compare1 и Compare 2, которые выбирают требуемые наборы данных. При срабатывании соответствующего компаратора разрешается работа контролируемого им буфера, в который и записываются выбранные данные. Записанные в буферы данные сохраняются для обеспечения их дальнейшей обработки, например, объединения в один массив блоком cat.

Рис. 23. Набор буферов для хранения данных

Надпись:  Рис. 24. Enable-подсистема с одним буфером данных

Элементы Bufer_1 и Bufer_2 представляют собой Enable-подсистемы (рис. 24) и содержат управляющий вход Enable, входной In1 и выходной Out1 порты, а также собственно буфер Buffer. Окна настройки буфера и его портов приведены на рис. 25.         Настройка заключается в том, что выходные данные буфера объявляются доступными и после завершения интервала времени, в котором Enable-подсистема была активна. Их значение будет определяться теми данными, которые были введены в буфер в последний момент активности подсистемы (held). Размер буфера принят равным единице. Поскольку в условиях моделирования процессов, идущих с различной тактовой частотой и имеющих различное дискретное время, контролирование заполнения буфера с размером больше единицы затруднительно. Исследование буфера можно выполнить на основе файла buffer_.mdl, находящегося в папке подготовительных материалов проекта.

Рис. 25. Настройка буфера и его портов в Enable-подсистеме

а – настройка выходного порта подсистемы, б – настройка параметров порта,

 в – настройка управляющего входа подсистемы

Надпись:  
Рис. 26. Блоки, определяемые пользователем
Функции Matlab.         Функции Matlab используются при отсутствии требуемых готовых блоков в библиотеке Simulink и других библиотеках. Для применения функций пользователя предусмотрены шаблоны Fcn, и MATLAB Fcn и Embedded MATLAB Function в библиотеке раздела User-Defined Functions (рис.26). Схема для проверки работы блоков имеется в папке подготовительных материалов для курсового проекта (файл Fcns.mdl).

В рассматриваемой системе программирования различают два вида файлов, содержащих программные коды. Модель созданная в среде Simulink, хранится в S-файле. Модель, написанная на языке MATLAB, хранится в M-файле.

Рассмотрим применение блоков, определяемых пользователем для взаимного преобразования бинарного и десятичного представления чисел. Такая задача возникает при формировании контрольной суммы кадра передатчика и при проверке правильности контрольной суммы в приемнике.

Применение блока Fcn в рассмотренном случае нецелесообразно. Поскольку он не сможет возвратить векторную величину (бинарную последовательность).

Блок MATLAB Fcn. Применение данного блока требует, что бы кроме указания самой используемой функции и передачи ей параметров, была указана размерность возвращаемого результата. В общем случае размерность может быть не известна заранее, а вычисляется в процессе моделирования.

Одно из решений заключается в применении Enable-блоков. В этом случае при передаче управления такому блоку размерность известна. На рис. 27 приведен фрагмент модели, реализующий рассмотренное решение. В блоке Fcn  (рис. 27 г) вычисляется размерность ожидаемого результата преобразования

Expession =  ceil(1.4427*log(u+eps)), где     ceil    – функция вычисления целого,

u        – значение величины, передаваемой на вход блока,

eps     - точность вычисления в функциях MATLAB,

log     - натуральный логарифм.