Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Раздел Discrete (дискретные блоки)



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

 
 

Раздел содержит 8 блоков (см. рис. 5.11)

Рис. 5.11 - Блоки раздела Discrete

В этот раздел входят следующие блоки:

1. Zero-Order Hold - выполняет дискретизацию входного сигнала по времени.

2. Unit Delay - выполняет задержку входного сигнала на один шаг модельного времени.

3. Discrete-Time Integrator - блок используется для выполнения операции интегрирования в дискретных системах.

4. Discrete State-Space - блок создает динамический объект, описываемый уравнениями в пространстве состояний:

где x - вектор состояния, u - вектор входных воздействий, y - вектор выходных сигналов, A, B, C, D - матрицы: системы, входа, выхода и обхода, соответственно, n - номер шага моделирования.

5. Discrete Filter - блок дискретного фильтразадает дискретную передаточную функцию от обратного аргумента (1/z).

6. Discrete Transfer Fcn – передаточная функция для дискретных систем. Параметры блока следующие:

§ Numerator - вектор или матрица коэффициентов числителя;

§ Denominator - вектор коэффициентов знаменателя;

§ Sample time - шаг дискретизации по времени.

7. Discrete Zero-Pole - определяет передаточную функцию с заданными полюсами и нулями.

8. First-Order Hold - блок задает линейное изменение выходного сигнала на каждом такте дискретизации, в соответствии с крутизной входного сигнала на предыдущем интервале дискретизации.

Рассмотрим пример использования блоков этого раздела.

На рис. 5.12 приведены результаты моделирования для следующей дискретной системы (A=B=C=D= 1)

где x и y скалярные переменные, u белый шум с ограниченной полосой. Начальные условия для переменной x нулевые.

Рис. 5.12 - Пример использования блока Discrete State-Space

5.6. Раздел Function & Tables (функции и таблицы)

Раздел содержит блоки, реализующие различные функции и табличные компоненты.

Рис. 5.13 - Блоки раздела Function & Tables

Раздел содержит 5 блоков (см. рис. 5.13): Fcn, Matlab Fcn, S-Function, Look-up Table, Look-up Table (2-D).

Блок Fcn – универсальный вычислительный блок.

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

В выражении можно использовать следующие компоненты:

1. Входной сигнал. Входной сигнал в выражении обозначается u, если он является скаляром. Если входной сигнал - вектор, необходимо указывать номер элемента вектора в круглых скобках. Например, u (1) и u (3) - первый и третий элементы входного вектора.

2. Константы.

3. Арифметические операторы (+ – * /).

4. Операторы отношения (= =!= > < >= <=).

5. Логические операторы (&& | |!).

6. Круглые скобки.

7. Математические функции: abs, acos, asin, atan, atan2, ceil, cos, cosh, exp, fabs, floor, hypot, ln, log, log10, pow, power, rem, sgn, sin, sinh, sqrt, tan, и tanh.

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

Операторы отношения и логические операторы возвращают значения в виде логического нуля (False) или логической единицы (True).

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

Блок Matlab Fcn з адает выражение в стиле языка программирования Matlab.

Параметры:

§ Matlab function - выражение на языке Matlab;

§ Output dimensions - размерность выходного сигнала (значение параметра "минус один" предписывает блоку определять размерность автоматически);

§ Output signal type - тип выходного сигнала.

Output signal type выбирается из списка:

§ real -действительный сигнал;

§ complex -комплексный сигнал;

§ auto -автоматическое определение типа сигнала.

4. Collapse 2-D results to 1-D - преобразование двумерного выходного сигнала к одномерному.

Входной сигнал в выражении обозначается u, если он является скаляром. Если входной сигнал - вектор, необходимо указывать номер элемента вектора в круглых скобках. Например, u (1) и u (3) - первый и третий элементы входного вектора. Если выражение состоит из одной функции, то ее можно задать без указания параметров. Выражение может содержать также собственные функции пользователя, написанные на языке Matlab и оформленные в виде m -файлов. Имя m -файла не должно совпадать с именем модели (mdl -файлом).

Рассмотрим простой пример применения блока Matlab Fcn. В примере используется функция My_Matlab_Fcn, вычисляющая сумму и произведение двух элементов входного вектора с компонентами x, y. Текст функции (файл My_Matlab_Fcn.m) приведен ниже:

function z =My_Matlab_Fcn(x,y);

v (1)= x * y;

v (2)= x + y.

Выражение для вызова функции, заданное параметром Matlab function, имеет вид: My_Matlab_Fcn(u (1), u (2)).

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

Блоки S-Function являются описанием блока на одном из языков программирования: Matlab, C++, Ada, или Fortran. Набор стандартных блоков Simulink достаточно обширен, однако в практике моделирования встречаются ситуации, когда нужного блока нет либо структурное моделирование делает модель слишком сложной. В этом случае необходимо использовать технологию S-Function для создания нужного блока. С помощью языков программирования пользователь может создать описание сколь угодно сложного блока и подключить его к Simulink -модели, при этом с точки зрения взаимодействия пользователя с моделью, блок на основе S-Function ничем не отличается от стандартного библиотечного блока Simulink. Создаваемые блоки могут быть непрерывными, дискретными или гибридными. S-Function, созданные на C++, Ada или Fortran, компилируются в исполняемые (*.dll) файлы.

Чаще всего блоки S-Function используются при создании новых библиотечных блоков, обеспечивающих взаимодействие Simulink с аппаратными средствами компьютера, при создании блоков на основе математических уравнений, блоков, реализующих анимационные возможности Matlab, а также при подключении к модели Simulink существующего программного кода языков высокого уровня.

Блок Look-up Table задает в табличной форме функцию одной переменной.

Параметры:

§ Vector of input values -вектор значений входного сигнала (может быть задан в виде дискретных значений, например, [1 2 7 8], либо в виде непрерывного диапазона, например, [0:8], элементы вектора или граница диапазона могут быть заданы в виде вычисляемого выражения, например [tan(5) sin(3)]);

§ Vector of output values -вектор выходных значений, соответствующий вектору входных значений.

Блок работает в соответствии со следующими правилами:

1. Если входной сигнал равен одному из элементов вектора входных значений (Vector of input values), то выходное значение блока будет равно соответствующему элементу вектора выходных значений (Vector of output values). Например, пусть вектор входных значений равен [0 1 2 5], а вектор выходных значений[-5 -8 3 100], тогда при входном сигнале равном 1 выходной сигнал будет равен -8.

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

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

Блок Look-up Table (2-D) задает в табличной форме функцию двух переменных.

Параметры:

§ Row -строка (вектор значений первого аргумента, задается аналогично параметру Vector of input values одномерной таблицы, элементы вектора должны быть упорядочены по возрастанию);

§ Column - с толбец (вектор значений второго аргумента, задается аналогично предыдущему параметру);

§ Table -таблица значений функции (задается в виде матрицы, количество строк должно быть равно числу элементов вектора Row, а количество столбцов - числу элементов вектора Column).

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





Дата публикования: 2014-10-29; Прочитано: 1232 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.01 с)...