Simulink (1087389), страница 19
Текст из файла (страница 19)
switch Wave_form
case 1
% треугольный сигнал
x=[-6.28 -4.71 -1.57 1.57 4.71 6.28 ];
y=[0 1 -1 1 -1 0];
case 2
% прямоугольный сигнал
x=[-6.28 -6.28 -3.14 -3.14 0 0 3.14 3.14 6.28 6.28 ];
y=[0 1 1 -1 -1 1 1 -1 -1 0];
case 3
% синусоидальный сигнал
x=(-314*2:314*2)/100;
y=sin(x);
end;
Примечание: Здесь и в дальнейшем в текстах на языке MATLAB включены комментарии на русском языке, которые необходимо удалить при составлении выражений в среде MATLAB.
В зависимости от значения переменной Wave_form векторам x и y присваиваются разные значения, благодаря чему команда построения графика plot(x,y); , указанная в графе Drawing commands строит разные графики.
Пример, показывающий все три варианта пиктограммы генератора, представлен на рис. 9.10.11. В примере, дополнительно, строятся оси координат с помощью следующих команд:
plot([-6.28 -6.28],[1.2 -1.2]);
plot([-6.28 8],[0 0]);
Также в графе Drawing commands введена команда, рисующая одну точку в левом нижнем углу пиктограммы:
plot([-10,-10],[-1.2 -1.2]);
С помощью этой команды достигается относительное смещение графиков вправо. Таким образом в левой части пиктограммы появляется дополнительное свободное место для отображения меток входных портов (управление портами маскированной подсистемы будет рассмотрено позже).
Рис. 9.10.11 Варианты пиктограммы функционального генератора.
9.10.4. Создание справки маскированной подсистемы
Для создания описания и справки маскированной подсистемы служит вкладка Documentation (Документация). Вкладка Documentation содержит две графы: Block Description (Описание блока) и Block Help (Справка по блоку). Внешний вид редактора маски с открытой вкладкой Documentation показан на рис. 9.10.12.
Рис. 9.10.12 Вкладка Documentation редактора маски
Текст, введенный в графу Block Description, отображается в верхней части окна диалога и предназначен для краткого описания блока. В графу Block Help вносятся команды обеспечивающие загрузку файлов справки, созданных пользователем, в справочную систему при нажатии клавиши Help в окне параметров. Эти команды описаны в документации по Simulink. Наиболее удобным форматом файла справки является htm (html) – формат. Вызов справочного htm-файла осуществляется командой вида:
Web (['File:///' which ('helpfile.htm')]); ,
где
helpfile.htm – имя файла справки.
Для правильной работы справочной системы необходимо, чтобы файл справки находился в той же папке, что и файл модели, и данная папка являлась рабочей. Допускается также вместе с именем файла указывать его полный путь.
Пример окна справки подсистемы показан на рис. 9.10.13.
Рис. 9.10.13.Пример окна справки подсистемы
10. Модель привода постоянного тока
10.1. Модель двигателя постоянного тока независимого возбуждения
Двигатель постоянного тока независимого возбуждения (рис. 10.1), описывается следующей системой дифференциальных и алгебраических уравнений (SI) :
где
u - напряжение на якорной обмотке двигателя,
e - электродвижущая сила (ЭДС) якоря,
i - ток якоря,
Ф - поток, создаваемый обмоткой возбуждения,
M - электромагнитный момент двигателя,
MС - момент сопротивления движению,
- скорость вращения вала двигателя,
R - активное сопротивление якорной цепи,
L - индуктивность якорной цепи,
J - суммарный момент инерции якоря и нагрузки,
С - коэффициент связи между скоростью и ЭДС,
СМ - коэффициент связи между током якоря и электромагнитным моментом.
С точки зрения будущей модели, входными воздействиями являются напряжения якоря u и момент сопротивления движению MС , выходными переменными - электромагнитный момент двигателя M и скорость вращения вала двигателя , а переменными состояния - переменные стоящие под знаком производной: ток якоря i и скорость вращения вала двигателя
. Остальные переменные, входящие в состав уравнений (1) - (4) являются параметрами, численные значения которых, необходимо будет задать при проведении расчетов.
Преобразуем дифференциальные уравнения (1) и (2) к явной форме Коши и выполним подстановку. Система уравнений примет вид:
Последнее уравнение есть отражение того факта, что переменная состояния является также и выходной переменной.
Введем "машинные" переменные. Входные переменные:
Выходные переменные:
Переменные состояния:
Тогда уравнения (5) - (8) примут вид:
Перепишем систему уравнений в матричной форме:
где
Отметим, что в получившейся системе уравнений входные переменные не участвуют в формировании выходных переменных (матрица обхода D - отсутствует) и, следовательно, параметр sizes.DirFeedthrough, определяемый при инициализации S-функции должен быть задан равным нулю.
10.2. S-функция для ДПТ НВ
Для создания S-функции для ДПТ НВ за основу взят файл примера модели непрерывной системы csfunc.m . Принципиальные отличия нового файла от образца сводятся к следующему:
-
Для расчета матриц уравнений пространства состояния A, В и С используются параметры передаваемые в S-функцию через окно диалога блока S-function. Эти параметры (L,R,J,Cm,Cw,Fi) записываются в конце списка параметров в заголовке S-функции : function [sys,x0,str,ts] = dpt_sfunc_1(t,x,u,flag,L,R,J,Cm,Cw,Fi)
-
Для исключения одинаковых (повторяющихся) вычислений расчет матриц A, В и С выполняется в методе mdlInitializeSizes. Для этого параметры блока (L,R,J,Cm,Cw,Fi) передаются в метод mdlInitializeSizes через его заголовок: [sys,x0,str,ts] = mdlInitializeSizes(L,R,J,Cm,Cw,Fi) Поскольку инициализация модели происходит лишь один раз, то и расчет матриц A, В и С будет выполнен также один раз, что значительно повысит скорость моделирования.
-
Передача рассчитанных в mdlInitializeSizes матриц выполняется с помощью глобальных переменных. Для этого объявления вида: global A B C; выполнены в теле S-функции, методе mdlInitializeSizes (где выполняется расчет этих матриц), а также методах mdlDerivatives и mdlOutputs (где эти матрицы используются для расчетов).
-
Поскольку в уравнения пространства-состояния матрица D отсутствует (входные переменные не участвуют в формировании выходных переменных), то параметр sizes.DirFeedthrough в методе mdlInitializeSizes задан равным нулю.
Ниже приводится текст S-функции dpt_sfunc_1 (файл dpt_sfunc_1.m):
function [sys,x0,str,ts] = dpt_sfunc_1(t,x,u,flag,L,R,J,Cm,Cw,Fi)
% DPT_SFUNC_1 Пример S-функции для моделирования двигателя постоянного тока
% независимого возбуждения.
%
% В примере выполняется моделирование с помощью уравнений
% пространства-состояния:
% x' = Ax + Bu
% y = Cx + Du
%
% Copyright 2002
% $Revision: 1.8
%
%
% Параметры S-функции, передаваемые через окно диалога блока S-function:
%
% L - Индуктивность цепи якоря
% R - Активное сопротивление цепи якоря
% J - Момент инерции
% Cm - Коэффициент связи между моментом и током
% Cw - Коэффициент связи между потоком и скоростью вращения вала
% Fi - Поток, создаваемый обмоткой возбуждения
%
global A B C; % Объявление глобальными переменных, необходимых для
% расчетов внутри функций mdlDerivatives и mdlOutputs .
% Сами матрицы расчитываются в методе mdlInitializeSizes .
switch flag, % В зависимости от значения переменной flag происходит
% вызов того или иного метода:
%===============%