Материал: MATLAB 5. Анализ технических систем. Слепокуров Ю.С

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

w = [ ];

while length(v) > 0,

w = [w; v(1)]; I = find(abs(v - v(I)) < 1e-6); v(l) =[];I=[]; end

Для того чтобы прочитать комментарий к функции, следует воспользоваться командой helр<имя М-файла>.

Пример:

Отклик системы на команду help rmovel.

%RMOVEL удаляет из вектора v совпадающие элементы.

%Вызов функции:

%w = rmovel(v)

%Используемые функции:

%MATLAB: length, find

%ППП SNAE: нет

%Входные переменные:

%v - исходный вектор.

%Выходные переменные:

%w - вектор, не содержащий одинаковых элементов.

eval

Интерпретация текстовых срок

 

 

Синтаксис:

eval (' < выражение>')

х = eval('< выражение>')

Функция eval(t) означает, что текст, содержащийся в символьной переменной t = ‘< выражение>‘, будет восприниматься как команда, оператор или часть выражения.

х = eval(t) присваивает результат вычислений переменной х.

Пример:

Следующий фрагмент программы показывает, каким образом с помощью команды load можно загрузить 10 последовательно пронумерованных файлов с именами mydata.i:

fname = 'mydata'; for 1=1:10

eval(['load ', fname.int2str(i)]) end

Здесь int2str - функция для преобразования числового значения в строковое, записанная в файле int2str.m.

Пример:

Образовать последовательность магических матриц размера от 1 до 12 с

именами Ml, M2, ..., М12. for n= 1:12

eval(['M'num2str(n)'=magic(n)']) end

feval Вычисление функции

Синтаксис: feval('<имя_фyнкцuu>', х1, ..., хn)

[у 1,.... yk] = feval('<имя_функции>‘, х1, ..., хn)

Функция feval('<имя_фyнкцuu>', х1, ..., хn) передает аргументы (х1, ....

хn) вызываемой функции.

Функция [у 1,.... yk] = feval('<имя_функции>‘, х1, ..., хn) возвращает множество выходных переменных (у1, ..., yk).

Обычно функция feval применяется для вычисления функций, которые являются внешними, а их значение требуется перевычислять на каждом шаге в теле другой процедуры, например при интегрировании систем ОДУ или минимизации функции.

Пример:

Интегрирование дифференциального уравнения Ван дер Поля. Функция вычисления правой части уравнения Ван дер Поля оформляется в виде внешней функции вида

function xdot = vdpol(t, x)

xdot=[x(1) . * (1 - x(2) .^ 2) - x(2); x(1)]

Для интегрирования системы ОДУ методом Рунге - Кутта предназначена функция ode23, в теле которой присутствуют следующие операторы, которые используют функцию vdpol, передаваемую в качестве входного аргумента tpfun процедуры ode23:

s1 = feval(ypfun, t, у); s1 = s1(:);

s2 = feval(ypfun, t + h, у + h * s1); s2 = s2(:);

s3 = feval(ypfun, t + h/2, у + h * (s1+s2)/4); s3 = s3(:):

Тогда для интегрирования уравнения Ван дер Поля требуется следующий вызов функции ode23:

t0 = 0; tf = 20; % Задание интервала времени интегрирования хО = [0 0.25]'; % Задание начальных условий

[t, x] = ode23('vdpol', t0, tf, хО);

global

Определение глобальных переменных

 

 

Синтаксис:

global имя1 имя 2...

Функция global имя1 имя2 имяЗ определяет переменные с именами имя1, имя2, имяЗ как глобальные.

При использовании глобальных переменных следует соблюдать осторожность, поскольку их значения могут измениться при выполнении некоторой М-функции.

Как правило, каждая М-функция использует локальные переменные, которые изолированы от переменных других функций и переменных М- сценария. Однако если несколько функций и головная программа объявляют некоторую переменную глобальной, то в этом случае все модули используют одну и ту же переменную, которая должна иметь опцию global.

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

nargin, nargout Определение количества аргументов функции

Синтаксис: n = nargin n = nargout

Функции nargin и nargout позволяют определить количество входных и выходных переменных функции в процессе ее выполнения.

Пример:

В приведенном фрагменте процедуры fplot показано, как можно учесть необязательные входные и выходные переменные:

function [хО, уО] = fplot(fnamre, lims, npts, angi, subdiv)

%FPLOT Построение графика функции

%FPLOT(fnamre, lims, npts, angi, subdiv)

%Первые два аргумента являются обязательными;

%остальные - необязательные.

%FPLOT(...) строит график;

%[х, у] = FPLOT(...) возвращает массивы значений аргумента и функции if nargin < 5, subdiv = 20; end

if nargin < 4, angi = 10; end if nargin < 3, npts = 25; end if nargout = 0

plot(x, y) else

x0 = x;

y0 = y; end

input

Ввод информации пользователя

 

 

Синтаксис:

x = input(‗<приглашение>‘)

x = input(‗<приглашение>‘, ‗s‘)

x = input(‗<приглашение>‘) выводит на экран строку с приглашением и ожидает ввода выражения, допустимого в MATLAB (арифметическое выражение или имя встроенной функции). Если функция имеет несколько входных параметров, то выходной переменной x присваивается только первое значение.

x = input(‗<приглашение>‘, ‗s‘) возвращает строку, которая введена пользователем.

pause

Приостановка выполнения М-файла

 

 

Синтаксис: pause pause(n)

Функция pause приводит к паузе в работе системы и ожиданию нажатия любой клавиши для продолжения.

pause(n) приостанавливает работу системы на n секунд.

2. SIMULINK - ИНСТРУМЕНТ ВИЗУАЛЬНОГО МОДЕЛИРОВАНИЯ

2. 1. Общая характеристика. Демонстрация возможностей

Разработка моделей средствами SIMULINK (в дальнейшем S-моделей) основана на использовании технологии Drag-and-Drop (Перетащи и Оставь). В качестве «кирпичиков» для построения S-модели используются модули (или блоки), хранящиеся в библиотеке SIMULINK.

SIMULINK хорош тем, что, с одной стороны, обеспечивает пользователю доступ ко всем основным возможностям пакета MATLAB, а с другой является достаточно самостоятельной его компонентой, в том смысле, что при работе с ним не обязательно иметь навыки в использовании других инструментов, входящих в состав пакета.

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

Любая S-модель может иметь иерархическую структуру, то есть состоять из моделей более низкого уровня, причем число уровней иерархии практически не ограничено.

Наряду с другими параметрами моделирования пользователь может задавать способ изменения модельного времени (с постоянным или переменным шагом), а также условия окончания моделирования.

В ходе моделирования имеется возможность наблюдать за процессами, происходящими в системе. Для этого используются специальные «смотровые окна», входящие в состав библиотеки SIMULINK. Интересующие пользователя характеристики системы могут быть представлены как в числовой, так и в графической форме. Кроме того, существует возможность включения в состав модели средств анимации.

Еще одно важное достоинство SIM ULINK заключается в том, что он является открытой системой: состав библиотеки может быть пополнен пользователем за счет разработки собственных блоков.

Запуск SIMULINK можно произвести либо нажав соответствующую кнопку на панели меню командного окна, либо выбрав команду New Model в разделе File главного меню.

При запуске SIMULINK открываются два окна:

пустое окно untitled (заготовка для создания новой S-модели);

окно Library: simulink, содержащее перечень основных разделов библиотеки SIMULINK.

Оба окна имеют сходную структуру и содержат строку меню, панель инструментов, строки состояния (только MATLAB 5. 2) и рабочее поле.

Меню содержит следующие разделы: File — команды работы с mdl-файлами,

Edit — команды редактирования блок-диаграммы и опции для работы с библиотекой,

View — команды изменения формата окна (показать/убрать панель инструментов и строку состояния);

Simulation — команды управления моделированием,

Format — команды редактирования формата (т. е. внешнего облика) блоков диаграммы и блок-диаграммы в целом.

На панель инструментов выведены следующие команды меню

(рис. 2. 1):

Источник: https://studfile.net/preview/16565812/