Главная страница

Simulink Инструмент моделирования динамических систем


Скачать 2.28 Mb.
НазваниеSimulink Инструмент моделирования динамических систем
АнкорSimulink Matlab.doc
Дата24.02.2018
Размер2.28 Mb.
Формат файлаdoc
Имя файлаSimulink Matlab.doc
ТипДокументы
#15867
страница14 из 15
1   ...   7   8   9   10   11   12   13   14   15

Evaluate – Вычисляемый. Выбирается, если параметр должен иметь числовое значение. В данное поле можно будет ввести выражение в соответствии с правилами языка MATLAB. Формат Evaluate позволяет также использовать числовую форму значения переменной в том случае, если тип элемента интерфейса выбран в виде флажка или раскрывающегося списка. Так, например, для раскрывающегося списка alpha|beta|gamma значение связанной со списком переменной будет равно 1, если в списке выбрано alpha, 2 – если в списке выбрано beta, и 3 – если в списке выбрано gamma. Для элемента интерфейса Checkbox вычисляемые значения будут равны 1 (при установленном флажке) и 0 (при снятом флажке).

  • Literal – Текстовый. Выбирается, если параметр должен быть строкой символов.

  • Ввести команды инициализации в графе Initialization commands. Команды инициализации представляют собой обычные команды на языке MATLAB и могут включать операторы и m-функции. Такие команды задают переменные, которые будут находиться в рабочей области маскированной подсистемы. Эти переменные доступны внутри подсистемы и могут быть использованы в качестве параметров блоков входящих в состав подсистемы, а также для создания пиктограммы подсистемы. Команды инициализации выполняются в следующих случаях:

    • При открытии окна модели.

    • При запуске модели на выполнение.

    • При выполнении команды Edit/Update diagram.

    • При вращении блока маскированной подсистемы (в этом случае команды инициализации обеспечивают перерисовку пиктограммы).

    • При автоматическом изменении пиктограммы, зависящей от параметров блока.

    В качестве примера маскированной подсистемы рассмотрим функциональный генератор. Схема модели генератора показана на рис. 9.10.2.



    Рис. 9.10.2 Функциональный генератор.



    Модель генератора обладает следующими возможностями:

    1. Значения амплитуды и частоты сигнала могут задаваться либо как параметры генератора в его окне диалога, либо от внешних источников через входные порты.

    2. Форма выходного сигнала генератора (треугольник, прямоугольник или синусоида) задается в окне диалога.

    Вид окна диалога, созданного с помощью редактора маски показан на рис. 9.10.3.



    Рис. 9.10.3 Окно параметров генератора

    Название параметра, идентификатор связанной с ним переменной, тип элемента интерфейса и формат параметра приведены в таблице 9.10.1.

    Таблица 9.10.1.

    N

    Prompt

    Variable

    Control Type

    Assiggment

    Назначение

    1

    Internal source of frequency signal

    Internal_freq

    Checkbox

    Evaluate

    Задает тип источника сигнала задания на частоту: внутренний или внешний.

    2

    Frequency (Hz)

    Freq

    Edit

    Evaluate

    Задает величину задания на частоту внутреннего источника

    3

    Wave form

    Wave_form

    Popup

    Evaluate

    Задает форму выходного сигнала: треугольник, прямоугольник или синусоида

    4

    Internal source of magnitude signal

    Internal_magn

    Checkbox

    Evaluate

    Задает тип источника сигнала задания на амплитуду: внутренний или внешний.

    5

    Magnitude

    Magn

    Edit

    Evaluate

    Задает величину задания на амплитуду внутреннего источника

    Окно редактора маски с открытой вкладкой Initialization, в котором создано окно параметров генератора, показано на рис. 9.10.4.



    Рис. 9.10.4 Окно редактора маски на этапе создания окна параметров

    Выбор типа источников задания на частоту (внутренний или внешний) осуществляется с помощью блока Selector1 (см. рис. 9.10.2). Для этого значение параметра Elements блока Selector1 задано как [(Internal_freq+1)]. Таким образом, если флажок параметра Internal source of frequency signal установлен, то числовое значение переменной Internal_freq равно 1 и на выход селектора проходит сигнал от внутреннего источника, если же флажок снят, то на выход селектора проходит сигнал от входного порта системы (т.е. от внешнего по отношению к генератору источника). Аналогичным образом с помощью переменной Internal_magn выполняется выбор источника сигнала задания на амплитуду.

    Выбор формы выходного сигнала выполняется также с помощью блока Selector. Треугольный, прямоугольный и синусоидальный сигналы объединяются в вектор с помощью блока Mux, а затем в зависимости от числового значения переменной Wave_form, блок Selector выполняет выбор нужного элемента входного вектора. Значение параметра Elements блока Selector задано как [Wave_form]. Таким образом, если, например, параметр генератора Wave form имеет значение Sine, то числовое значение переменной Wave_form равно 3, и, следовательно, на выход селектора проходит третий элемент входного вектора, т.е. синусоидальный сигнал.

    9.10.3. Создание пиктограммы подсистемы

    Пиктограмма подсистемы создается с помощью вкладки Icon (Пиктограмма) редактора маски. Окно редактора маски с открытой вкладкой Icon показано на рис. 9.10.5.



    Рис. 9.10.5 Вкладка Icon редактора маски

    Вкладка содержит следующие элементы:

    1. Drawing commands – Область ввода команд рисования. Команды рисования являются выражениями допустимыми в языке MATLAB.

    2. Icon frame – Список позволяющий выбрать способ отображения рамки пиктограммы:

      • Visible – Рамка видна.

      • Invisible – Рамка не видна.

    3. Icon transparency - Список позволяющий установить прозрачность пиктограммы:

      • Opaque – Пиктограмма не прозрачна.

      • Transparent– Пиктограмма прозрачна.

    4. Icon rotation - Список позволяющий задать возможность вращения пиктограммы:

      • Fixed – Положение пиктограммы фиксировано.

      • Rotates – Пиктограмма может вращаться вместе с блоком.

    5. Drawing coordinates – Список, задающий условия масштабирования пиктограммы.

      • Autoscale – Автоматическое масштабирование. Рисунок занимает максимально возможную площадь внутри пиктограммы.

      • Normalized – Нормализованное масштабирование. Координаты левого нижнего угла пиктограммы (0,0), координаты правого верхнего угла (1,1).

      • Pixel – Координаты рисунка задаются в пикселах.

    9.10.3.1. Команды вывода текста

    Для вывода текста могут использоваться следующие команды:

    • disp('text') или disp(variablename) – Вывод текста 'text' или значения символьной переменной variablename в центре пиктограммы.

    • text(x, y, 'text') или text(x, y, variablename) – Вывод текста 'text' или значения символьной переменной variablename начиная с позиции, заданной координатами x и y.

    • text(x, y, 'text', 'horizontalAlignment', halign,'verticalAlignment', valign)-Вывод текста 'text' в позиции заданной координатами x и y и с указанием способов выравнивания относительно этой позиции по вертикали или горизонтали. Параметр halign может принимать значения: 'left', 'right' или 'center'. Параметр valign может принимать значения: 'base', 'bottom' или 'middle'.

    • fprintf('text') или fprintf('format', variablename) – Форматированный вывод (по правилам языка C) текста 'text' или значения символьной переменной variablename в центре пиктограммы.

    • port_label(port_type, port_number, label) – Вывод на пиктограмме метки порта. Например, выражение port_label('input', 1, 'a') выводит на пиктограмме метку a первого входного порта.

    Для вывода текста в несколько строк допускается использование сочетания символов \n для перехода на новую строку.

    Примеры маскированных подсистем с различными вариантами текстовых надписей даны на рис. 9.10.6. Значения текстовых переменных заданы на вкладке Initialization в графе Initialization commands.



    Рис. 9.10.6. Варианты текстовых надписей на пиктограммах



    9.10.3.2. Команды построения графиков

    Для построения графиков на пиктограмме могут использоваться следующие команды:

    • plot(Y) – В том случае, если Y является вектором, то строится график по оси абсцисс которого откладывается значение индекса элемента, а по оси ординат значение самого элемента. В том случае если Y является матрицей – строятся линии для каждого столбца. По оси абсцисс в этом случае также откладывается значение индекса элемента.

    • plot(X1,Y1,X2,Y2,...) – Строится графики вида Y1(X1), Y2(X2) и т.д.

    Примеры маскированных подсистем с различными вариантами графиков представлены на рис. 9.10.7. Значения переменных заданы на вкладке Initialization в графе Initialization commands.



    Рис. 9.10.7. Варианты графиков на пиктограммах



    9.10.3.3. Команды отображения передаточных функций

    Для отображения на пиктограмме передаточной функции используются следующие команды:

    • dpoly(num, den) – Отображение дробно-рациональной передаточной функции (num – вектор коэффициентов числителя, den – вектор коэффициентов знаменателя). Оператор Лапласа будет отображен с помощью символа s.

    • dpoly(num, den, 'character') - Отображение дробно-рациональной передаточной функции. Оператор Лапласа будет отображен с помощью символа character.

    • dpoly(num, den, 'z') Отображение дискретной дробно-рациональной передаточной функции.

    • dpoly(num, den, 'z-') - Отображение дискретной дробно-рациональной передаточной функции от обратного аргумента.

    • droots(z, p, k) - Отображение Zpk-формы передаточной функции. Для рассматриваемого выражения может быть добавлен четвертый аргумент в виде 'z' или 'z-' для отображения дискретных передаточных функций.

    Примеры маскированных подсистем с различными вариантами отображения передаточных функций показаны на рис. 9.10.8.



    Рис. 9.10.8. Варианты отображения передаточных функций на пиктограммах



    9.10.3.4. Команды отображения рисунка из графического файла

    Для отображения на пиктограмме рисунка из графического файла используются следующие команды:

    • image(imread('filename')) – Отображение рисунка из файла с полным именем filename. Для правильной работы этой команды необходимо поместить рисунок в туже папку, где находится файл модели, и сделать эту папку рабочей. Допускается также совместно с именем файла указывать его полный путь.

    • image(a, [x, y, w, h]) – Отображение рисунка содержащегося в переменной a. Ширина и высота рисунка задаются параметрами w и h, соответственно. Левый нижний угол рисунка расположен в точке с координатами x,y. Считывание рисунка из файла может быть выполнено командой a = imread('filename')).

    • image(a, [x, y, w, h], rotation) – Команда аналогичная предыдущей, но позволяющая задавать поведение рисунка при вращении пиктограммы. Значение параметра rotation равное 'on' позволяет поворачивать рисунок вместе с пиктограммой подсистемы.

    • patch(x, y) – Отображение закрашенного многоугольника, координаты которого заданы векторами x и y. Цвет рисунка – черный.

    • patch(x, y, [r g b]) - Команда аналогичная предыдущей, но позволяющая задавать цвет рисунка. Параметры r,g и b задают соотношение красного, зеленого и синего цветов в рисунке. Значение параметров должно находиться в пределах от 0 до 1.

    Примеры маскированных подсистем с различными вариантами команд отображения рисунков показаны на рис. 9.10.9.



    Рис. 9.10.9. Варианты отображения рисунков на пиктограммах.



    9.10.3.5. Использование редактора пиктограмм iconedit

    Для создания пиктограмм можно также использовать редактор пиктограмм iconedit. Для его вызова используется команда:

    iconedit('modelname','Subsystem'),

    где modelname – имя файла модели (без расширения),

    Subsystem – имя подсистемы, для которой будет создаваться пиктограмма.

    Пиктограмма создается по точкам, расположение которых указывается с помощью мыши. Между собой точки соединяются прямыми линиями. Для того, чтобы начать новую линию необходимо нажать клавишу n на клавиатуре. Для отмены создания последней точки используется клавиша d. Выход из редактора с автоматическим обновлением пиктограммы осуществляется клавишей q. По завершении работы с редактором необходимо также закрыть его окно рисования. Кроме обновления пиктограммы завершение работы с редактором пиктограмм сопровождается выводом в командной строке MATLAB графической команды, обеспечивающей построение пиктограммы.

    Пример пиктограммы, созданный с помощью iconedit, его окно рисования, а также текст команды, обеспечивающей построение пиктограммы, показаны на рис. 9.10.10.



    Рис. 9.10.10 Создание пиктограммы с помощью iconedit



    9.10.3.6. Создание автоматически обновляемых пиктограмм

    Создание автоматически обновляемой пиктограммы рассмотрим на примере функционального генератора (рис. 9.10.2). Генератор может вырабатывать сигнал трех видов: треугольный, прямоугольный и синусоидальный. Вполне логично было бы создать такую пиктограмму, на которой отображалась бы форма выбранного на текущий момент сигнала. Это достаточно легко сделать, поскольку за выбор формы сигнала в рабочей области маски отвечает переменная Wave_form. Числовое значение этой переменной равное 1 соответствует треугольному сигналу на выходе генератора, значение равное 2 соответствует прямоугольному сигналу, и 3 – синусоидальному. Реализация поставленной задачи обеспечивается указанными ниже командами, которые необходимо ввести в графе Initialization commands редактора маски:

    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 введена команда, рисующая одну точку в левом нижнем углу пиктограммы:
    1   ...   7   8   9   10   11   12   13   14   15


  • написать администратору сайта