Как построить ачх в матлабе

от admin

3.2. Построение частотных характеристик на основе

Рассмотрим передаточную функцию апериодического звена первого порядка с единичными коэффициентами, имеющего передаточную функцию вида . Выведем и построим различные частотные характеристики для данного звена.

Перейдем от записи в операционной форме к частотному представлению:

. (28)

Получим выражения для вещественной и мнимой частотных характеристик (ВЧХ и МЧХ). Для этого избавимся от комплексного числа в знаменателе при помощи умножения числителя и знаменателя дроби на комплексно-сопряженное знаменателю:

.

Таким образом, ВЧХ имеет вид

.

Соответственно, МЧХ представляется как

.

Получим выражения для АЧХ и ФЧХ согласно (23) – (24):

,

.

Логарифмическая амплитудно-частотная характеристика звена

АЧХ и ФЧХ апериодического звена представлены на рис. 16 и рис. 17. АФЧХ апериодического звена представлена на рис. 18.

Рис. 16. АЧХ апериодического звена

Рис. 17. ФЧХ апериодического звена

Рис. 18. АФЧХ апериодического звена

Общий вид ЛАЧХ и ЛФЧХ для различных типовых динамических звеньев приведен в табл. 7.

ЛАЧХ и ЛФЧХ типовых динамических звеньев

Название звена и его передаточная функция

Вид ЛАЧХ и ЛФЧХ

Усилительное

Продолжение табл. 7

Название звена и его передаточная функция

Вид ЛАЧХ и ЛФЧХ

Апериодическое звено 1-го порядка (инерционное)

Продолжение табл. 7

Название звена и его передаточная функция

Вид ЛАЧХ и ЛФЧХ

Форсирующее звено 1-го порядка

Апериодическое звено 2-го порядка

Продолжение табл. 7

Название звена и его передаточная функция

Вид ЛАЧХ и ЛФЧХ

,

Продолжение табл. 7

Название звена и его передаточная функция

Вид ЛАЧХ и ЛФЧХ

Форсирующее звено 2-го порядка

;

Дифференцирующее реальное (дифференцирующее звено с замедлением)

Окончание табл. 7

Название звена и его передаточная функция

Вид ЛАЧХ и ЛФЧХ

Изодромное (пропорционально-интегральное звено)

Интегрирующее звено с замедлением

3.2. Построение частотных характеристик в среде MatLab

Для построения графиков АФЧХ и логарифмических функций в MatLab используются следующие функции:

nyquist(w) – АФЧХ от передаточной функцииw, заданной с помощью функцииtf;

bode(w) – ЛАЧХ и ЛФЧХ от передаточной функции w, заданной с помощью функцииtf.

Пример команды для построения частотных характеристик апериодического звена первого порядка (k=1,T=1):

figure; bode(w); grid

Результатом выполнения команд приведен на рис. 19. Графики будут построены в двух независимых окнах, на каждом графике нанесена сетка. По умолчанию АФЧХ строится как для положительных, так и для отрицательных значений циклической частоты. Чтобы построить АФЧХ только для положительных значений частоты, нужно сделать щелчок правой кнопкой мыши по графику АФЧХ и выбрать пункт командного меню Show – Negative frequencies (снять галочку).

Рис. 19. Частотные характеристик в среде MatLab

Второй способ построения частотных характеристик предполагает использование приложения LTIview, входящее в состав пакетаMatLab. Синтаксис команды построения следующий:

В появившемся окне следует выбрать пункт меню Edit – Plot Configuration – Bode (Nyquist).

Для копирования графика в отчет (например, выполненный в редакторе MicrosoftWord) необходимо, находясь в окне рисунка, выбрать следующие пункты меню:Edit–CopyFigure. Затем в редактореMicrosoftWordнеобходимо поставить курсор в нужное место и выбрать пункт Правка – Вставить (Ctrl+V). Если графики построены с помощьюLTIViewer, необходимо сначала выполнить командуFile–PrinttoFigure.

MATLAB 8.0 (R2012b): создание, обработка и фильтрация сигналов, Signal Processing Toolbox

Окно справки по пакету расширения Signal Processing Toolbox системы MATLAB 8.0 представлено на рис. 1 на фоне рабочего окна самой системы с открытой вкладкой каталога пакетов расширения APPS. Одна из кнопок в панели инструментов Signal Analysis дает доступ к браузеру сигналов, фильтров и спектров, показанному в правой части окна справки. В левой части этого окна указаны наименования разделов пакета Signal Processing Toolbox.

Окно справки по пакету расширения Signal Processing Toolbox

Рис. 1. Окно справки по пакету расширения Signal Processing Toolbox

Как видно на рис. 1, пакет Signal Processing Toolbox состоит из следующих разделов:

  • Waveforms — создание сигналов с различной формой и разными законами модуляции;
  • Convolution and Correlation — свертка и корреляция сигналов ;
  • Transform — преобразование сигналов ;
  • Analog and Digital Filters — аналоговые и цифровые фильтры ;
  • Spectral Analysis — спектральный анализ.

Создание сигналов

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

MATLAB 8.0 со своими встроенными средствами позволяет создавать множество сигналов. Например, простейшим является синусоидальный сигнал:

s = A sin(2π ft +j),

где A — амплитуда; f — частота; j — фаза сигнала. Задав эти параметры ( t — как вектор отсчетов сигнала, число элементов которого определяет число отсчетов сигнала):

можно легко построить график сигнала s ( t ):

Он показан на рис. 2 в графическом окне системы MATLAB. Такое построение осуществляется в командной строке, на что указывает приглашение к вводу >>. В командном окне также показано окно с краткими данными о системе MATLAB 8.0 (R2012b). Согласно этим данным система выпущена на рынок в 2012 году.

Окно командного режима

Рис. 2. Окно командного режима

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

Окно с подокнами меандра, апериодического треугольного импульса, пилообразного периодического импульса и периодического треугольного импульса

Рис. 3. Окно с подокнами меандра, апериодического треугольного импульса, пилообразного периодического импульса и периодического треугольного импульса

Представленная программа (она задается в редакторе) дает примеры создания и графической визуализации четырех типов простых сигналов (меандра, одиночного треугольного импульса, пилообразного импульса и симметричного треугольного импульса) (рис. 3):

Временные диаграммы четырех сигналов, относящихся к функциям Гаусса

Рис. 4. Временные диаграммы четырех сигналов, относящихся к функциям Гаусса

Важное значение имеет функция sinc (или sin(π t )/π t при t ≠ 0 и 1 при t = 0). Функция sinc( t ) представляет обратное преобразование Фурье для прямоугольного импульса с высотой 1 и шириной 2π:

Кроме того, эту функцию можно использовать как базисную для восстановления любого сигнала g ( t ) по его отсчетам, если спектр сигнала ограничен условием –p < w < p:

Получение непрерывной кривой, проходящей через точки (отсчеты) произвольного сигнала

Рис. 5. Получение непрерывной кривой, проходящей через точки (отсчеты) произвольного сигнала

Это положение, вытекающее из известной теоремы Котельникова, иллюстрирует приведенный ниже пример для десяти случайных точек сигнала (рис. 5):

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

Сложные модулированные сигналы

Рис. 6. Сложные модулированные сигналы

Сложные модулированные сигналы показаны на рис. 6, здесь chirp — период частотно-модулированного сигнала, sawtooth — сигнал с частотной модуляцией по треугольному закону, pulstrain — скачок с линейным спадом, pulstran gauspuls — последовательность импульсов Гаусса с убывающей амплитудой. Для создания этих четырех модулированных сигналов служит программа:

формирует выборку (дискретные значения) косинусоидального сигнала с частотой от f 0 в начальный момент времени t до f 1 в конечный момент времени t 1. Звук такого сигнала напоминает визг, откуда и его название (chirp). По умолчанию t = 0, f 0 = 0 и f 1 = 100. Необязательный параметр phi (по умолчанию 0) задает начальную фазу сигнала. Другой необязательный параметр — method — задает закон изменения частоты: linear — линейный закон (по умолчанию), quadratic — квадратичный и logarithmic — логарифмический.

Функция strips позволяет детально (по частям с длительностью 0,25 с) рассмотреть первые два сложных сигнала, например частотно-модулированного от функции vco. В разделе модуляция/демодуляция есть пример с GUI (рис. 7), иллюстрирующий такие сигналы с различными видами модуляции.

Визуализация модулированных сигналов

Рис. 7. Визуализация модулированных сигналов

Свертка и корреляция сигналов

Пусть имеется две последовательности, представленные векторами a и b . Сверткой называют одномерный массив, вычисляемый следующим образом:

При записи этого выражения учтено, что нумерация индексов массивов в MATLAB идет с единицы (1). Свертка реализуется функцией conv(a,b):

Операцию свертки часто используют для вычисления сигнала на выходе линейной системы y по сигналу на входе x при известной импульсной характеристике системы h :

Эту операцию можно использовать для осуществления простейшей фильтрации сигнала:

Для двух векторов x и y с длиной m и n определена операция свертки:

Линейная и циклическая свертка

Рис. 8. Линейная и циклическая свертка

Обратная свертке функция — это [q,r] = deconv(z,x). Она фактически определяет импульсную характеристику фильтра (рис. 8):

Очистка от шума линейно-нарастающего сигнала

Рис. 9. Очистка от шума линейно-нарастающего сигнала

Свертку часто применяют для очистки сигналов от шума (рис. 9):

Для двумерных массивов также существует функция свертки: Z = conv2(X,Y) и Z = conv2(X,Y,‘option’). Возможна и многомерная свертка — функция convn. Новая функция mscohere строит график зависимости квадрата модуля функции когерентности от частоты (рис. 10):

Зависимость квадрата модуля функции когерентности от частоты

Рис. 10. Зависимость квадрата модуля функции когерентности от частоты

Следующая программа строит отсчеты двух сигналов с задержкой на три отсчета — треугольного сигнала и шума (рис. 11):

Два коррелированных сигнала — треугольный и шума

Рис. 11. Два коррелированных сигнала — треугольный и шума

Кросс-корреляцию этих сигналов обеспечивает программа (рис. 12):

Кросс-корреляция сигналов

Рис. 12. Кросс-корреляция сигналов

Преобразование сигналов

В MATLAB всегда много внимания уделялось различным преобразованиям сигнала [2–5], в частности спектральным. Спектр дискретного сигнала является периодическим, и прямое дискретное преобразование Фурье (ДПФ или Discrete Fourier Transform, DFT) определяется выражением:

Для предотвращения растекания (размазывания) спектра дискретных сигналов часто используются окна. Для этого достаточно в формуле прямого ДПФ под знаком суммы ввести еще один множитель — W ( k ). Соответственно, обратное дискретное преобразование Фурье задается выражением:

ДПФ легко обеспечивает восстановление непрерывных периодических сигналов с ограниченным спектром. Для этого нужно номер отсчета k поменять на нормированное время t / T . Тогда формула восстановления при четном числе отсчетов будет иметь вид:

Для получения полосы частот сигнала от 0 до π/ T приходится смещать нумерацию отсчетов. При нечетном числе отсчетов суммирование ведется при n , меняющемся от –( N –1)/2 до ( N –1)/2. Коэффициенты X ·( n ) с отрицательными номерами вычисляют из соотношения симметрии.

Частотным спектром случайного процесса является преобразование Фурье от корреляционной функции случайного процесса Rx :

В радиоэлектронике особый интерес представляет спектральная оценка сильно зашумленных сигналов. Для таких сигналов применяются два подхода: непараметрический — использующий только информацию, извлеченную из сигнала (реализован в методах периодограмм и Уэлча), и параметрический — предполагающий наличие некоторой статистической модели сигналов, параметры которой подлежат определению. Реализовано восемь классов алгоритмовспектрального анализа : Periodogram, Welch, MTM (Thomson multitaper method), Burg, Covariance, Modified Covariance, Yule-Walker, MUSIC (Multiple Signal Classification) и Eigenvector. Их подробное описание дано в [4–6].

Периодограммы, спектрограммы и их применение

Обычный спектр строится методом быстрого преобразования Фурье (БПФ, FFT) часто с применением временного окна, предотвращающего разрывы сигнала на концах интервала анализа спектра. Например, так реализованы периодограммы. Для построения спектрограмм используется разбивка интервала анализа на короткие окна. Короткое окно пробегает общий интервал анализа, и в каждом частичном интервале строится свой спектр. Их наложение дает спектрограмму, определенную в пространстве «уровень – частота – время» (на плоскости уровень представляется цветом), тогда как обычный спектр определен в плоскости «уровень – частота».

Построение спектрограмм сигналов, модулированных по различным законам: логарифмическому, линейному, треугольному и синусоидальному

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

На рис. 13 показано построение четырех спектрограмм для сигналов с различными законами частотной модуляции. Нетрудно увидеть, что во всех случаях закон модуляции отчетливо распознается и позволяет судить об области частот, в которой действует сигнал (chirp или vco). Этот рисунок строит следующая программа:

Сравнение периодограммы и спектрограммы сигнала sinc(t)

Рис. 14. Сравнение периодограммы и спектрограммы сигнала sinc(t)

Из сказанного может сложиться неверное представление о явных преимуществах спектрограмм по сравнению с периодограммами (функция psd). То, что это далеко не так, показывает программа для сигнала sinc (рис. 14):

Эта программа строит периодограмму и спектрограмму функции sinc(t). Теперь беспомощной оказывается спектрограмма, по которой ничего нельзя сказать о спектре сигнала и области его частот. А периодограмма более информативна: она указывает на вид спектра и область занимаемых им частот. В частности, хорошо видно постоянство спектра в начальной области частот, присущее этой функции. Правда, вид спектрограммы сильно зависит от типа короткого окна: в данном случае задано окно Блэкмана (Blackman). Вид периодограммы также зависит от выбора окна, но глобального.

Чем сложнее сигнал, тем более детальной и эффектной оказывается спектрограмма. На рис. 15 показан пример модуляции/демодуляции с построением спектрограммы сложного звукового сигнала. Кстати, оригинальный сигнал и сигнал, прошедший модуляцию/демодуляцию, можно воспроизвести на компьютере, оборудованном звуковой картой и акустической системой. Это можно сделать при различных видах модуляции.

Спектрограмма сложного акустического сигнала с амплитудной модуляцией

Рис. 15. Спектрограмма сложного акустического сигнала с амплитудной модуляцией

Похожие на спектрограммы картинки дают вейвлетограммы и скайлеграммы, получаемые при вейвлет-анализе сигналов [7]. Порою они более информативны. Но вейвлеты в Signal Ptocessing Toolbox не реализованы: они описаны и используются в отдельном пакете расширения Wavelet Toolbox.

Для выполнения дискретного преобразования Фурье различными методами служит GUI-окно Discrete Fourier Transform (рис. 16).

Спектр пилообразного сигнала в окне дискретного Фурье-преобразования

Рис. 16. Спектр пилообразного сигнала в окне дискретного Фурье-преобразования

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

Оконные функции и браузер окон

Учитывая важную роль окон, в Signal Processing Toolbox входит 21 N ‑точечное окно ( N — целое число), называемое по фамилии предложивших окно ученых, например Hamming, Blackman, Bartlett, Chebyshev, Taylor, Kaiser и т. д. Для просмотра временных и амплитудно-частотных характеристик всех окон есть соответствующие функции, но удобно пользоваться GUI-браузером окон wvtool.

позволяет строить четыре типа 64‑точечных окон — прямоугольное, Хемминга, Ханна и Гаусса. Можно задать окна и отдельными командами.

Сравнение в браузере трех окон Кайзера с параметром бетта 1,5, Блэкмана и Блэкмана-Харисса

Рис. 17. Сравнение в браузере трех окон Кайзера с параметром бетта 1,5, Блэкмана и Блэкмана-Харисса

Это, а также сравнительное построение трех других типов окон обеспечивает следующая программа (рис. 17):

Конструктор окон

Рис. 18. Конструктор окон

Существует также конструктор-анализатор окон с GUI-интерфейсом, окно которого (рис. 18) открывается командой:

По умолчанию в нем открывается окно объекта sigwin, но можно открыть и другие окна (в том числе окно пользователя) из списка Current Window Information. Открытые окна появляются в третьем нижнем окне. Окна можно скопировать, добавить в список, установить в рабочее пространство MATLAB или стереть.

Изменение числа отсчетов и интерполяция сигналов

Изменение числа отсчетов широко используется в технике цифровой обработки сигналов. Для уменьшения числа отсчетов применяются операция децимации и функция decimate (рис. 19):

Уменьшение частоты дискретизации сигнала (децимация)

Рис. 19. Уменьшение частоты дискретизации сигнала (децимация)

Для увеличения числа отсчетов исходный сигнал интерполируют (функция interp), а затем нужное число отсчетов сигнала берут из кривой интерполированного сигнала (рис. 20):

Интерполяция сигнала и увеличение частоты его дискретизации

Рис. 20. Интерполяция сигнала и увеличение частоты его дискретизации

Аналоговые и цифровые фильтры

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

Фильтрующие цепи обычно задаются своей операторной передаточной характеристикой:

h ( s ) = a ( s )/ b ( s ).

Имея векторы коэффициентов полиномов a ( s ) и b ( s ), с помощью функции freqs можно построить АЧХ и ФЧХ фильтрующей цепи в логарифмическом масштабе (рис. 21):

Построение логарифмической АЧХ и ФЧХ системы по ее операторной передаточной характеристике

Рис. 21. Построение логарифмической АЧХ и ФЧХ системы по ее операторной передаточной характеристике

В Signal Processing Toolboox входит множество функций по расчету и проектированию различных фильтров — нижних, верхних частот и полосовых. Порою для получения важных характеристик фильтров достаточно задать нужную строку программного кода. Например, построение характеристик аналогового фильтра Бесселя (рис. 22) реализуется следующим программным фрагментом:

Для просмотра практически всех характеристик фильтров можно использовать визуализатор фильтров fvtool. Приведенная ниже программа дает характеристики фильтра Бесселя нижних частот (рис. 23):

Характеристики аналогового эллиптического фильтра нижних частот

Рис. 23. Характеристики аналогового эллиптического фильтра нижних частот

Открытое меню Analysis дает представление обо всех доступных видах анализа фильтров. Среди них построение АЧХ и ФЧХ фильтра, импульсная и переходная характеристики, групповая задержка и т. д.

Конструирование двух цифровых фильтров НЧ (FIR и Баттерворта) со сравнительным построением их характеристик в окне fvtool (рис. 24) обеспечивает следующая программа:

АЧХ двух цифровых фильтров для сравнения

Рис. 24. АЧХ двух цифровых фильтров для сравнения

Программа строит и другие характеристики фильтров, например переходные и импульсные. Напомним, что переходная характеристика является реакцией системы (фильтра) на единичный скачок, а импульсная — на импульс единичной площади с длительностью, стремящейся к нулю (рис. 25).

Импульсные характеристики двух цифровых фильтров

Рис. 25. Импульсные характеристики двух цифровых фильтров

Интерактивный конструктор-анализатор фильтров fdatool

В Signal Proccesing Toolbox входит интерактивный конструктор-анализатор фильтров с GUI-интерфейсом. Он позволяет без какого-либо программирования анализировать и проектировать семь основных типов фильтров (таблица).

Школа MATLAB. Урок 5. Анализ свойств устройств силовой электроники в частотной области

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

Начнем рассмотрение частотных свойств устройств силовой электроники с построения виртуальной модели инвертора, предназначенного для преобразования постоянного напряжения в напряжение синусоидальной формы. Это преобразование осуществляется за счет широтно-импульсной модуляции (ШИМ) в цепи переменного тока. Устройство выполнено на ключевых элементах, работающих с высокой частотой коммутации [1].

Пример 1. Построить модель транзисторного инвертора с активно-индуктивной нагрузкой.

Исходные данные для модели: входное постоянное напряжение величиной 310 В, частота преобразования 1 кГц, модулирующая частота 50 Гц и коэффициент модуляции 0,95. Сопротивление нагрузки 10 Ом, а индуктивность — 5 мГн. В качестве ключевых элементов используются MOSFET-транзисторы, соединяемые по мостовой схеме и управляемые от генератора импульсного сигнала с ШИМ.

На рис. 1а представлена схема модели, а блоки, входящие в модель, и их основные параметры приведены в таблице 1.

Функциональная модель транзисторного инвертора и окно настройки параметров генератора Discrete PWM Generator и универсального моста Universal Bridge

Рис. 1.
а) Функциональная модель транзисторного инвертора;
б) окно настройки параметров генератора Discrete PWM Generator;
в) универсального моста Universal Bridge

В рассматриваемой модели используется новый блок генератора дискретных сигналов с ШИМ — Discrete PWM Generator (табл. 1). Дадим краткие сведения по его настройкам в окне параметров (рис. 1б), которое вызывается двойным щелчком левой кнопкой мыши (далее: ЛКМ) по пиктограмме генератора.

Number of bridge arms — 2

Port configuration — ABC as output terminals

Power Electronic devices — MOSFET/Diodes

Series RLC Branch — последовательно соединенные RLC-элементы

  • Parametrs — параметры.
  • GeneratorMode— генератор моды (модулированного сигнала). Выбирается из списка:
    • 1-armbridge(2pulses) — мост с одним плечом (2 импульса);
    • 2-armbridge(4pulses) — мост с двумя плечами (4 импульса);
    • 3-armbridge(6pulses) — мост с тремя плечами (6 импульсов);
    • Double3-armbridge(12pulses) — двойной мост с тремя плечами (12 импульсов);

    Значения установленных параметров в генераторе приведены в окне на рис. 1б, причем коэффициент модуляции задан равным 0,95 для того, чтобы были видны процессы переключения транзисторных ключей на каждом периоде импульсного напряжения.

    Рис. 2. Окно настройки графического интерфейса пользователя Powergui

    Выбранная схема универсального моста Universal Bridge содержит два плеча, то есть четыре транзистора, а его настраиваемые параметры отражаются в окне (рис. 1в). Настройка осциллографа не должна вызывать трудностей, так как производилась в наших уроках неоднократно. Время моделирования, выбор которого осуществляется в окне модели, названной Invert, в меню Simulation/ Simulation parameters, конечное время Stop time задано равным 0,1, а максимальный шаг дискретизации Max step size выставлен auto. Решатель дифференциальных уравнений целесообразно установить ode15s.

    Настройка графического интерфейса пользователя Powergui состоит в установке шага дискретизации Sample time (рис. 2).

    После запуска модели получены временные диаграммы для напряжения на RL-нагрузке и тока нагрузки (рис. 3). Видно, что ток нагрузки изменяется по синусоидальному закону с периодом 0,02 с (рис. 3а) и определяется модулирующей функцией. Однако он также содержит высокочастотную составляющую, обусловленную импульсным режимом работы транзисторов с несущей частотой, равной 1 кГц, и относительно малой величиной индуктивности нагрузки L. Данная составляющая в увеличенном масштабе изображена на рис. 3б. Напряжение на нагрузке представляет собой последовательность высокочастотных прямоугольных импульсов. У огибающей этих импульсов частота следования равна 50 Гц (рис. 3в). Сами высокочастотные импульсы имеют переменную ширину, изменяющуюся по закону модулирующей функции, что позволило получить ШИМ (рис. 3г).

    Временные диаграммы тока и напряжения на нагрузке

    Рис. 3. Временные диаграммы тока (а, б) и напряжения (в, г) на нагрузке

    Для построения амплитудного спектра тока и напряжения на нагрузке необходимо произвести дополнительные настройки осциллографов. Кнопкой осциллограммы Parametrs, упоминавшейся в предыдущих уроках, вызывается известное читателю окно Scope Parametrs. С помощью закладки Data history окно переключается. В нем снимается флажок ограничения числа запоминаемых точек Limit data points to last, а в строке Variable name (имя переменной) набирается название переменной, например In. В строке Format (формат) из выпадающего меню выбирается Structure with time (структура и время). Аналогично настраивается другой осциллограф, только наименование переменной устанавливается другое, например Um. У графического интерфейса пользователя Powergui устанавливается шаг дискретизации Sample time, составляющий 0,1…0,01 от наименьшего периода сложного сигнала. В рассматриваемом случае наименьшим является период коммутации транзисторных ключей Т = 0,001, и шаг выбран 0,00001. Пиктограмма Powergui в окне модели автоматически обновляется, и в ней отражается величина шага дискретизации (рис. 1а на схеме внизу).

    Вновь запускается выполнение модели. Затем после окончания моделирования двойным нажатием ЛКМ на пиктограмму Powergui открывается окно этого интерфейса (рис. 2), в котором одним нажатием на клавишу FFT Analysis вызывается другое окно для настройки и наблюдений с названием Powergui: FFT Tools (рис. 4). Основные органы управления указанным окном (справа и сверху вниз):

    Окно настройки Powergui: FFT Tools для тока In напряжения на нагрузке Um и перечень значений рассчитанных параметров относительно основной частоты

    Рис. 4. Окно настройки Powergui: FFT Tools для тока In (а) напряжения на нагрузке Um (в) и перечень значений рассчитанных параметров (б и г) относительно основной частоты

    • Structure [структура] — позволяет выбрать один из параметров, установленных при настройке осциллографа In или Um, используемый в дальнейшем для построения амплитудного спектра;
    • Input— вход;
    • Signal number — номер сигнала;
    • Starttime(s) [стартовое время] — начало интервала, в пределах которого будет расположен исследуемый сигнал;
    • Numberofcicles [число циклов — периодов] — длительность исследуемого сигнала, заданная в периодах;
    • Меню:
      • DisplayFFTwindow — изображение сигнала с окном для спектрального анализа;
      • Display entire signal — изображение полного сигнала.
      • Fundamental frequency (Hz) — основная частота (Гц);
      • MaxFrequency(Hz) — максимальная частота спектра сигнала, используемая при анализе;
      • Bar(relativeFund.orDC) — диаграмма (относительно основной частоты или постоянной составляющей);
      • List(relativeFund.orDC) — перечень (относительно основной частоты или постоянной составляющей);
      • Bar(relativetospecifiedbase) — диаграмма (относительно специальной базовой величины);
      • List(relativetospecifiedbase) — перечень (относительно специальной базовой величины).
      • Base value— базовая величина.

      В рассматриваемом примере выполнены следующие настройки (рис. 4а): выбраны анализируемая величина In и входной сигнал 1; стартовое время — 0,01 (первый полупериод соответствует режиму пуска и исключен из рассмотрения); число циклов — 4 (всего их 5, из которых половина первого периода исключена); изображение FFT окна; основная частота 50 Гц; максимальная частота 2500 Гц; по оси частот откладываются Гц; выводится изображение диаграммы относительно основной частоты. После нажатия клавиши Display появляются изображения анализируемой части сигнала длительностью 4 периода и спектрограмма тока In (рис. 4а). Видно, что амплитуда основной гармоники с частотой 50 Гц составляет около 29,17 В. В то же время амплитуды высших гармоник не превышают 1% (0,3 В) от амплитуды основной гармоники. Наиболее интенсивные высшие гармоники находятся в области 2 кГц. Величина коэффициента гармоник, называемого THD Total Harmonic Distronsion, в рассматриваемой области частот достигает 7%. На рис. 4б представлены численные значения шага дискретизации, числа шагов в периоде, амплитуда основной гармоники, THD и амплитуды гармоник — основной и высшей (из-за ограниченности размеров окна показано всего 5 гармоник).

      В спектре напряжения Um (рис. 4в) амплитуда основной гармоники равняется 295 В, высшие гармоники с частотами около 2 кГц имеют амплитуды до 65 В (рис. 4г). У остальных гармоник амплитуды составляют менее 1%. Коэффициент гармоник этого сигнала достигает 43,7%.

      Расчетный метод построения амплитудного спектра сигнала

      Для расчета амплитудного спектра сигнала используем данные из приведенной выше модели. Чтобы получить численные значения анализируемых сигналов, необходимо в функциональную модель ввести дополнения, предоставляющие возможность записи в рабочее пространство сигналов в виде векторов. Эти дополнения представлены в функциональной схеме на рис. 5 и выражаются во введении дополнительных блоков для записи векторов с новыми идентификаторами, исключающими совпадение с имеющимися названиями. Для получения векторов тока нагрузки I, напряжения на нагрузке U и времени t введены три блока To Workspace (библиотека Simulink, раздел Sinks) и блок Clock (библиотека Simulink, раздел Sources) (рис. 5а). Источник времени Clock имеет одну настройку — прореживание Decimation. Оставим ее равной 1. У блоков записи в рабочее пространство To Workspace введем свои названия сигналов в строке Variable name — I, U и t соответственно (в пиктограммах появятся эти названия), затем произведем прореживание Decimation (равно 10), шаг дискретизации был ранее задан 0,00001 и в меню Save format (сохраняемый формат) выбираем строчку Array.

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

      Рис. 5. Функциональная модель инвертора (а) с записью сигналов и перечень переменных в рабочем пространстве (б)

      Скорректированная модель с новым названием Invert_W, данным при сохранении, запускается на выполнение. Для проверки наличия указанных сигналов следует открыть рабочее пространство, что осуществляется в командном окне MATLAB в меню View/ Workspace. Открывается окно, в котором приводится перечень переменных различного формата (рис. 5б). В частности, имеются три нужных вектора-столбца одинакового размера 1001 х 1 с именами I, U, t

      Для проверки записи сигналов набирается в текущей строке окна MATLAB команда

      Она означает, что надо построить фигуру в виде графика с осями абсцисс t и ординат I. Длины обоих векторов должны быть одинаковыми. После выполнения (кнопка Enter) появится фигура, аналогичная осциллограмме (рис. 3а), но имеющая другое оформление и настройки (рис. 6). Читатель может посмотреть и второй сигнал U во временной области, набрав команду

      MATLAB. Временная диаграмма тока нагрузки I инвертора, построенная по данным в рабочем пространстве

      Рис.6. Временная диаграмма тока нагрузки I инвертора, построенная по данным в рабочем пространстве

      Для расчета Фурье-изображения сигнала (в качестве примера взят только ток I) вызывается отладчик программ. Для этого из командного окна через меню File/New/Mfile открывается окно (его имя при открывании Untitled), предназначенное для набора и отладки команд. В этом окне (рис. 7а) набираются команды программы. В рассматриваемом примере они приведены с комментариями. Все комментарии записываются после знака % и не оказывают никакого влияния на выполнение программы. При выборе масштаба по оси частот необходимо учесть, что была произведена децимация в 10 раз. По этой причине число точек отсчетов надо задать в количестве 10001, то есть учесть десятикратное прореживание. По оси ординат число точек отсчетов взято с учетом децимации, то есть Nd. Следует заметить, что построение спектра в MATLAB выполняется с помощью быстрого преобразования Фурье (БПФ) и для его реализации число точек отсчета должно быть пропорционально 2n. Лишние точки будут считаться нулевыми, как это происходит в рассматриваемом случае.

      MATLAB. Программа расчета и полученный спектр тока нагрузки инвертора

      Рис. 7. Программа расчета (а) и полученный спектр (б) тока нагрузки инвертора

      В программе (рис. 7а) имеются стандартные команды fft (получение Фурье-изображения сигнала I в комплексном виде) и abs — нахождение модуля от полученных в комплексном виде результатов преобразования. Проконсультироваться по применению этих команд можно, набрав в окне MATLAB, например, команду help fft. При получении спектрограммы используется только часть полученных результатов, что задается подмножеством отсчетов в виде t(1:250), s(1:250) и необходимо для увеличения масштаба по оси частот, но только при построении графика. После сохранения программы через меню File/Save As под каким-либо именем, к примеру Furie, можно выполнить расчет.

      Для запуска программы используется в окне отладчика меню Debug/Save and Run или Debug/Run (второй вариант реализуется, если нет необходимости сохранять внесенные в программу изменения). На рис. 7б приводится амплитудный спектр, полученный по результатам расчета. Видно, что амплитуда основной гармоники около 15 В, то есть в два раза меньше истинной амплитуды тока. Это соответствует методике расчета при БПФ. А вот сколько-нибудь значимые высшие гармоники имеются в районе частоты 2 кГц, как и на рис. 4а.

      Получение передаточной функции и частотных характеристик

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

      Уравнения переменных состояния записываются с использованием матриц, что обеспечивает их компактность и удобство использования в программе MATLAB, которая построена на матричном исчислении. Для системы n-го порядка уравнения переменных состояния имеют вид

      Формула

      В (1) первое уравнение — это дифференциальное уравнение состояния, а второе — уравнение выходной переменной; x(t) — вектор-столбец переменных состояния; u(t) — входной сигнал; y ( t) — выходной сигнал (реакция) системы; A, B, C, D — матрицы: A — матрица коэффициентов системы, в общем случае имеющая размерность nxn при n, равном числу переменных состояния; B — матрица входа, в которой число строк равно n, число столбцов соответствует числу входов системы; C — матрица выхода (число строк равно числу выходов, число столбцов равно n); D — матрица обхода (число строк равно числу выходов, число столбцов равно числу входов).

      Рассмотрим функцию power2sys, позволяющую строить математическую модель в пространстве состояний электрической схемы, созданной в SimPowerSystem с использованием блоков библиотеки Simulink.

      Назначение:

      Функция power2sys рассчитывает элементы матриц A, B, C, D уравнений пространства состояния, описывающих модель (1). Она вызывается автоматически из Simulink при начале расчета модели или запускается на выполнение непосредственно из командного окна MATLAB.

      Синтаксис:

      Эта команда создает структуру для модели с названием sys. Другая команда

      дает информацию о численных значениях элементов матриц A, B, C, D.

      Рис. 8. Двухзвенный сглаживающий LC-фильтр

      Подробности о способах использования функции power2sys можно найти в руководстве пользователя для SimPowerSystem. Отметим лишь, что аббревиатура ss означает state space (пространство состояний). Для демонстрации возможности этой функции рассмотрим сглаживающий LC-фильтр преобразователя, состоящий из двух ячеек, соединенных последовательно друг с другом. На выходе фильтра подключена нагрузка R (рис. 8).

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

      Пример 2. Для двух фильтров — однозвенного LC-фильтра с параметрами L1 = 15 мГн, C1 = 2 мкФ и R = 8 Ом и затем для двухзвенного LC-фильтра с параметрами L1 = 15 мГн, C1 = 2 мкФ, L2 = 3 мГн, C2 = 15 мкФ, R = 8 Ом получить передаточные функции.

      Функциональные модели этих фильтров представлены на рис. 9а (модель LC_1_Filter) и рис. 9б (модель LC_2_Filter), а информация о блоках приведена в таблице 2.

      Функциональная схема для испытаний одно- и двухзвенного LC-фильтров

      Рис. 9. Функциональная схема для испытаний одно- а) и двухзвенного б) LC-фильтров

      Signal Generator

      Frequency — 1000 Hz

      Series RLC Branch — последовательно соединенные RLC-элементы

      Resistance R

      Inductance L1

      Capacitance C1

      Inductance L2

      Capacitance C2

      R = 8 Ом, L=0, C=inf

      R=0, L=0,015Гн, C= inf

      R=0, L=0,003 Гн, C=inf

      R=0, L=0, C = 15e–6 Ф

      Voltage Measurement

      После настройки модель LC_1_Filter запускается на выполнение. Итог работы — временная диаграмма входного и выходного сигналов (рис. 10а). Затем в командном окне MATLAB набирается следующая команда:

      Временные диаграммы входного и выходного сигналов одно% (а) и двухзвенного (б) LC%фильтров

      Рис. 10. Временные диаграммы входного и выходного сигналов одно- (а) и двухзвенного (б) LC-фильтров

      Все четыре необходимые матрицы, обозначенные строчными буквами, распечатываются с указанием параметров, к которым относится каждый элемент матрицы (над строками и слева от столбцов), в виде

      Итак, переменные состояния анализируемой схемы — ток Il индуктивности L1 и напряжение Uc на конденсаторе C1, а выходное напряжение U_Voltage Measurement равно Uc_C1 при входном напряжении U_Controlled. В самом низу указано, что эта модель выполнена для непрерывного сигнала Continuoustime model. Передаточная функция находится с помощью команды tf, которая преобразует модель Н1 (ss-модель) в привычное по записи отношение двух полиномов от переменной s, представляющей собой комплексную частоту в преобразовании Лапласа. Набирается команда с указанием в круглых скобках идентификатора передаточной функции ss-мо-дели, а именно:

      После выполнения команды получается передаточная функция фильтра второго порядка

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

      Для получения передаточной функции набирается команда

      Передаточная функция фильтра с теми же напряжениями на входе и выходе уже существенно сложнее, так как фильтр имеет четвертый порядок. Переменных состояния также четыре — токи в двух индуктивностях и напряжения на двух конденсаторах.

      По передаточным функциям можно получить графическое изображение диаграмм Боде (в отечественной литературе это логарифмические амплитудные и фазовые частотные характеристики — ЛАХ и ЛФХ), для чего в командном окне MATLAB набирается команда

      После выполнения команды получаем ЛАХ и ЛФХ (рис. 11а). Видно, что коэффициент передачи фильтра на низкой частоте равен 0 дБ и падает практически до -100 дБ в области частот, превышающих 1 мГц. Фазовый сдвиг при этом достигает -180°.

      Диаграммы Боде и амплитудно-частотные характеристики LC-фильтров второго и четвертого порядка

      Рис. 11. Диаграммы Боде (а, в) и амплитудно-частотные характеристики (б, г) LC-фильтров второго (а, б) и четвертого (в, г) порядка

      Для получения амплитудно- и фазочастотной характеристик системы, имеющей известную передаточную функцию, используется другая команда freqs с другим аргументом, указанным в круглых скобках и задаваемым двумя векторами в квадратных скобках через запятую. Первый вектор представляет собой коэффициенты числителя, начиная с коэффициента у переменной s в старшей степени, а второй — коэффициенты знаменателя в той же последовательности. В случае фильтра второго порядка эта команда имеет следующее написание:

      В результате для указанного фильтра построены АЧХ и ФЧХ (рис. 11б), имеющие аналогичный вид, но на первом графике по оси ординат указаны значения амплитуды (magnitude) в абсолютных единицах при логарифмическом масштабе по оси абсцисс (частот) и автоматически нанесена сетка на оба графика.

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

      получены диаграмма Боде и АФЧХ (рис. 11в, г). Особенность диаграммы Боде состоит в том, что фазовый сдвиг резко (в виде перепада) изменяется от -180° до -360° из-за выбранного масштаба по оси частот. Если бы проводился анализ для интервала частот в окрестности точки резкого изменения фазового сдвига, то изменение указанного параметра было бы плавным. В то же время на АФЧХ диапазон изменения фазового сдвига изображается в пределах от 0 до -180°, хотя он принимает значения, превышающие эту величину. По этой причине следует быть внимательным при определении данного параметра, так как итоговый сдвиг после частоты 10 кГц в рассматриваемом случае определяется добавлением текущего значения фазового сдвига к величине -180°.

      Таким образом, получена непрерывная модель объекта, от которой перейдем к дискретно-непрерывной модели. Для реализации перехода проще всего использовать функцию MATLAB вида c2d. Форма записи

      Содержит название передаточной функции sys, период дискретизации Ts и метод дискретизации met. Информацию о методах можно получить с помощью команды

      В качестве примера используем метод дискретизации с помощью билинейного преобразования tustin. Применим этот метод для преобразования передаточной функции фильтра четвертого порядка. Для этого в рабочем пространстве необходимо иметь данные о передаточной функции, которая выше была обозначена как W2. Команда по преобразованию имеет следующую форму записи:

      После выполнения команды возвращается информация по обозначениям входного и выходного сигнала, о дискретной передаточной функции с указанием периода дискретизации Sampling time

      Для построения АФЧХ по полученной дискретной передаточной функции можно применить функцию freqz, в качестве аргумента у которой используются векторы коэффициентов числителя и коэффициентов знаменателя, а именно:

      Полученные АФЧХ приведены на рис. 12. Видно, что имеется резонансная частота, составляющая около 0,17 нормированной частоты fs/2 = 0,5/Ts. При значении этой частоты, приближающейся к 1, амплитуда снижается на 180 дБ. Фазовый сдвиг имеет резкий спад в районе резонансной частоты от -180° до -360°, а затем остается практически неизменным.

      Рис. 12. Амплитудно- и фазочастотные характеристики LC-фильтра четвертого порядка с дискретной передаточной функцией

      Получение частотных характеристик с помощью графического интерфейса ltiview

      Графический интерфейс пользователя ltiview (интерактивный обозреватель) предназначен для просмотра временных и частотных характеристик модели. Перед запуском этого интерфейса необходимо подготовить исходные данные. Подготовка состоит в получении выражения для передаточной функции в одном из трех видов — ss (пространство состояний), tf (передаточная функция в виде полиномов числителя и знаменателя) или zpk (передаточная функция с указанием нулей, полюсов и коэффициента передачи, записанная в виде сомножителей в числителе и в знаменателе). Хотя бы одно из этих выражений под своим именем (идентификатором) должно находиться в рабочем пространстве MATLAB. Для запуска интерфейса в командном окне MATLAB набирается функция ltiview. После исполнения появляется графическое окно или интерактивный обозреватель (рис. 13а), в котором могут быть вызваны основные команды для анализа во временной или частотной областях объектов, представленных передаточной функцией.

      Окна LTI View , Import System Data, Plot Configurations в графическом интерфейсе пользователя

      Рис. 13. Окна LTI View (а, в, д, е) Import System Data (б) Plot Configurations (г) в графическом интерфейсе пользователя

      Предположим, после тех же действий, что были изложены выше, получена передаточная функция двухзвенного фильтра H2 в пространстве состояний ss, и она загружена в рабочее пространство. Далее необходимо в окне LTI View последовательно вызвать меню File/Import. В появившемся новом окне Import System Data имеется перечень передаточных функций System in Workspace. В рассматриваемом перечне в нашем случае имеется только одна передаточная функция H2 (рис. 13б). Активизируем строку с этой передаточной функцией ЛКМ и затем нажмем кнопку OK. В окне LTI View появится переходный процесс в анализируемой цепи при подаче единичного ступенчатого воздействия (рис. 13в). Поскольку надо получить характеристику рассматриваемой цепи в частотной области, то в окне LTI View с помощью меню Edit/Plot Configurations вызывается окно Plot Configurations (рис. 13г). В последнем окне включается конфигурация 1 (один рисунок на все окно) и затем в меню Response type выбирается диаграмма Боде. После того как нажата кнопка OK, в окне LTI View появится эта диаграмма (рис. 13д).

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

      • Step — реакция на единичный скачок; Impulse — импульсная характеристика;
      • Bode — диаграмма Боде;
      • BodeMagnitude — амплитудная диаграмма Боде;
      • Niquist— диаграмма Найквиста (годограф);
      • Nicols — годограф Николса;
      • SingularValue — зависимость сингулярных чисел комплексного коэффициента передачи системы от частоты;
      • Pole/Zero — карта нулей и полюсов.

      На рис. 13е в качестве примера приведен годограф Найквиста для анализируемой цепи. Он строится в системе координат, соответствующей комплексной частоты s, а именно: по оси абсцисс откладывается действительная часть передаточной функции при s = jco, а по оси ординат — мнимая часть. Для получения годографа осуществляется изменение частоты со от 0 до оо.

      Как построить ачх в матлабе

      Алматинский институт энергетики и связи

      Кафедра инженерной кибернетики

      ОСНОВНЫЕ ПРИЕМЫ РАБОТЫ В СРЕДЕ MATLAB

      СОСТАВИТЕЛЬ: Ибраева Л.К. ОСНОВНЫЕ ПРИЕМЫ РАБОТЫ В СРЕДЕ MATLAB. Методический практикум – Алматы: АИЭС, 2004 — 49 с.

      Система MatLAB (MATrix LABorato r y) является интерактивной системой для выполнения инженерных и научных расчетов Методический практикум предназначен для преподавателей, аспирантов и студентов, желающих применять систему MATLAB при исследовании систем. В методическом практикуме описаны только основные приемы работы с системой .

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

      Каждый раздел практикума сопровождается примерами. Рекомендуется при изучении пакета выполнять эти упражнения – результат будет отражаться в командном окне. Поэтому в методических разработках не приведены окна с результатами (за исключением примеров раздела 3).

      Рецензент: канд. техн наук, доц. С.Г.Хан

      Печатается по плану издания Алматинского института энергетики и связи на 2004 г.

      © Алматинский институт энергетики и связи, 2004 г.

      Система MatLAB (MATrix LABorato r y) является интерактивной системой для выполнения инженерных и научных расчетов, ориентированной на работу с массивами данных. Она имеет встроенную матричную и комплексную арифметику.

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

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

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

      Работа в среде MatLAB может выполняться:

      — в режиме «калькулятора», когда вычисления производятся

      непосредственно в командном окне;

      — путем вызова программы (встроенной или пользовательской);

      — путем графической сборки модели исследуемой системы – пакет Simulink.

      1. MatLAB как научный калькулятор

      Ввод чисел выполняется по обычным правилам языков программирования; десятичный показатель записывается в виде целого числа после символа e .

      Формат чисел: Файл-Свойства

      Арифметические действия: + – * / \ ^

      — Если оператор не заканчивается символом « ; » (точка с запятой), результат

      сразу отображается в командном окне.

      — Если оператор не содержит знака присваивания, то значение результата

      присваивается системной переменной ans .

      <имя переменной> = <результат>

      Имена переменных могут использоваться для хранения промежуточных результатов.

      Зарезервированные имена переменных: i, j — мнимая единица; pi – число π; ans – результат последней операции без знака присваивания.

      Некоторые элементарные функции:

      sin ( z ), sinh ( z ), asin ( z ), cos ( z ), cosh ( z ), acos ( z ), tan ( z ), atan ( z ), exp ( z ), log ( z ), log 10( z ), sqrt ( z ), abs ( z ), round ( z ).

      Комплексные числа вводятся в виде:

      <имя переменной> = <значение действ.части> + i (либо j )*< значение мнимой части>

      Простейшие действия с комплексными числами производятся с использованием приведенных выше операций.

      Здесь использована функция disp , которая также позволяет выводить в командное окно результаты вычислений или некоторый текст.

      Функции комплексного аргумента:

      real(z) – выделяет действительную часть комплексного аргумента;

      imag(z) – выделяет мнимую часть комплексного аргумента;

      angle(z) – вычисляет значение аргумента комплексного числа

      Наберите в командном окне:

      MatLAB специально предназначен для вычислений с векторами, матрицами и полиномами. Любая заданная переменная по умолчанию является вектором или матрицей.

      V 1 = [1.2 2.3 3.4 4.5] (вместо пробелов можно использовать запятые).

      Длинные векторы можно вводить частями, а затем объединять: v =[ v 1 v 2].

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

      V = nz : h : kz ( nz – начальное значение, h – шаг, kz – конечное значение). По умолчанию шаг принимается равным 1.

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

      Введите в командное окно

      >> v 1[1 2 3]; v 2=[4 5 6];

      Действия над векторами одинаковой структуры:

      Сложение и вычитание векторов: + и —

      Транспонирование – знак апострофа (например, х’).

      Умножение вектора на число : *.

      Умножение двух векторов : * (по правилам математики- для векторов одинакового размера и лишь тогда, когда один из векторов-сомножителей является строкой, а другой – столбцом; в противном случае, один из векторов надо транспонировать).

      Векторное произведение (для трехкомпонентных векторов): cross ( v 1 v 2)

      Предусмотрено несколько операций поэлементного преобразования векторов (и матриц); все эти операции преобразуют элементы вектора как элементы обычного одномерного массива чисел. К таким операциям принадлежат все элементарные математические функции одного аргумента (некоторые были приведены выше). Например, запись Y = sin(X), где Х – известный вектор, приводит к формированию нового вектора Y, элементы которого равны синусу соответствующих элементов вектора Х.

      Кроме этих операций предусмотрено несколько операций, которые выполняются с помощью знаков обычных арифметических действий (применяются к векторам одинакового типа и размера):

      Добавление числа к каждому элементу вектора (аналогично, вычитание): + и —

      Поэлементное умножение векторов: .* (перед знаком умножения – точка)

      Поэлементное деление векторов: ./ (перед знаком деления – точка)

      Поэлементное возведение в степень: .^ (перед знаком степени – точка)

      Эти операции позволяют вычислять значения сложных функций, не используя операторы цикла.

      Вычисление значений функции Y = a * exp (- k * x )* sin ( x ) при значениях аргумента x от 0 до 10 с шагом 1 можно выполнить при помощи следующих операторов:

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

      Введите в командное окно:

      >> A =[2 4 5 8 10; 5 6 8 9 7]

      MatLAB имеет функции, которые позволяют формировать векторы и матрицы определенного вида. Некоторые из них:

      zeros ( m , n ) – создает матрицу m * n с нулевыми элементами;

      ones ( m , n )- создает матрицу m * n с единичными элементами;

      eye ( m , n )- создает матрицу m * n с единицами на главной диагонали и остальными

      rand ( m , n ) — создает матрицу m * n из случайных чисел, равномерно

      распределенных на (0,1);

      randn ( m , n ) — создает матрицу m * n из случайных чисел, распределенных по

      нормальному закону с нулевым математическим ожиданием и

      дисперсией, равной 1.

      Поэлементное преобразование матриц – аналогично действиям с векторами.

      Матричные действия с матрицами:

      Базовые действия с матрицами выполняются с помощью обычных знаков арифметических операций. Функция обращения матрицы – inv( A ).

      >> A = [1 2 3 4 5; 6 7 8 9 10]

      >> B =[ 0 -1 -2 – 3 -4; 5 6 7 8 9]

      >> inv ( ans ) % для проверки обращение применяется к результату

      >> A ^2 % действие эквивалентно умножению матрицы на себя

      >> A ^(-2) % при отрицательной степени выполняется умножение

      обратной матрицы на себя

      Действие деления матриц (которого не существует в математике): / (или \).

      Действие В/А аналогично действиям B*inv(A); его удобно использовать для решения матричного уравнения X * A = B ; действие A \ B аналогично действиям inv ( A )* B ; удобно использовать для решения матричного уравнения A * X = B .

      Пример 1.9: Требуется решить систему уравнений:

      Решение: >> A =[1 2 3;2 1 -5;1 -1 -1]

      Операции с полиномами

      Полином хранится в виде вектора, элементами которого являются коэффициенты полинома:

      conv ( P 1, P 2) – умножение двух полиномов;

      deconv ( P 1, P 2) – деление полинома P 1 на полином P 2;

      roots ( P ) – вычисление вектора, элементы которого являются корнями заданного

      poly ( r ) – построение вектора полинома по заданному вектору его корней;

      polyval ( p , x ) – вычисление значения полинома по заданному значению его

      polyder ( p ) – вычисление производной от полинома.

      Найдем корни полинома P ( x ) = x 5 + 8 x 4 + 31 x 3 + 80 x 2 + 94 x + 20.

      Вычислим значение полинома при х=2:

      >> y = polyval ( p ,2);

      Обработка данных измерений

      Система дает возможность обработки данных, которые заданы в векторной или матричной форме.

      max ( V ) – выдает значение максимального по значению элемента вектора V ;

      min ( V ) – выдает значение минимального по значению элемента вектора V ;

      sort ( V ) – формирует вектор, элементы которого распределены в порядке

      возрастания из значений;

      sum ( V ) – вычисляет сумму элементов вектора V ;

      prod ( V ) – вычисляет произведение всех элементов вектора V ;

      trapz ( x , y ) – осуществляет интегрирование методом трапеций (вычисляется

      площадь под графиком функции y(x), в котором все точки, заданные

      векторами x и y , соединены отрезками прямых.

      Аппроксимация и интерполяция данных

      Система предоставляет удобные процедуры для аппроксимации и интерполяции данных измерений.

      polyfit ( X , Y , n ) – полиномиальная аппроксимация, n – порядок

      аппроксимирующего полинома; X , Y – вектора аргументов и

      значений функции; результатом будет вектор коэффициентов

      полинома длиной ( n + 1).

      spline ( X , Y , Xi ) – интерполяция кубическими сплайнами.

      >> x = [1 2 3 4 5 6 7 8];

      >> y = [-1.1 0.2 0.5 0.8 0.7 0.6 0.4 0.1];

      ans = 0.1143 -0.2393

      Это означает, что заданная зависимость аппроксимирована прямой:

      y ( x ) = 0.1143 x – 0.2393

      Построение графиков

      Основной функцией, обеспечивающей построение графиков, является функция plot. Обращение к этой процедуре:

      Здесь x 1, y 1 — заданные векторы, элементами которых являются массивы значений аргумента ( x 1) и функции ( y 1), соответствующих первой кривой графика; x 2, y 2 – массивы значений аргумента и функции второй кривой графика и т.д. Переменные s 1, s 2 являются символьными (их указание не обязательно, они определяют тип линии, тип точки графика и цвет линии).

      Графики выводятся в отдельном графическом окне, которое называется фигурой; для нанесения на график координатных линий следует записать после обращения к функции plot функцию grid .

      Пусть требуется вывести график функции y =3 sin ( x +π/3) на промежутке от -3π до +3π с шагом π/100.

      >> plot ( x , y ), grid

      Заголовок графика выводится с помощью процедуры title (‘текст’), надписи к осям – процедурами xlabel (‘текст’), ylabel (‘текст’).

      >> x =-3* pi : pi /100:3* pi ;

      Пример 1.14: Дополним пример 1.11.

      Построим в одном графическом окне графики заданной дискретной функции и графики аппроксимирующих полиномов первого, второго, третьего и четвертого порядков:

      >> x = [1 2 3 4 5 6 7 8];

      >> y = [-1.1 0.2 0.5 0.8 0.7 0.6 0.4 0.1];

      Здесь процедура stem ( x , y ) используется для представления графика дискретной функции в виде отдельных вертикальных линий для каждого из значений аргумента; x , y – векторы аргументов и значений функций; для отражения графика дискретной функции на той же фигуре, что и полиномы, после обращения к функции stem записывается функция hold .

      При построении графика функции можно не указывать ее аргумент. В этом случае в качестве аргумента система принимает номер элемента вектора, график которого строится.

      >> x= [1 3 2 9 6 8 4 9 -6];

      >> title (‘ График вектора x’)

      >> ylabel (‘значения элементов’)

      >> xlabel (‘номер элемента’)

      Более наглядно представить вектор в виде столбчатой диаграммы (функция bar):

      >> title (‘График вектора x’)

      >> ylabel (‘значения элементов’)

      >> xlabel (‘номер элемента’)

      2 Программирование в среде MatLAB

      Программа создается в окне установленного редактора:

      Файл-Создать- M -файл

      Существуют программы двух видов: управляющие программы (Script-файлы) и процедуры (файл-функции). Все программы имеют расширение имени файла .m.

      Файл-функция имеет первую строку вида:

      Function [перечень конечных величин] =

      <имя процедуры> (<перечень входных величин>)

      Script-файлы такой строки не имеют.

      В файл-функциях все переменные воспринимаются как локальные, в Script-файлах все используемые переменные образуют рабочее пространство (work space), которое является единым для всех Script-файлов, вызываемых в текущем сеансе работы с системой.

      Оформление М-файлов:

      § каждый оператор записывается в отдельной строке; в конце оператора желательно вводить символ «;» (чтобы результат действия оператора не выводился в командное окно;

      § можно размещать несколько операторов в одной строке, разделяя их запятой или точкой с запятой;

      § длинный оператор можно записывать в несколько строк, при этом предыдущая строка должна заканчиваться тремя точками (…);

      § строка комментариев начинается с символа %;

      § строки комментариев, предшествующие первому выполняемому оператору программы (должны заканчиваться пустой строкой), воспринимаются системой как описание программы. Эти строки выводятся в командное окно, если набрать в нем help <имя файла>.

      § отсутствует оператор окончания текста программы;

      § переменные не описываются и не объявляются; их размер устанавливается при вводе значений ее элементов;

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

      Составим М-файл для вычисления значения функции: y = f 1 ( x ) = a 2 * ctg ( x )* sqrt ( sin 4 ( x ) – cos 4 ( x ).

      Для этого в окне редактора наберем следующий текст:

      function y = f1(x, a)

      %Процедура вычисления значения функции

      % y = f1(x) = a 2 *ctg(x)*sqrt(sin(x)^4 – cos(x)^4)

      %Обращение y = f 1( x , a ).

      y = (a^2)*cot(x).*sqrt(sin(x).^4 – cos(x).^4);

      Сохраним этот текст в файле f 1. m .

      Введем в командное окно команду :

      Если хотим получить вектор значений функции при различных значениях аргумента, вначале сформируем вектор аргументов:

      И обратимся к процедуре следующим образом:

      Чтобы получить информацию о созданной процедуре, наберем

      Оформите текст примера 1.14 как файл-функцию, сопроводив ее необходимыми комментариями. Для этой процедуры нет необходимости передавать переменные из командного окна. Поэтому первую строку этой процедуры можно оформить следующим образом: function appr;

      Сохраните файл под именем appr .m. Вызовите программу из командного окна. Чтобы получить информацию о созданной процедуре, наберите help appr .

      Пример 2.3: Измените процедуру примера 2.2 таким образом, чтобы переменные

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

      Некоторые стандартные файл-функции

      1 [ I , cnt ] = quad (‘<имя функции>’, a , b ) – процедура вычисления интеграла

      методом квадратур; здесь a , b – нижняя и верхняя границы изменения

      функции; I – полученное значение интеграла; cnt — число обращений к

      вычислению функции, представленной М-файлом с названием, указанным в

      2 ode 23, ode 45 – интегрирование обыкновенных дифференциальных уравнений;

      обращение к ним имеет вид;

      [t, y] = ode23 (‘< имя функции >’, tspan, y0, options)

      [t, y] = ode45 (‘< имя функции >’, tspan, y0, options)

      где <имя функции> — строка символов, являющихся именем М-файла, в

      котором вычисляется вектор-функция f(t,y), то есть правые части системы

      ОДУ; y 0 – вектор начальных значений переменных состояния; t – массив

      значений аргумента, соответствующих шагам интегрирования; y – матрица

      матрица проинтегрированных значений переменных, в которой каждый

      столбец соответствует одной из переменных состояния, а строка содержит

      значения переменных состояния, соответствующих определенному шагу

      интегрирования; tspan – вектор-строка [t0 tfinal], содержащая начальное и

      конечное значение аргумента; options – необязательные параметры,

      определяющие значения допустимых относительной и абсолютной

      погрешности интегрирования (по умолчанию соответственно 1.0 e -3 и 1.0 e -6).

      3 fmin – нахождение минимума функции одного аргумента;

      обращение: Xmin = fmin (‘<имя функции>’, X 1, X 2)

      здесь Xmin – локальный минимум функции в интервале X 1< X < X 2;

      4 fmins — нахождение минимума функции нескольких аргументов;

      обращение: Xmin = fmins (‘<имя функции>’, X 0), X 0 – начальное значение

      5 fzero — нахождение нулей (корней) функции одного аргумента;

      обращение; z = fzero (‘<имя функции>’, x 0, t о1, trace )

      здесь x 0 – начальное значение аргумента, в окрестности которого

      отыскивается действительный корень функции, t о1 – заданная относительная

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

      на экран промежуточные результаты, z – значение искомого корня;

      6 fplot — построение графиков функции одной переменной; отличие от

      процедуры plot в том, что не надо предварительно вычислять значения

      функции; обращение: fplot (‘<имя функции>, [<интервал>], n )

      где <интервал> — вектор-строка из двух чисел, задающая нижнюю и

      верхнюю границы изменения аргументов, <имя функции> — имя М-файла с

      текстом процедуры вычисления значения функции по заданному значению

      аргумента, n – количество частей, на которые разбит указанный интервал (по

      если обратиться к этой процедуре следующим образом

      [x, Y] = fplot (‘<имя функции>, [<интервал>], n )

      то график функции не отображается на экране, а вычисляется вектор

      аргументов x и вектор (матрица) Y соответствующих значений указанной

      функции; в этом случае для построения графика следует обратиться к

      Пример 2.4 . Найдем число π как значение локального минимума функции y =

      cos(x) на отрезке [3,4] :

      Пример 2.5. Найдем минимум функции y = ( x -1)^2 + 3 на отрезке [0,5]. Вначале

      function y = parab (x)

      Сохраним ее в файле parab.m. Затем в командном окне наберем:

      >> xmin = fmin (‘ parab ’, 0,5)

      Рассмотрим применение процедур интегрирования обыкновенных дифференциальных уравнений на следующих примерах.

      Пример 2.5. Требуется решить дифференциальное уравнение

      с начальным условием y (0)= 1.

      Откроем окно редактора системы и запишем в нее текст файл-функции:

      Сохраним файл с именем f 1.

      В командном окне введем:

      Здесь мы установили интервал решения уравнения — [0 5], начальное значение переменной состояния – 1, параметр options не указывали.

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

      Пример 2.6. Рассмотрим следующую систему:

      Для решения этой системы создадим М-файл со следующим текстом:

      Решаем систему на интервале [0 12] с вектором начальных условий [0 1 1]:

      Отразим решение на графике:

      3. Моделирование систем в пакете Simulink

      Пакет SIMULINK применяется для исследования поведения динамических систем. Ввод характеристик исследуемых систем производится в диалоговом режиме, путем графической сборки схемы соединений стандартных элементарных звеньев. В результате такой сборки образуется модель исследуемой системы, которую называют S-моделью. Модель хранится в файле с расширением .mdl. Для построения S-модели используются блоки из библиотеки SIMULINK . Состав библиотеки может быть пополнен пользовательскими блоками.

      Библиотека блоков SIMULINK представляет собой набор визуальных объектов, ис пользуя которые можно собирать, как из кубиков, произвольную конструкцию.

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

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

      Для удобства работы пользователя библиотека блоков разбита на семь разделов. Шесть из них являются базовыми и не могут изменяться пользователем (за исключением внешнего оформления):

      Описание состава и назначения блоков SIMULINK приведено в Приложении.

      Запуск пакета: Файл-Создать-Модель или соответствующая кнопка на панели инструментов. Необходимые блоки выбираются из соответствующих разделов библиотеки и с помощью мыши переносятся в окно создаваемой модели (по умолчанию это окно называется Untitled ) . Блоки соединяются с помощью линий, которые рисуем с помощью мыши (как от входного порта к выходному, так и наоборот).

      В процессе построения блок-схем все операции с объектами основаны на использовании известной технологии Drag-an d -Drop (например, выделение, копирование, перестановка, отсоединение, удаление, изменение размеров, установка параметров блоков, создание соединительных линий и т.д.)

      Блок-схемы алгоритмов моделей составляются по содержательному описанию работы системы.

      Пример 3.1. Необходимо синтезировать комбинационное цифровое устройство (КЦУ) на элементах И-НЕ на три входа, выходной сигнал которого совпадает с большинством входных сигналов. Это словесное описание условий функционирования КЦУ. Ему соответствует таблица истинности:

      Соберем схему модели непосредственно по таблице истинности (рисунок 1):

      — в окне модели расположите три блока Constant – для входных сигналов;

      — преобразование входного сигнала в соответствии с заданной таблицей

      истинности обеспечивает блок Combinatorial Logic (раздел Nonlinear ). Так как

      на вход этого блока может поступать только один сигнал, для объединения всех

      входов используйте блок Mux . Блок Combinatorial Logic имеет единственный

      параметр настройки — Truth table (таблица истинно­сти), который представляет

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

      истинности необходимо соблюдать два основных правила:

      а) число строк таблицы должно быть равно 2 n , где п — число элементов

      (размерность) входного сигнала;

      б) входы таблицы считаются заданными.+

      — с формированный выходной сигнал выведите в блок Display.

      В процессе синтеза КЦУ подразумевается необходимость минимизации аппаратных затрат на реализацию устройства. Чтобы выполнить условие задачи — синтезировать КЦУ на элементах И-НЕ на три входа, используем для моделирования совершенные нормальные формы (СНФ).

      Формула в СДНФ (совершенная нормальная дизъюнктивная форма):

      Используя правила минимизации:

      Для создания модели, описывающей работу цифрового устройства на базе формулы (1), используются блоки логических операций ( Logical Operator ) – рисунок 1.

      Пример 3.2. Пакет MatLAB используется для исследования асинхронного двигателя в схеме асинхронного вентильного каскада (АВК). На кафедре ЭиАПУ разработаны имитационные модели структурной и электрической схем АВК [1] . На этих моделях можно выполнить серию экспериментов и получить характеристики объекта (влияние величины напряжения управления и нагрузки на характер переходных процессов, оценку соответствия установившихся значений параметров заданным и т.д.). На рисунке 2 приведена имитационная модель структурной схемы АВК, которая имеет вид последовательно соединенных звеньев. В эти звенья введены соответствующие передаточные функции с расчетными данными.

      Пример 3.3. Математическая модель динамических процессов в топке котельного агрегата (объект с сосредоточенными параметрами) представляется в виде системы обыкновенных дифференциальных уравнений [2] . Решение этой системы дает возможность получить закон изменения температуры газов и температуры слоя загрязнений во времени, которые могут быть использованы для регулирования процесса сжигания топлива.

      Рассмотрим задачу в следующей постановке: получить для различных значений расходов топлива, температур подогрева воздуха и массы загрязнений изменения температур газов и температур слоя загрязнений во времени и провести анализ влияния этих изменений на температуру поверхностей нагрева, расположенных по ходу топки. Так как часто нужно знать эти изменения при дополнительной подаче топлива или при отклонениях подогрева воздуха от номинальных значений, можно рассматривать линеаризованную математическую модель топочной камеры:

      Здесь ∆ t – температура топочных газов, ∆ t 1 – температура слоя отложений, ∆ Bp – расход воздуха, ∆ tB температура воздуха, τ — время, a 1,…, a 6 – расчетные коэффициенты модели.

      Структурная схема модели представлена на рисунке 3. Чтобы не загромождать диаграмму и для повышения наглядности блоки расчетов по каждому уравнению системы оформлены как подсистемы (блок Subsystem из раздела Connection). Блоки Scope позволяют в процессе моделирования наблюдать динамику изменения интересующих исследователя характе­ристик системы. Создаваемое с помощью блока Scope «смотровое окно» напоминает экран измерительного прибора. В подсистемах для расчета коэффициентов модели и текущих значений температур (газов и шлаков) используются блоки Fcn , Product (раздел Nonlinear ), Sum (раздел Linear ), Constant (раздел Sources ).

      4. Цифровая обработка сигналов (Signal Processing Toolbox)

      Пакет Signal Processing Toolbox позволяет проектировать (рассчитывать конкретные числовые характеристики) цифровые и аналоговые фильтры по их требуемым амплитудно- и фазо-частотным характеристикам, формировать последовательности типовых временных сигналов и обрабатывать их спроектированными фильтрами. В пакет входят процедуры, осуществляющие преобразования Фурье, Гильберта, а также статистический анализ. Пакет позволяет рассчитывать корреляционные функции, спектральную плотность мощности сигнала, оценивать параметры фильтров по измеренным отсчетам входной и выходной последовательностей.

      Формирование типовых процессов

      Процедура rectpuls обеспечивает формирование одиночного импульса прямоугольной формы. Обращение к процедуре:

      y = rectpuls ( t , w ).

      Здесь y – вектор значений сигнала импульса единичной амплитуды, шириной w , центрированного относительно t = 0 по заданному вектору t моментов времени. Если ширина импульса w не указана, ее значение по умолчанию принимается равным единице.

      >> y = 0.75*rectpuls(t-3,2) + 0.5*rectpuls(t-8, 0.4)…

      >> plot(t,y), grid, set(gca, ‘FontName’, ‘Arial Cyr’, “FontSize’, 16)

      >> title (‘Пример применения процедуры RECTPULS ’)

      >> ylabel (‘Выходной процесс y ( t )’)

      Формирование импульса треугольной формы единичной амплитуды можно осуществить при помощи процедуры tripuls , обращение к которой имеет вид:

      y= tripuls (t, w, s)

      Аргументы y , t , w имеют тот же смысл. Аргумент s (-1 < s <1) определяет наклон треугольника. Если s = 0 или не указан, треугольный импульс имеет симметричную форму.

      >> y = 0.75*tripuls(t-1, 0.5) + 0.5*tripuls(t-5, 0.5, -1)…

      + 1.35*tripuls(t-3, 0.8, 1);

      >> plot(t,y), grid, set(gca, ‘FontName’, ‘Arial Cyr’, “FontSize’, 16)

      >> title (‘Пример применения процедуры TRIPULS ’)

      >> ylabel (‘Выходной процесс y ( t )’)

      Для формирования импульса, являющегося синусоидой, модулированной функцией Гаусса, используется процедура gauspuls . Если обратиться к ней по форме:

      y= gauspuls (t, fc, bw),

      то она создает вектор значений указанного сигнала с единичной амплитудой, изменяющейся с частотой fc Гц и с шириной bw полосы частот сигнала. Если два последних аргумента не указаны, они по умолчанию приобретают значения 1000 Гц и 0,5 соответственно.

      >> y = 0.75*gauspuls(t-3, 1, 0.5);

      >> plot(t,y), grid, set(gca, ‘FontName’, ‘Arial Cyr’, FontSize’, 16)

      >> title (‘Пример применения процедуры GAUSPULS ’ )

      >> ylabel (‘Выходной процесс y ( t )’)

      Процедуры sin ( x ), cos ( x ) формируют колебания, состоящие из конечного числа гармонических составляющих.

      >> plot(t,y), grid, set(gca, ‘FontName’, ‘Arial Cyr’, “FontSize’, 16)

      >> title (‘Гармонические колебания y = 0.7* sin ( pi * t /5)

      >> ylabel (‘Выходной процесс y ( t )’)

      Процесс, являющийся последовательностью прямоугольных импульсов с периодом 2π для заданной в векторе t последовательности отсчетов времени, генерируется при помощи процедуры square . Обращение:

      y = square ( t , duty ),

      где аргумент duty определяет длительность положительной полуволны в процентах от периода волны.

      >> plot(t,y), grid, set(gca, ‘FontName’, ‘Arial Cyr’, “FontSize’, 16)

      >> title (‘ Прямоугольные волны y = 0.7*square(pi*t/5, 40);

      >> ylabel (‘Выходной процесс y ( t )’)

      Генерирование пилообразных и треугольных колебаний выполняется процедурой sawtooth . Обращение:

      y = sawtooth ( t , width )

      Параметр width определяет часть периода, в которой сигнал увеличивается.

      >> y = 0.7* sawtooth (pi*t/5, 0.5);

      >> plot(t,y), grid, set(gca, ‘FontName’, ‘Arial Cyr’, “FontSize’, 16)

      >> title (‘ Прямоугольные волны y = 0.7* sawtooth (pi*t/5, 0.5);

      >> ylabel (‘Выходной процесс y ( t )’)

      Процедура pulstran позволяет формировать колебания, являющиеся последовательностью прямоугольных, либо треугольных, либо гауссовых импульсов. Обращение

      y = pulstran (t, d, ‘func’, p1, p2, …)

      Здесь d определяет вектор значений тех моментов времени, где должны быть центры соответствующих импульсов; параметр func определяет форму импульсов; параметры p 1, p 2,… определяют необходимые параметры импульса в соответствии с формой обращения к процедуре, определяющей этот импульс.

      >> y = 0.7* pulstran (t, d, ‘tripuls’, 5);

      >> plot(t,y), grid, set(gca, ‘FontName’, ‘Arial Cyr’, FontSize’, 16)

      >> title (‘y = 0.7* pulstran (t, d, ‘tripuls’, 5’);

      >> ylabel (‘Выходной процесс y ( t )’)

      Аналогично сформируйте последовательность прямоугольных и гауссовых импульсов.

      Общие средства фильтрации

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

      h = freqs ( b , a , w )

      Процедура создает вектор h комплексных значений частотной характеристики W ( jω ) по передаточной функции W ( s ) звена, заданной векторами коэффициентов ее числителя – b и знаменателя — a , а также по заданному вектору w частоты ω . Если аргумент w не указан, процедура автоматически выбирает 200 отсчетов частоты, для которых вычисляется частотная характеристика. Если не указана выходная величина, процедура выводит в текущее графическое окно два графика — АЧХ и ФЧХ.

      Пример 4.8: Передаточная функция имеет вид

      Выведем графики АЧХ и ФЧХ.

      >>a1(1) = 1; a1(2) = 2*dz*om0; a1(3) = om0^2; b1(1)=A;

      Чтобы получить дискретную частотную характеристику по дискретной передаточной функции, заданной векторами значений ее числителя b и знаменателя a , используется процедура

      Спектральный анализ процессов

      Функции fft ( Fast Fourier Transformation ) и ifft ( Invers Fast Fourier Transformation ) осуществляют преобразования заданного вектора, соответствующие дискретному прямому и обратному преобразованию Фурье. Обращение:

      y = fft ( x , n ); x = ifft ( y , n ),

      где n — число элементов заданного вектора (а также и выходного вектора).

      >> x = sin (2* pi *5* t ) + cos (2* pi *12* t ); %Формируем входной процесс

      >> set (gca, ‘FontName’, ‘Arial Cyr’, ‘Fontsize’, 16);

      >> title (‘Входной процесс’);

      >> set (gca, ‘FontName’, ‘Arial Cyr’, ‘Fontsize’, 16);

      >> title (‘Модуль Фурье-изображения’);

      >> xlabel (‘Номер элемента вектора’);

      Выполним обратное преобразование.

      >> set (gca, ‘FontName’, ‘Arial Cyr’, ‘Fontsize’, 16);

      >> title (‘Обратное Фурье-преобразование);

      >> xlabel (‘Номер элемента вектора’);

      Для определения массива Фурье-изображения с целью построения графика Фурье-изображения в частотной области используется процедура fftshift .

      >> f 1 = -500 : 0.5 :500;

      >> plot (f1(970:1030), a(970:1030)); grid

      >> set (gca, ‘FontName’, ‘Arial Cyr’, ‘Fontsize’, 16);

      >> title (‘Модуль Фурье-изображения’);

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

      >> plot (f1(970:1030), a(970:1030)); grid

      >> set (gca, ‘FontName’, ‘Arial Cyr’, ‘Fontsize’, 16);

      >> title (‘Модуль Фурье-изображения’);

      Фильтрация осуществляется процедурой filter следующим образом:

      y = filter (b, a, x),

      где x – заданный вектор входного сигнала; y — вектор значений выходного сигнала фильтра, получаемого в результате фильтрации; b — вектор коэффициентов числителя дискретной передаточной функции фильтра; a — вектор коэффициентов знаменателя этой функции.

      Эта функция обеспечивает формирование вектора y по заданным b , a , x , в соответствии с конечно-разностным уравнением фильтра с дискретной передаточной функцией вида рациональной дроби:

      y(k) = b(1)*x(k) + b(2)*x(k-1) + b(nb+1)*x(k-nb)-

      Пример 4.13: Пусть требуется получить достаточно верную информацию о некот о ром полезном сигнале ( Yp ) синусоидальной формы с периодом T 1 = 1 и амплитудой A 1 = 0.75 , к которому добавился шум первичного преобразователя в виде более высокочастотной синусоиды с периодом T 2 = 0.2 и амплитудой A 2 = 5 , а в результате измерения еще добавился белый гауссовый шум измерителя с интенсивностью A ш = 5 . Сформируем этот сигнал как вектор его значений в дискретные моменты времени с дискретом Ts = 0.001. В результате получим такой измеренный сигнал x ( t ) :

      >> T2 = 0.2; A2 = 10; eps = pi/4;

      >> x = A1.*sin92*pi*t./T1 + A2.*sin(2*pi.*t./T2+eps) + …

      >> plot (t(10002:end),x(10002:end), grid, set(gca,‘FontName’, …

      ‘ArialCyr’, ‘FontSize’, 16),

      >> title(‘ Входной процесс ’);

      Требуется так обработать измеренные данные x ( t ), чтобы восстановить по ним полезный сигнал как можно точнее. Период собственных колебаний фильтра должен быть равен периоду колебаний полезного сигнала Tф = T 1. Чтобы после прохождения через фильтр амплитуда восстановленного сигнала совпадала с амплитудой полезного сигнала, нужно входной сигнал фильтра домножить на постоянную величину 2ξω0 2 . Сформируем этот фильтр, пропустим через него сформированный процесс, для сравнения на одном графике отобразим и восстанавливаемый процесс:

      >> T1 = 1; Tf = T1; dz = 0.05;

      >> om0=2*pi/Tf; A=1; oms = om0*Ts;

      >> plot(t(1002:end), y(t(1002:end),t(1002:end), Yp(1002:end), grid,…

      set (gca,’ ,‘FontName’, ‘ArialCyr’, ‘FontSize’, 16),

      >> title (‘Процесс на выходе фильтра’);

      Чтобы избежать фазовых искажений полезного сигнала при его восстановлении, можно воспользоваться процедурой двойной фильтрации – filtfilt.

      >> plot(t, y, t, Yp, grid, set (gca,’ ,‘FontName’, ‘ArialCyr’, ‘FontSize’, 16)

      >> title (‘Применение процедуры filtfilt ’);

      Статистический анализ процессов

      Определение спектральной плотности выполняется процедурой psd .

      Обращение: [ S , f ] = psd ( x , nfft , Fmax ),

      где x – вектор заданных значений процесса, nfft — число элементов вектора, которые обрабатываются процедурой fft , Fmax = 1/ Ts — значение частоты дискредитации сигнала, S — вектор значений СП сигнала, f – вектор значений частот, которым соответствуют найденные значения СП. В общем случае длина двух последних векторов равна nfft /2.

      >> [C,f] = psd (y1, dovg, Fmax);

      >> set (gca,’ ,‘FontName’, ‘ArialCyr’, ‘FontSize’, 16),

      >> title (‘Спектральная плотность’);

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

      >> psd ( y 1, dovg , Fmax )

      Здесь значения СП откладываются в логарифмическом масштабе в децибелах.

      Группа функций xcorr вычисляет оценку взаимной корреляционной функции (ВЛФ) двух последовательностей x и y . Обращение:

      вычисляет и выдает вектор c длины 2 N -1 значений ВКФ векторов x и y длины N . Также позволяет вычислить автокорреляционную функцию (АКФ) последовательности, заданной в векторе x .

      >> tau = -10+Ts : Ts : 10;

      >> s1r = round (length ( R) /2 – lt/2;

      >> s2r = round (length ( R) /2 + lt/2 -1;

      >> plot (tau, R (s1r:s2r), grid

      >> set (gca,’ ,‘FontName’, ‘ArialCyr’, ‘FontSize’, 16),

      >> title (‘АКФ случайного процесса’);

      >> xlabel (‘Запаздывание (с)’);

      Мы не рассматривали здесь вопросы проектирования фильтров в M atLab , а также интерактивную оболочку SPTool , содержащую средства поиска и просмотра сигналов ( Signal Browser ), проектировщик фильтров ( Filter Designer ), средство просмотра характеристик фильтров ( Filter Viewer ), средство просмотра спектра ( Spectrum Viewer ).

      5. Исследование линейных стационарных систем (пакет Control Toolbox )

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

      Ввод и преобразование моделей

      Ввод модели линейной стационарной системы (русскоязычное сокращение ЛСС, здесь же LTI — линейные, инвариантные во времени системы) в среду пакета CONTROL возможен в трех формах – в форме матриц пространства состояния, в виде коэффициентов числителей и знаменателей передаточных функций и в форме задания нулей, полюсов и коэффициента передачи системы.

      Некоторые процедуры создания LTI-моделей:

      ss — создает модель пространства состояния по заданным матрицам

      уравнений состояния системы;

      dss — создает аналогичную модель по описанию пространства состояния

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

      разрешены относительно производных;

      tf — создает модель по заданным передаточным функциям системы

      zpk — создает модель по заданным нулям, полюсам и коэффициентам

      filt создает модель по дискретным передаточным функциям, записанным в

      форме полиномов от z —1 .

      set — присваивает значения некоторым другим полям –объектов (названиям

      входов и выходов, названиям системы и т.д.).

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

      >> v = tf ([1 4], [1 2 100])

      В MatLab предусмотрена возможность «набирать» программно «схему» САУ путем предварительного ввода моделей звеньев и последующего «соединения» этих звеньев в единую структуру. Однако более простым и удобным средством создания систем из отдельных блоков является интерактивная система Simulink, рассмотренная в п .3.

      Чтобы получить отдельные характеристики (матрицы и векторы, описывающие пространство состояния, коэффициенты числителя и знаменателя передаточной функции и т.д.) полученной модели используются процедуры:

      tfdata — для получения векторов числителя и знаменателя передаточной

      ssdata — для получения значений матриц уравнений пространства состояния;

      zpkdata — для получения векторов значений полюсов и нулей системы.

      get дает возможность получить полную характеристику модели.

      Пакет предоставляет широкий набор процедур, осуществляющих анализ САУ с самых различных точек зрения и, прежде всего, определение откликов системы на внешние воздействия как во временной, так и в частотной области:

      impulse — нахождение отклика на единичное импульсное входное

      step — нахождение реакции системы на единичный скачок входного

      initial — определение собственного движения системы при произвольных

      lsim — определение реакции системы на входное воздействие

      произвольной формы, задаваемое в виде вектора его значений во

      Кроме того: процедуры представления реакции системы на внешние гармонические воздействия в частотной области ( bode , nyquist , nichols , sigma ); процедуры, вычисляющие отдельные характеристики и графически показывающие расположение полюсов и нулей системы ( pole , zpkdata , gram , damp , pzmap , rlocus ).

      Если в командном окне набрать ltview , то можно вызвать окно обозревателя LTI –объектов и в интерактивном режиме строить все графики, причем для нескольких систем одновременно.

      Некоторые процедуры, используемые для синтеза САУ:

      lqr , lqry — осуществляют проектирование линейно-квадратичного

      оптимального регулятора для систем непрерывного времени;

      lqrd , dlqr — для проектирования дискретного оптимального линейно-

      kalman — выполняет расчет фильтра Калмана для непрерывных или

      1. Гультяев А, Имитационное моделирование в среде Windows. – С-Пб.: “КОРОНАпринт”, 1999. 2. Лазарев Ю. MatLAB 5.x. – Киев: «Ирина», BHV, 2000.

      1. MatLAB как научный калькулятор

      2. Программирование в среде MatLAB

      3. Моделирование систем в пакете Simulink

      4. Цифровая обработка сигналов (Signal Processing Toolbox)

      5. Исследование линейных стационарных систем (пакет Control Toolbox )

      БИБЛИОТЕКА МОДУЛЕЙ (БЛОКОВ) SIMULINK

      Библиотека блоков SIMULINK представляет собой набор визуальных объектов, ис пользуя которые можно собирать, как из кубиков, произвольную конструкцию.

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

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

      Для удобства работы пользователя библиотека блоков разбита на семь разделов. Шесть из них являются базовыми и не могут изменяться пользователем (за исключением внешнего оформления):

      Sources (Источники),

      Sinks (Получатели),

      Discrete (Дискретные элементы),

      Linear (Линейные элементы),

      Nonlinear (Нелинейные элементы),

      Connections (Соединения).

      Седьмой раздел — Blocksets & Toolboxes (Наборы блоков и инструменты) — содержит блоки, относящиеся к компонентам MATLAB , включенным пользователем в рабочую конфигурацию пакета. При этом для каждой компоненты создается свой подраздел библиотеки. При минимальной рабочей конфигурации в разделе Blocksets &Toolboxes имеется только один подраздел — SIMULINK Extras (Дополнение к SIMULINK ). Этот подраздел, в свою очередь, разбит на шесть частей, три из которых являются дополнением к одноименным основным разделам библиотеки, а три других имеют самостоятельное значение. Это наборы блоков Transformations (блоки пересчета координат и шкал температуры), Flip — Flops (блоки, соответствующие основным типам триггеров): Linearization (содержит единственный блок, реализующий функцию линейной аппроксимации).

      Каждый блок, входящий в библиотеку SIMULINK , имеет по крайней мере один параметр настройки. Задавая требуемое значение параметра (или выбирая его из предлагаемого меню), пользователь имеет возможность скорректировать функ­цию, реализуемую данным блоком. Чтобы открыть окно настройки параметров, нужно дважды щелкнуть на изображении блока. Однако возможность изме­нять значения параметров появляется только после того, как блок будет помещен в окно блок-диаграммы.

      Окна настройки параметров всех библиотечных блоков имеют идентичную структуру и содержат краткую характеристику блока, поля ввода (или выбора) значений параметров блока и 4 кнопки:

      Apply применить;

      Revert вернуть предыдущее значение параметров;

      Help вызов файла помощи в формате html ;

      Close закрыть окно настроек.

      Измененные значения параметров вступают в силу после «нажатия» кнопки Apply . Чтобы запустить модель на исполнение с новыми параметрами, закрывать окно настроек не обязательно.

      Вернемся к основным разделам библиотеки SIMULINK . Как уже было сказа­но, их шесть.

      Раздел Sources (Источники) Блоки, входящие в этот раздел, предназначены для формирования сигналов, обеспечивающих управление работой модели в целом или отдельных ее частей — блоки-источники имеют по одному выходу и не имеют входов.

      Итак, в качестве источников сигналов (входных величин) могут использоваться следующие блоки:

      Constant — формирует постоянную величину (скаляр, вектор или матрицу);

      Signal Generator — создает непрерывный сигнал произвольной формы;

      Step генерирует единичный дискретный сигнал с заданными параметрами;

      Ramp — создает линейно возрастающий (убывающий) сигнал;

      Sine Wave — генератор гармонических колебаний;

      Discrete Pulse Generator — генератор дискретных импульсных сигналов;

      Chirp Signal — генератор гармонических колебаний переменной частоты;

      Clock — источник непрерывного временного сигнала;

      Digital clock — формирует дискретный временной сигнал;

      Random Number — источник дискретного сигнала, амплитуда которого является случайной величиной, распределенной по нормальному закону;

      Uniform Random Number — источник дискретного сигнала, амплитуда которо­го является равномерно распределенной случайной величиной;

      Band Limited White Noise — генератор «белого шума» с ограниченной полосой.

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

      Первый из них — From File — предназначен для ввода в модель данных, хра­нящихся в МАТ-файле.

      Второй From Workspace — обеспечивает ввод в модель данных непосред­ственно из рабочей области MATLAB .

      Структура данных в МАТ-файле представляет собой многомерный массив с переменным числом строк, которое определяется числом регистрируемых пе­ременных. Элементы первой строки содержат последовательные значения мо­дельного времени, элементы в других строках — соответствующие им значе­ния переменных.

      Как и другие библиотечные блоки, блоки — «источники» могут настраиваться пользователем (за исключением блока Clock , работа которого основана на исполь­зовании аппаратного таймера компьютера).

      Блок Step . Он обеспечивает формирование единичного управляющего сигна­ла, который может использоваться в любой точке модели. Блок имеет 3 параметра настойки:

      Step time (Шаг времени) — определяет длительность сигнала, исходное зна­чение параметра равно 1.

      Initial value (Начальное значение) — задает значение амплитуды сигнала в начальный момент времени; исходное значение — 0.

      Final value (Конечное значение) — задает значение амплитуды сигнала по ис­течении шага моделирования; исходное значение этого параметра равно 1.

      Блок Discrete Pulse Generator. Окно настроек блока позволяет изменять значения пяти параметров:

      • амплитуды сигнала ( Amplitude ),

      • величины периода сигнала ( Period ),

      ширины импульса ( Pulse width ),

      • величины задержки сигнала ( Phase delay ),

      • шаг изменения модельного времени ( Sample time ).

      Значения параметров 2. 4 должны задаваться как целое число шагов модельного времени ( number of samples ). Поэтому выбор значений параметров блока целесооб­разно начинать с выбора величины Sample time . Размер шага можно указать как в фор­ме константы, так и в форме вычисляемого выражения. Если вычисленное значение является дробным, оно округляется до целого. Аналогично может быть задано и зна­чение амплитуды, но в случае дробной величины округление не производится.

      Блок Random Number обеспечивает формирование сигналов, амплитуда ко­торых является случайной величиной, распределенной по нормальному закону с заданными параметрами. Блок имеет четыре параметра настройки. Первые два — Mean и Variance являются параметрами нормального закона (среднее и дисперсия), третий — Initial seed задает начальное значение для инициализации генератора последовательности случайных чисел. При фикси­рованном значении этого параметра генератор всегда вырабатывает одну и ту же последовательность СЧ. Четвертый параметр ( Sample time ) используется так же, как и в рассмотренных ранее блоках.

      Блок Uniform Random Number обеспечивает формирование сигналов, амп­литуда которых является случайной величиной, распределенной равномерно в заданном интервале.

      В блоке имеются такие же параметры настройки Initial seed и Sample time , как и в Random Number . Еще два параметра ( Minimum и Maximum ) задают диапазон распределения СВ.

      Блок Digital Clock. Этот блок имеет единственный параметр настройки — ве­личину шага изменения модельного времени ( Sample time ). Величина шага за­дается таким же образом, как и в блоке Discrete Pulse Generator . Если величина шага задана выражением, то оно вычисляется только однажды, и полученное зна­чение используется на всем интервале моделирования. Особенность блока Digital Clock состоит в том, что он не только формирует величину шага, но и вычисляет новое значение модельного времени, которое используется для проверки усло­вия окончания моделирования. Очередное значение модельного времени вычис­ляется как сумма предыдущего значения и величины шага моделирования.

      Блок From File имеет в качестве параметра настройки имя МАТ-файла, из ко­торого будут считываться требуемые данные. Если указывается только имя файла, то поиск файла производится в открытой папке. При необходимости можно указать полный путь доступа к файлу. После закрытия окна настроек имя файла выводится на изображении блока. Немного забегая вперед отметим, что в разделе библиотеки Получатели имеется блок То File , который выполняет запись резуль­татов моделирования в МАТ-файл.

      Блок From Workspace , как было сказано ранее, обеспечивает использование в модели данных, хранящихся в рабочей области (собственной оперативной па­мяти) MATLAB . Блок имеет один составной параметр настройки, который пред­ставляет собой упорядоченный список используемых данных, заключенный в квад­ратные скобки. Список должен содержать не менее двух элементов, первым из которых явля­ется вектор значений модельного времени с именем tout . Остальные элементы спис­ка представляют собой векторы значений вводимых из рабочей области величин. Длина каждого из этих векторов должна быть равна длине вектора tout . Как пра­вило, в качестве элементов списка данных используются величины, помещенные в рабочую область MATLAB с помощью блока То Workspace , входящего в раздел библиотеки Sinks (Получатели).

      Раздел Sinks (Получатели) Блоки, собранные в этом разделе, различаются по функциональному предназначению.

      Условно их можно разделить на три вида:

      1) блоки, используемые при моделировании в качестве «смотровых окон». К ним относятся:

      блок Scope — описан ниже;

      блок XYGraph , обеспечивающий создание двумерных графиков в прямоугольн о й системе координат;

      блок Display , предназначенный для отображения численных значений величин:

      2) блоки, обеспечивающие сохранение промежуточных и/или выходных резуль т атов моделирования:

      блок То File ;

      блок То Workspace ;

      3) блок управления моделированием Stop Simulation , который позволяет прервать моделирование при выполнении тех или иных условий. Блок срабатывает в том случае, если на его вход поступает ненулевой сигнал.

      Блок Scope . Этот блок позволяет в процессе моделирова­ния наблюдать динамику изменения интересующих исследователя характе­ристик системы. Создаваемое с его помощью «смотровое окно» напоминает экран измерительного прибора. Открыть окно Scope можно только после того, как блок помещен па поле блок-диаграммы. Размер и пропорции окна можно изменять произвольно, ис­пользуя курсор мыши.

      По оси ординат шкалы измерений откладываются значения наблюдаемой величины, по оси абсцисс — значения модельного времени. По умолчанию для оси ординат используется диапазон [-5; 5], а для оси модельного време­ни — [0; 10].

      Блок-диаграмма может быть построена таким образом, чтобы на вход блока Scope поступала векторная величина. В этом случае для каждого элемента векто­ра в окне строится отдельная кривая, отражающая динамику его изменения. Вы­водимые кривые различаются цветом, который устанавливается автоматически. Одновременно в окне Scope может отображаться до 30 кривых.

      Для управления параметрами окна Scope в нем имеется панель меню, содер­жащая семь кнопок

      1 — изменение масштаба осей графика;

      2 — изменение масштаба по оси абсцисс;

      3 — изменение масштаба по оси ординат;

      4 — автоматическая установка оптимального масштаба осей (автошкалирование);

      5 — сохранение установленного масштаба осей;

      6 — вызов диалогового окна настройки параметров блока Scope ;

      7 — печать содержимого окна Scope .

      Кнопки 1 . З являются альтернативными, т. е. в каждый момент времени может быть «нажата» только одна из них.

      Для изменения масштаба по выбранной оси координат необходимо:

      • «нажать» соответствующую кнопку изменения масштаба;

      • подвести курсор мыши к тому участку графика, который должен быть ото­бражен в новом масштабе;

      • нажать клавишу мыши (один раз!).

      Первое нажатие приводит к четырехкратному увеличению масштаба, каж­дое последующее дает увеличение масштаба в два раза.

      При «нажатии» кнопки 6 открывается окно Properties : Scope , содержащее две вкладки:

      Axes (оси), позволяющая устанавливать параметры осей графика;

      Setting (установки), предназначенная для ввода значений дополнительных параметров блока Scope .

      В нижней части окна расположены кнопки, аналогичные кнопкам окон настрой­ки параметров других библиотечных блоков: Apply (Применить); Revert (Вернуть исходные значения); Help (Вызов помощи в формате HTML ); Close (Закрыть

      На вкладке Axes имеются поле Default limits (Диапазоны осей) и флажок Hide tick label (Скрыть обозначение осей).

      В поле Default limits устанавливаются верхняя ( Y тах) и нижняя (Ymin> границы оси ординат, а также наибольшее отображаемое значение модельного времени на оси абсцисс ( Time range ).

      Относительно оси времени необходимо сделать дополнительное п ояснение.

      Если величина заданного интервала моделирования не превышает значение Time range (и, следовательно, весь процесс «умещается» в окне Scope ), то под графиком в строке Time offset : выводится 0.

      Если же интервал моделирования превышает значение Time r a nge . то отображается только отрезок времени, равный Т m — п x ( Time range ), где Тm — длит ельность интервала моделирования, п — целое число. При этом в строке Тime offset выводится величина «скрытого» интервала времени (длиной п x ( Time range )). Например, если значение Time range равно 7, а длительность интервала моделирования составляет 16 единиц времени, то в окне Scope будет выведен график моделируемого процесса за последние 2 единицы времени, а строка под графиком будет иметь вид: Time offset : 14.

      Флажок Hide tick label позволяет изменить форму вывода графика в окне Scope . Если он установлен, то оси графика не отображаются, и график занима ет всю ра бочую область окна.

      Чтобы установленные значения параметров вступили в силу, необхо димо «на жать» кнопку Apply , расположенную в нижней части окна Properties .

      На вкладке Setting имеются следующие поля:

      1. Поле General обеспечивает выбор дискретности измерения отображ аемых величин (характеристик системы и модельного времени).

      Установка дискретности измерения характер ист ик системы и времени выпол няется раздельно. Выбор производится с помощью выпадающего меню, содержащего два пункта:

      Decimation — установка дискретности измерения характеристик системы;

      Sample time установка дискретности измерения модельного в реме н и.

      Для ввода требуемых значений используется строка редактирования, рас поло женная справа от меню. По умолчанию для измеряемых характеристик дискретность равна 1, а для мо дельного времени — нулю. Это означает, что значение наблюдаемой характеристики измеряется на каждом шаге моделирования, а модельное время счи тается непрерывным. Если параметр Decimation установить равным, например , 3 , то знач ение исследуемой характеристики будет определяться только 1 раз в течение трех шагов моделирования. Параметр Decimation может принимать только целочисленные значения. Дискретность измерения модельного времени — это фак тически ве личина шага моделирования. По умолчанию она равна 0,02. Для дискретных сис тем величина шага может быть задана либо в виде положительной константы, либо в форме вычисляемого выражения. Дискретность изменения модельного времени определяет момент окончания вывода данных в окно Scope : если очередной ин тер вал заканчивается за пределами окна, то данные для него не выводятся.

      Замечание. Параметр Sample time имеется практически во всех библиотечных блоках SIMULINK . Для каждого блока значение этого параметра устанав ли вается индивидуально. Если блок реализует некоторую функцию, то параметр Sample time определяет дискретность вычислений. Поэтому для э фф ектной работы модели необходимо согласовывать установку параметра для в заимосвязанных блоков.

      2. Поле Data history позволяет задавать максимальный объем и способ хранения отображаемых в окне данных. Объем сохраняемых данных ( Limit rows to last ) в водится в строке редактирования. Способ хранения указывается с помощью флаж к а Save data to workspace : если он установлен, то отображаемые в окне Scope данные сохраняются в рабочей области MATLAB в виде матрицы, аналогичной по с труктуре МАТ-файлу. Имя матрицы указывается в строке редактирования (по молчанию — ScopeData ).

      3. Флажок Floating Scope предназначен для изменения способа использова­ния блока Scope в блок-диаграмме. При установленном флажке Scope отобра­жается как блок без входа, и если он был связан по входу с другими блоками, то эти связи «обрываются».

      Блок XYGraph . Этот блок также относится к «смотровым окнам». Он пред­ставляет собой упрощенный вариант блока Scope и обеспечивает построение гра­фиков зависимостей произвольных величин, фигурирующих в модели. Блок име­ет два входа, первый из которых предназначен для ввода аргумента, второй — для ввода значений функции этого аргумента.

      Окно XYGraph откры­вается автоматически при запуске модели. Оно имеет собственное меню, содержа­щее 4 раздела:

      • раздел File включает стандартные команды работы с файлами, а также опции вывода графиков на печать;

      • раздел Edit содержит единственную доступную команду — Copy Figure , кото­рая позволяет копировать содержимое окна XYGraph в буфер обмена;

      • содержание разделов Window и Help совпадает с содержанием одноименных разделов меню командного окна MATLAB .

      Блок XYGraph имеет следующие параметры настройки :

      — диапазоны осей графика ( X min , Х-тах — для оси абсцисс н Y min , Y max для оси ординат);

      • шаг модельного времени ( Sample time ), по умолчанию его значение равно -1. Это означает, что величина шага совпадает с установленной для модели в целом (либо со значением одноименного параметра предшествующего блока).

      Блок Display . Он предназначен для вывода на экран численных значений вели­чин, фигурирующих в модели. Блок имеет 4 параметра настройки .

      Первый — Format задает формат вывода; формат выбирается с помощью выпадающего меню, содержащего 5 пунктов: short , long , short _ e , long _ e , bank . Пред­лагаемые форматы вывода аналогичны форматам, используемым в командном окне MATLAB . Следующие два параметра используются так же, как и одноименные параметры блока Scope :

      Decimation определяет периодичность вывода значений в окне Display ;

      Переключатель Floating display позволяет указывать способ использования блока Display в блок-диаграмме;

      Поле Sample Time задает величину шага модельного времени, т. е. дискретность вывода данных в окно Display .

      Блок Display может использоваться для вывода как скалярных, так и вектор­ных данных. Если отображаемая величина является вектором, то исходный фор­мат блока изменяется автоматически. Об изменении формата говорит маленький черный треугольник, появляющийся в нижнем правом углу блока. Для каждого элемента вектора создается свое мини-окно, но чтобы они стали видимы, необхо­димо «растянуть» изображение блока. Для этого следует выделить блок, подвести курсор мыши к одному из его углов (курсор при этом примет форму двойной стрел­ки), нажать клавишу мыши, и , не отпуская ее, растянуть изображение блока. Если хотя бы один элемент вектора остался «за кадром», на изображении блока Display по-прежнему присутствует черный треугольник. В этом случае операцию «растягивания» блока следует повторить

      Блок То File . Как уже было сказано, этот блок используется в паре с блоком From File из раздела Sources . Он обеспечивает запись в МАТ-файл данных, полученных в ходе моделирова­ния. Блок имеет следующие параметры настройки:

      File name — имя МАТ-файла, в который будут записываться данные (может быть указан полный путь доступа к файлу, по умолчанию — untitled . mat ); имя фай­ла выводится на изображении блока в блок-диаграмме;

      Variable name — имя переменной, по которому можно обращаться к данным, записанным в файле (для того. например, чтобы просмотреть или изменить их в командном окне MATLAB ); по умолчанию используется стандартное имя ans;

      Decimation дискретность записи данных в файл; при Decimation =1 запись производится на каждом шаге моделирования; параметр может принимать только целочисленные значения;

      Sample Time — величина шага моделирования для данного блока.

      Блок То Workspace . Он также имеет «пару» из раздела Sources — блок From Workspace и предназначен для сохранения данных, полученных в процессе моделирования, в рабочей области MATLAB . Данные сохраняются в виде мат­рицы, структура которой отличается от структуры данных в МАТ-файле тем, что:

      • значения сохраняемых величин расположены по строкам, а не по столбцам:

      • не регистрируются значения модельного времени. Блок имеет 4 параметра настройки:

      Variable name — имя, под которым данные сохраняются в рабочей области (по умолчанию — Simout );

      Maximum number of rows (Максимальное количество строк) — предельно до­пустимое число шагов моделирования, для которого регистрируются данные (по умолчанию задается константой inf, то есть данные регистрируются на всем ин­тервале моделирования);

      Decimation дискретность регистрации данных;

      Sample time — величина шага (дискретность изменения) модельного времени.

      Два последних параметра имеют тот же смысл, что и одноименные параметры блока То File .

      Раздел Discrete (Дискретные элементы) В этот раздел входят блоки, с помощью которых в модели может быть описано поведение дискретных систем. Напомним, что различают два основных типа таких систем: системы с дискретным временем и системы с дискретными состояниями . Блоки, входящие в рассматриваемый раздел библиотеки SIMULINK , обеспечивают моделирование как тех. так я других. Раздел содержит 8 блоков :

      1. Unit Delay блок задержки сигнала.

      2. Discrete — Time Integrator — дискретный сумматор (счетчик) времен.

      3. Zero — Order Hold экстраполятор нулевого порядка.

      4. First — Order Hold — экстраполятор первого порядка.

      5. Discrete State Space — блок формирования состояния системы. Блоки, обеспечивающие Z-преобразование входного сигнала:

      6. Discrete Filter.

      7. Discrete Transfer Fen.

      8. Discrete Zero-Pole.

      Блок Unit Delay обеспечивает задержку входного сигнала на заданное число периодов (шагов модельного времени).

      Параметрами настройки для этого блока являются:

      1. Начальное значение сигнала ( Initial condition ) значение амплитуды сиг­нала в момент активизации блока; оно может быть задано либо в виде числовой константы, либо в виде вычисляемого выражения.

      2. Величина задержки ( Sample time ) — определяет число шагов модельного вре­мени, в течение которого сохраняется значение сигнала, поступившего на вход бло­ка; как и первый параметр, может задаваться в любой форме, но значение пара­метра должно быть положительным.

      Блок DiscreteTime Integrator выполняет суммирование интервалов времени между поступлениями входного сигнала. Блок может быть использован для уп­равления логикой работы отдельных компонентов ИМ или модели в целом. В ча­стности, суммарная длительность работы некоторой подсистемы может служить условием «досрочного» окончания моделирования.

      Блок имеет следующие параметры настройки :

      • используемый метод интегрирования ( Integrator method ); с помощью выпа­дающего меню пользователь может выбрать один из трех методов: прямой метол Эйлера; обратный метод Эйлера; метод трапеций;

      • подключение дополнительного управляющего сигнала ( External reset ).

      • использование внешней установки начального значения входного сигнала

      (Initial condition source).

      Выбор значений двух последних параметров также производится с помощью

      Параметр External reset может принимать следующие значения:

      none дополнительный управляющий сигнал не используется;

      rising для управления используется возрастающий сигнал;

      falling для управления используется ниспадающий сигнал;

      either на работу блока влияет любое изменение амплитуды управляющего

      Параметр Initial condition source принимает одно из двух значений:

      internal используется собственная установка начального значения сумматора;

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

      предполагают наличие дополнительных входных сигналов, то на графическом

      изображении блока появляются дополнительные входные порты (после нажатия

      кнопки Apply в окне настроек блока);

      • начальное состояние сумматора ( Initial condition ); значение вводится в строке редактирования либо как числовая константа, либо в виде вычисляемо­го выражения;

      • флажок Limit output (Ограничение выходного значения сумматора) опреде­ляет, будут ли использоваться следующие ниже 4 параметра настройки;

      • верхнее предельное значение времени ( Upper saturation limit ); по умолчанию -не ограничено ( inf );

      • нижнее предельное значение времени ( Lower saturation limit ); по умолча­нию параметр имеет значение inf ;

      • флажок показать порт насыщения ( Shore ) saturation port );

      • флажок показать порт состояния ( Show state port ).

      Параметры 5. 9 используются следующим образом. Если флажок Limit output установлен, то при переходе значения сумматора через верхний или нижний пре­дел на дополнительных выходах блока ( saturation port и state port ) формируется единичный сигнал. Чтобы этот сигнал можно было использовать для управления работой модели, флажки Show saturation port и Show state port должны быть включены (при этом на графическом изображении блока появляются обозначения портов). Особенность порта state port состоит в том, что снимаемый с него сигнал может быть использо­ван только для прерывания алгебраического цикла или для согласования состоя­ния подсистем модели.

      Раздел Linear (Линейные элементы) Раздел содержит блоки, которые можно условно разделить на две группы: бло­ки, непосредственно предназначенные для описания линейных непрерывных сис­тем, и блоки общего назначения, которые могут быть использованы в модели лю­бой системы :

      К первой группе относятся:

      1. Gain — «линейный усилитель» (умножитель).

      2. Transfer Fen — «передаточное звено».

      3. State — Space — блок формирования состояния системы.

      4. Zero — Pole .

      5. Derivative — блок вычисления производной входного сигнала по времени ( du / dt ).

      6. Dot Product блок вычисления свертки (скалярного произведения) двух входных сигналов.

      7. Matrix Gain — матричный усилитель (умножитель) входного сигнала. Во вторую группу входят три блока:

      1. Integrator — сумматор непрерывного времени.

      2. Sum — блок суммирования входных сигналов.

      3. Slider Gain — блок изменения коэффициента усиления. В соответствии с общей концепцией книги более подробно будут рассмотрены блоки, относящиеся ко второй группе.

      Блок Integrator производит вычисление «времени существования» входного сигна­ла, и, подобно блоку DiscreteTime Integrator , может быть использован для определе­ния временных характеристик моделируемой системы (или отдельных ее подсистем).

      Параметры настройки блока полностью идентичны параметрам настройки бло­ка DiscreteTime Integrator , рассмотренным ранее. Некоторое отличие имеет лишь последний из ни-х: вместо дискретности суммирования в данном случае требуется указать точность вычислений ( Absolute tolerance ).

      Блок Sum может использоваться в двух режимах:

      • сложения входных сигналов (в том числе с разными знаками);

      • суммирования элементов вектора, поступающего н а вход блока. Для управления режимами работы блока используется единственный параметр настройки — List of sings (Список знаков).

      Значения этого параметра могут задаваться одним из трех способов:

      • в виде последовательности знаков «+» и «-»; при этом число знаков опреде­ляет число входов блока, а сам знак — полярность входного сигнала;

      • в виде целой положительной константы (больше 1); ее значение равно числу входов блока, а все входы считаются положительными (например, ввод констан­ты 4 аналогичен вводу «списка знаков» в форме ++++);

      • в виде символа «I», который указывает на использование блока во вто­ром режиме.

      Блок Slider Gain является одним из элементов взаимодействия пользователя с моделью в процессе моделирования. В активном состоянии блок представляет собой диалоговое окно, обеспечивающее установку значения некоторого параметра модели с помощью «ползункового» регулятора .

      Блок Slider Gain становится активным после того, как будет помещен в окно блок-диаграммы создаваемой модели. Чтобы открыть окно с регулятором, необходимо дважды щелкнуть на изображении блока . Окно Slider Gain имеет три поля ввода: для указания нижнего уровня параметра ( Low ), ве рхнего уровня ( High ) и текущего значения. Текущее значение должно ле жа ть внутри диапазона [ Low , High ]. Однако при выборе нового диапазона не обх одимо сначала указать новое значение параметра, а затем изменить гра­ны диапазона.

      Раздел Nonlinear (Нелинейные элементы) По составу элементов это самый большой и, пожалуй, наиболее полезный для ими­тационного моделирования раздел библиотеки SIMULINK . Он содержит 30 блоков, которые условно можно разделить по назначению на несколько групп .

      Первую группу образуют блоки, реализующие элементарные математические функции. К таким блокам относятся:

      1. Блок Abs — формирует абсолютное значение входного сигнала (этот блок не имеет параметров настройки).

      2. Блок Trigonometric Function обеспечивает преобразование входного сиг­нала с помощью одной из тригонометрических функций; выбор требуемой фун­кции производится в окне настройки параметров блока с помощью «выпадаю­щего» меню (оно становится доступным только после перемещения блока в поле блок-диаграммы).

      3. Блок Math Function позволяет использовать для преобразования входного сигнала элементарные нетригонометрические функции (вычисление экспонен­ты, натурального и десятичного логарифмов, возведение в степень, извлечение квадратного корня и т. д.). Нужная функция выбирается с помощью «выпадаю­щего» меню.

      4. Блок Rounding Function содержит различные функции округления значе­ния амплитуды входного сигнала; выбор конкретного метода округления выпол­няется также с помощью «выпадающего» меню.

      5. Блок MinMax обеспечивает поиск минимального или максимального эле­мента входного вектора. Цель поиска задается в окне настроек блока. Второй па­раметр настройки — число входов блока.

      Для блоков 2. 5 имя выбранной функции выводится на графическом изобра­жении блока.

      6. Блок F с n — это универсальный «вычислительный» блок; в качестве пара­метра настройки блока можно ввести любое вычисляемое выражение, аргументом которого является значение входного сигнала; особенность этого блока состоит в том, что аргумент выражения должен быть указан явно. Для обозначения входно­го сигнала используется символ и. Если входной сигнал является вектором, то для операций, выполняемых над отдельными его элементами, аргумент также должен быть задан явно. Например, сложение двух элементов входного сигнала должно быть записано в таком виде: и( 1 )+и(2) .

      Замечание. Вычисляемое выражение должно давать только скалярное значе­ние. Это ограничение снимается при использовании блока MATLAB Fen .

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

      В первом случае использование блока MATLAB Fen аналогично использова­нию блока Fen . Вычисляемое выражение вводится в окне MATLAB function . Если оно содержит только обращение к библиотечной функ­ции, то ее аргумент можно явно не указывать. Например, для вычисления квад­ратного корня входного значения достаточно ввести имя функции sqrt .

      Другой, более существенной, особенностью блока MATLAB Fen является нали­чие второго параметра настройки — Outputwidth (Ширина выходного сигнала). Это означает, что результатом работы блока может быть не только скаляр, но и вектор. Число его элементов должно быть равно значению параметра Output width .

      8. Блок Product позволяет выполнять умножение или деление нескольких вход­ных сигналов (величин). В качестве параметров настройки могут указываться чис­ло входов блока и вид выполняемой операции.

      Задание значений этих параметров аналогично настройке блока Sum из разде­ла Лин ейные элементы. В качестве знака операции умножения используется сим­вол «*», а для указания операции деления — символ «/».

      Если в качестве значения параметра настройки блока ввести « 1 », то будет вы­числяться произведение элементов входного вектора (в этом случае на изображе­нии блока выводится символ Р).

      Вторую группу образуют блоки, обеспечивающие логическую обработку вход­ного сигнала. Наиболее важными и полезными из них являются следующие.

      1. Блок Logical Operator содержит набор основных логических операций: AND (операция логического умножения «И»), О R (логическое сложение «ИЛИ»), NAND («И-НЕ»), NOR («ИЛИ-НЕ»), XOR (сложение по модулю 2), NO Т (операция ло­гического отрицания). Выбор требуемой функции выполняется с помощью «вы­падающего» меню; имя функции отображается на иконке блока.

      Другим параметром настройки блока является число аргументов логической операции, то есть число входных портов блока ( Number of input ports ). Его значе­ние вводится в строке редактирования и должно быть натуральным числом. Мак­симально допустимое число входов блока практически не ограничено.

      2. Блок Relational Operator реализует операции отношения над двумя вход­ными сигналами: >, <, >, <, = =(тождественно), != (не равно). Конкретная опера­ция выбирается при настройке параметров блока посредством «выпадающего» меню. Знак операции выводится на изображении блока.

      3. Блок Combinatorial Logic обеспечивает преобразование входного сигнала в соответствии с заданной таблицей истинности. С его помощью можно описать на уровне «вход-выход» логику работы любого устройства или системы. Единственное ограничение заключается в том, что входные данные и результат должны быть представимы в форме булевых величин. Combinatorial Logic , можно сказать, что он представляет собой обобщенную мо­дель конечного детерминированного автомата. Для такого автомата заранее из­вестны все возможные значения выходного сигнала, и набор их ограничен. При­чем каждое выходное значение однозначно соответствует определенному входному воздействию. На вход блока может подаваться как скалярный, так и векторный сигнал. Ска­ляр в данном случае интерпретируется как одна булева величина, а вектор — как их совокупность. При этом любое ненулевое значение входного сигнала соответ­ствует значению «истина».

      Блок имеет единственный параметр настройки — Truth table (таблица истинно­сти), который представляет собой список возможных выходных значений автома­та. При задании таблицы истинности необходимо соблюдать два основных правила:

      1) число строк таблицы должно быть равно 2 n , где п — число элементов (размерность) входного сигнала;

      2) входы таблицы считаются заданными.

      Например, если на вход блока Combinatorial Logic подается векторный сиг нал с n =2, то параметр Truth table представляет собой список из четырех элементов например такой: [0;1;0;1] . Таким образом, параметр Tmth table описывает только значения выходного сигнала. Разрядность выходного сигнала, а также значение каждого его разряда выби­раются пользователем на основе собственных представлений о логике работы со­здаваемой S -модели. Л юбое ненулевое значение сигнала в блоке Combinatorial Logic трактуется как «истина». Это относится и к входному, и к вы­ходному сигналу. Сформированный выходной сигнал может быть или выведен в какое-либо «смотровое окно», или передан на другие блоки S -модели.

      Следующие четыре блока можно рассматривать как вариант модификации бло­ка Combinatorial Logic для непрерывного входного сигнала.

      Dead Zone (Мертвая зона) — заменяет значение входного сигнала, лежащее в заданном диапазоне, нулем;

      Look up Table (Таблица поиска) — выполняет линейную интерполяцию вход­ного сигнала в соответствии с заданной табличной функцией.

      Look up Table (2 D ) — производит линейную интерполяцию двумерного вход­ного сигнала;

      Hit Crossing (Обнаружено пересечение) — позволяет идентифицировать момент времени, когда входной сигнал «пересекает» некоторое значение: при появлении такой ситуации на выходе блока формируется единичный сигнал.

      Блок Hit Crossing во многих случаях оказывается весьма удобным средством уп­равления логикой работы S -модели, поэтому остановимся на нем немного подробнее. Блок имеет три параметра настройки :

      Hit crossing offset определяет значение, «пересечение» которого необходи­мо идентифицировать;

      Hit crossing direction позволяет указать направление «пересечения», которое интересует разработчика модели; значение этого параметра выбирается с помо­щью «выпадающего» меню, которое содержит три пункта:

      rising (возрастание),

      falling (убывание),

      either (в обоих направлениях);

      Show output port (показать выходной порт) — флажок, с помощью которого можно выбрать формат использования блока.

      При одновременном выполнении условий, задаваемых параметрами Hit crossing offset и Hit crossing direction , на выходе блока формируется единичный импульс. Его длительность определяется значением параметра Sample time бло­ка, предшествующего в модели блоку Hit crossing . Если этот параметр отсутствует, то единичный сигнал на выходе блока Hit crossing существует до его сле­дующего срабатывания.

      В третью группу можно объединить блоки, реализующие функцию задержки входного сигнала. Таких блоков в разделе Nonlinear три:

      Memory ( Память );

      Transport Delay ( Задержка передачи )

      Variable Transport Delay (Изменяемая задержка передачи).

      Блок Memory является наиболее «слабым» из них по своим возможностям. Он выполняет задержку входного сигнала только на один шаг модельного времени. Блок имеет два параметра настройки .

      Initial condition (Начальное состояние) — задает значение амплитуды вход­ного сигнала на момент инициализации блока; в большинстве случаев целесооб­разно принимать это значение равным нулю; флажок Inherit sample time (насле­дование шага времени) позволяет выбрать величину шага, на который будет производиться задержка сигнала:

      • если флажок снят, то используется минимальный шаг, равный 0.1 единицы модельного времени;

      • если флажок установлен, то величина шага определяется значением Sample time блока, предшествующего блоку Memory .

      Блок Transport Delay обеспечивает задержку сигнала на заданное количество шагов модельного времени, причем необязательно целое. Настройка блока произ­водится с помощью трех параметров:

      Time delay (Время задержки) — количество шагов модельного времени, на ко тор ое задерживается сигнал; может вводиться либо в числовой форме, либо в форме вычисляемого выражения;

      Initial input (Начальный ввод) — значение амплитуды входного сигнала в мо мен т инициализации блока (по умолчанию равно 0);

      Initial buffer size (Начальный размер буфера) — объем памяти (в байтах), выделяемой в рабочей области MATLAB для хранения параметров задержанного сиг нал а; значение параметра должно быть кратно 8 (по умолчанию — 1024).

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

      Данный блок, как и предыдущий, имеет 3 параметра настройки: Maximum delayаксимальная задержка), Initial input и Buffer size . Назначение двух последних п а ра метров идентично назначению одноименных параметров блока Transport delay . Параметр Maximum delay определяет наибольшую допустимую величину задержки информационного сигнала. Если величина задержки, определяемая управляющим сигналом, превышает этот порог, то она принудительно устанав­ливается равной параметру Maximum delay . Его значение измеряется числом ша­гов модельного времени, может иметь дробное значение и вводиться либо в чис­ловой форме, либо в форме вычисляемого выражения.

      Четвертую группу образуют «блоки-переключатели», то есть блоки, управля­ющие направлением передачи сигнала. Таких блоков четыре:

      Switch (Переключатель);

      Manual Switch (Ручной переключатель);

      Multiport Switch (Многовходовый переключатель)

      Relay (Реле).

      Блок Switch имеет три входа: два информационных (1- й и 3-й) и один управ­ляющий (2-й). Логика работы блока состоит в следующем. Если амплитуда сиг­нала, поступающего на 2-й вход, не меньше заданного порогового значения, то на выход блока передается сигнал с 1-го входа, в противном случае — сигнал с 3-го входа. Блок имеет единственный параметр настройки — Threshold (Порог). Он может задаваться либо как числовая константа, либо как вычисляемое выра­жение. Периодичность срабатывания блока Switch определяется значением па­раметра Sample time блока, подсоединенного к его управляющему входу.

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

      Блок Manual Switch не имеет параметров настройки и позволяет «вручную» выбирать один из двух входных портов, сигнал с которого будет передаваться на выход блока. Для перемещения «перемычки», соединяющей выходной порт блока Manual Switch с входным, необходимо дважды щелкнуть на изображении б лока (предварительно, конечно, блок должен быть помещен в поле блок-диаг р аммы разрабатываемой модели).

      Блок Multiport Switch обеспечивает передачу на выход сигнала, поступающе го на один из информационных входов. Номер коммутируемого входа равен зна ч ению сигнала, подаваемого на управляющий вход блока. Если это значение является дробным числом, то оно округляется до целого по стандартным а рифметическим правилам. Исключение составляют 2 случая: если значение уп р авляющего сигнала меньше 1, то оно считается равным 1; если значение управл я ющего сигнала превышает число информационных входов, то оно принимается явным наибольшему номеру (входы нумеруются сверху вниз). Блок имеет один параметр настройки — Number of inputs (Число входов), к оторый устанавливает число информационных входов. Значение параметра может вводиться в форме числовой константы или в форме вычисляемого в ыр ажения.

      Блок Relay работает по аналогии с обычным реле: если входной сигнал превы­шает некоторое пороговое значение, то на выходе блока формируется «разрешаю­щий» сигнал.

      Блок имеет 4 параметра настройки: ‘

      Switch on point (Точка включения) — задает пороговое значение, при превыше­нии которого происходит «включение» реле;

      Switch off point (Точка выключения) — задает уровень сигнала, при котором реле «выключается»;

      Outputwhen on (Выход при включенном состоянии) — определяет значение ам­плитуды «разрешающего» сигнала;

      Outputwhen off (Выход при выключенном состоянии) — уровень сигнала на выходе реле, когда оно находится в состоянии «выключено».

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

      Раздел Connections (Соединительные узлы) Большинство блоков данного раздела предназначено для разработки S -моделей, содержащих модели более низкого уровня (подсистемы).

      1. Блоки In (Входной порт) и Out (Выходной порт) обеспечивают «линейную» связь между подсистемами модели по информации.

      2. Блоки Goto Tag Visibility (Признак видимости), From (принять) и Goto (передать) используются совместно и предназначены для обмена данными между различными компонентами S -модели с учетом доступности (видимос­ти) этих данных.

      3. Блоки Data Store Memory (Память данных), Data Store Read (чтение дан­ных) и Data Store Write (Запись данных) также используются совместно и обеспе­чивают не только передачу данных, но и их хранение на интервале моделирования.

      4. Блоки Enable (Разрешить) и Trigger (в данном случае уместен буквальный перевод этого слова — защелка) предназначены для логического управления рабо­той подсистем ^-модели.

      5. Блок Subsystem (Подсистема) представляет собой «заготовку» для созда­ния подсистемы. Подсистема — это достаточно самостоятельная S -модель более низкого уровня, которая, в свою очередь, может содержать подсистемы произволь­ного уровня вложенности.

      Наряду с перечисленными выше, раздел Connections содержит еще несколько элементов, которые имеют самостоятельное значение и могут оказаться весьма по­лезными при создании многих практических приложений:

      Блок Mux — выполняет объединение входных величин в один линейный век­тор. При этом входные величины могут быть как скалярными, так и векторными. Размерность результирующего вектора равна суммарному количеству элементов, поступающих на входные порты блока. Блок Mux имеет один параметр настройки — Number of inputs (Число входов). Блок Demux (Разделитель) выполняет функции, противоположные функциям блока Mux: разделяет входной вектор на заданное число компонентов. Данный блок также имеет единственный параметр настройки, который называется Number of outputs (Число выходов). Поскольку соотношение между размерностью входного вектора и числом выходов блока может быть различным, то размерность компонен­тов выходного вектора разработчику модели необходимо определять заранее само­му. При этом следует учитывать следующие особенности работы блока Demux . Если размерность входного вектора (М) равна значению параметра Number of outputs , т. е. числу выходов блока ( N ), то на всех выходах блока формируются ска­лярные величины — входной вектор просто распадается на отдельные элементы. Если размерность входного вектора превышает число выходов блока ( M > N ), то на первых (п- 1 )-ом выходах формируются векторы, размерность которых рав­на целой части отношения M / N , а размерность вектора на последнем выходе рав­на остатку от деления . Если M < N , то при запуске модели выдается сообщение об ошибке («несоответ­ствие размерности портов»).

      Блоки Ground (Земля) и Terminator (Ограничитель) могут использоваться в каче­стве «заглушек» для тех портов, которые по какой-либо причине оказались не подклю­ченными к другим блокам S -модели (например, на этане отладки модели). Блок Ground используется как «заглушка» для входных портов, а блок Terminator — для выходных. Применение указанных блоков позволяет избежать выдачи интерпретатором MATLAB предупреждения о том, что в S -модели имеются неподключенные порты.

      Блок IC ( Initial Condition — начальное состояние) позволяет устанавливать произ­вольное начальное состояние входного сигнала. Длительность пребывания системы в этом состоянии равна длительности шага моделирования. Параметром настройки блока является величина Initial Value (Значение сигнала на момент входа в блок).

      Блок Width (Размер) вычисляет размерность сигнала, поступающего на его вход. Вычисленное значение выводится непосредственно на изображении блока. Параметров настройки он не имеет.

      Блок Selector (Селектор) выбирает во входном векторе и передает на выход только те элементы, номера которых указаны в параметрах настройки блока.

      Блок имеет два параметра настройки:

      Elements (Элементы) — список номеров элементов входного вектора, подле­жащих отбору;

      luput port width (Размерность входного порта) — размерность входного век­тора, который может быть «просеян» с помощью данного блока; значение этого параметра обязательно должно совпадать с числом элементов входного вектора. Если на вход блока подается матрица, то в списке Elements используется сквоз­ная нумерация элементов, причем индекс изменяется построчно. Существенным достоинством блока является то, что значения его параметров настройки отображаются в графическом виде на иконке блока.

      Блок Merge (Слияние) выполняет объединение поступающих на его входы сиг­налов в один. Блок имеет два параметра настройки:

      Number of inputs (Количество входов), определяющий число входных сигна­лов, которое может быть подано на входы блока; для корректной работы блока все входные сигналы должны иметь одинаковую размерность (хотя при несоблюде­нии этого правила сообщение об ошибке не выдается);

      Initial output (Инициализация выхода) — задает сигнал, на основе которого дол­жно выполняться объединение; если значение параметра не задано, то на выход блока просто выдается один из входных сигналов.

      Дополнительные разделы библиотеки ( Blocksets & Toolboxes ) Р аздел Blocksets & Toolboxes является единственным раз­делом, содержимое которого изменяется в зависимости от установленной на ва­шем компьютере конфигурации пакета MATLAB .

      Если из инструментальных средств пакета в рабочую конфигурацию включен только SIMULINK , то данный раздел содержит единственный подраздел — Simuhnk Extras (Дополнения к Simulink ).

      Этот подраздел, в свою очередь, разбит на шесть частей :

      Additional Sinks (Дополнение к разделу Sinks ) — включает дополнительные гра­фические «смотровые окна»; четыре из них обеспечивают визуализацию спект­рального анализа сигналов, другие два — отображение корреляционных характер и стик сигналов. Для использования двух последних блоков требуется включить в состав конфигурации пакета инструментальные средства обработки сигналов ( Signal Processing Toolbox );

      Additional Linear (Дополнение к разделу Linear ) — блоки, входящие в эту часть библиотеки, предназначены для расчета характеристик линейных систем автома­тического управления;

      Transformations (Преобразования) — содержит блоки, выполняющие различ­ные преобразования числовых величин:

      • координат — из прямоугольной системы в полярную либо сферическую и обратно;

      • температуры — из шкалы Фаренгейта в шкалу Цельсия и обратно;

      • углов — из градусов в радианы и обратно. Flip Flop (Триггеры) — содержит блоки, моделирующие работу основных ти­пов триггеров:

      Кроме того, в эту часть библиотеки включен блок Clock (Часы), генерирую­щий дискретный временной сигнал. Параметром настройки этого блока является величина периода сигнала;

      Linearization (Линеаризация) — раздел содержит единственный блок, позво­ляющий вычислить производную входного сигнала по

      Читать:
      Как найти угол через синус и косинус

Похожие статьи