Моделирование в SIMULINK
Особенности назначения блоков умножения, определения знака сигнала, вычисления и задания математических функций, их параметры. Пример вычисления корней полином по заданному аргументу. Построение графика в декартовой и полярной системах координат.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 19.04.2009 |
Размер файла | 449,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
1.1 Моделирование в SIMULINK
Блок может использоваться для суммирования скалярных, векторных или матричных сигналов. Типы суммируемых сигналов должны совпадать Нельзя, например, подать на один и тот же суммирующий блок сигналы целого и действительного типов.
· Блок умножения Product
Назначение:
Выполняет вычисление произведения текущих значений сигналов.
· Блок определения знака сигнала Sign
Назначение: Определяет знак входного сигнала.
Блок работает в соответствии со следующим алгоритмом:
Если входной сигнал блока положителен, то выходной сигнал равен 1.
Если входной сигнал блока отрицателен, то выходной сигнал равен -1.
Если входной сигнал блока равен 0, то выходной сигнал также равен 0. Рисунок 1.1 иллюстрирует работу блока Sign.
Рисунок 1.1- Пример использования блока Sign
· Усилители Gain и Matrix Gain
Назначение: Выполняют умножение входного сигнала на постоянный коэффициент.
Параметры:
Gain - Коэффициент усиления.
Multiplication - Способ выполнения операции.
Блоки усилителей Gain и Matrix Gain есть один и тот же блок, но с разными начальными установками параметра Multiplication. Параметр блока Gain может быть положительным или отрицательным числом, как больше, так и меньше 1. Коэффициент усиления можно задавать в виде скаляра, матрицы или вектора, а также в виде вычисляемого выражения. В том случае если парметр Multiplication задан как Element-wise K*u, то блок выполняет операцию умножения на заданный коэффициент скалярного сигнала или каждого элемента векторного сигнала. В противном случае блок выполняет операцию матричного умножения сигнала на коэффициент заданный матрицей. По умолчанию коэффициент усиления является действительным числом типа double. Для операции поэлементного усиления входной сигнал может быть скалярным, векторным или матричным любого типа, за исключением логического (boolean). Элементы вектора должны иметь одинаковый тип сигнала. Выходной сигнал блока будет иметь тот же самый тип, что и входной сигнал. Параметр блока Gain может быть скаляром вектором или матрицей любого типа, за исключением логического (boolean).
· Блок вычисления математических функций Math Function
Назначение: Выполняет вычисление математической функции.
Параметры:
Function - Вид вычисляемой функции (выбирается из списка):
exp - Экспоненциальная функция
log - Функция натурального логарифма
10^u - Вычисление степени 10
log10 - Функции логарифма
magnitude^2 - Вычисление квадрата модуля входного сигнала
square - Вычисление квадрата входного сигнала
sqrt - Квадратный корень
pow - Возведение в степень
conj - Вычисление комплексно-сопряженного числа
reciprocal - Вычисление частного от деления входного сигнала на 1
hypot -Вычисление корня квадратного из суммы квадратов входных сигналов (гипотенузы прямоугольного треугольника по значениям катетов)
rem - Функция, вычисляющая остаток от деления первого входного сигнала на второй
mod - Функция, вычисляющая остаток от деления с учетом знака
transpose - Транспонирование матрицы
hermitian - Вычисление эрмитовой матрицы.
1.2 Блоки функций
· Блок задания функции Fcn
Назначение: Задает выражение в стиле языка программирования C .
Параметры:
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 Переменные из рабочей области. Если переменная рабочей области является массивом, то ее элементы должны указываться с помощью индексов в круглых скобках. Напрмер, A(1,1) - первый элемент матрицы A. Операторы отношения и логические операторы возвращают значения в виде логического нуля (FALSE) или логической единицы (TRUE). Операторы, допускаемые к использованию выражении, имеют следующий приоритет (в порядке убывания):
1 ( )
2 + - (унарные)
3 Возведение в степень
4 !
5 /
6 + - (бинарные)
7 > < <= >=
8 = !=
9 &&
10 | |
Блок не поддерживает матричные и векторные операции. Выходной сигнал блока всегда - скаляр.
· Интегрирующий блок lntegrator
Назначение: Выполняет интегрирование входного сигнала.
Пример на рисунке 1.2.
Рисунок 1.2- Интегрирование ступенчатого сигнала.
Рисунок 1.3- Интегрирование ступенчатого сигнала с установкой начального значения выходного сигнала.
Пример на рис.1.3 отличается от предыдущего подачей начального значения через внешний порт. Начальное значение выходного сигнала в данном примере задано равным -10.
1.3 ТЕОРЕТИЧЕСКИЕ ИССЛЕДОВАНИЯ
Задание 1
Построить график функции в декартовой системе координат. Результаты представить в виде графика
Диапазон изменения аргумента: 0, -5, 0.05
Задание 2
Решить системы линейных и нелинейных уравнений. Начальные приближения:
;
Задана система линейных уравнений:
;
Задана система нелинейных уравнений:
;
Задание 3
Осуществить моделирование структуры, представленной на рисунке 1.4
Рисунок 1.4 - Структурная схема к заданию 3
1.4 ЭКСПЕРИМЕНТАЛЬНАЯ ЧАСТЬ
Задание №1
Решим систему уравнений, взятого в соответствии с номером варианта. Сформировать матрицу из коэффициентов данной системы уравнений и вектор из свободных членов системы. Для полученного вектора выполнить следующие операции: транспонирование, умножение вектора на число, равное номеру варианта, прибавить к каждому элементу вектора данное число, осуществить поэлементное возведение в степень данного числа полученный вектор. Для матрицы выполнить: транспонирование, обращение матрицы, возведение матрицы в степень числа, равного номеру варианта, вычислить матричную экспоненту, выполнить логарифмирование матрицы, вычислить корень.
Заданное уравнение имеет вид:
Сформируем из данной системы уравнений матрицу коэффициентов А и матрицу свободных членов В и найдем вектор корней системы уравнений:
>> A=[2 -1 4 1; 0 2 -6 1; 8 -3 6 -5; 2 -7 6 -1]
A = 2 -1 4 1
0 2 -6 1
8 -3 6 -5
2 -7 6 -1
>> B=[66; -63; 146; 80]
B = 66
-63
146
80
>> x=A\B
x = 11.0000
1.0000
11.0000
1.0000
Выполним заданные операции с вектором:
>> disp(B')
66 -63 146 80
>> disp(B*12)
792
-756
1752
960
>> disp(B+12)
78
-51
158
92
>> disp(B.^12)
0.0007
0.0004
9.3807
0.0069
Операции с матрицей
>> disp(A')
2 0 8 2
-1 2 -3 -7
4 -6 6 6
1 1 -5 -1
>> disp(inv(A))
0.1887 0.2013 0.0786 -0.0031
0.0755 -0.1195 0.0314 -0.2013
0.0849 -0.1761 -0.0063 -0.0597
0.3585 0.1824 -0.1006 0.0440
>> disp(A^12)
1.2136 -0.1885 1.1395 -0.4807
-0.9491 0.1477 -0.8914 0.3759
1.3584 -0.2111 1.2760 -0.5382
1.7716 -0.2752 1.6637 -0.7015
>> disp(expm(A))
3.8460 -0.5976 3.6141 -1.5278
-3.0145 0.4611 -2.8238 1.1931
4.3047 -0.6667 4.0397 -1.7032
5.6239 -0.8659 5.2769 -2.2328
>> disp(logm(A))
1.0816 + 0.7285i -0.6072 - 0.7986i 0.2479 - 0.3941i 0.2271 - 0.6246i
-0.0448 - 1.1105i 1.9764 + 1.2174i -0.8489 + 0.6008i 0.5802 + 0.9521i
0.8024 - 1.2223i 0.0031 + 1.3400i 2.1427 + 0.6613i -0.5302 + 1.0480i
-0.8169 - 0.6233i -1.4510 + 0.6833i 0.9040 + 0.3372i 1.2546 + 0.5344i
>> disp(sqrtm(A))
1.3121 + 0.4662i -0.1996 - 0.5111i 0.7303 - 0.2522i 0.4569 - 0.3997i
0.3485 - 0.7108i 1.6719 + 0.7792i -1.3785 + 0.3845i 0.1320 + 0.6094i
1.7869 - 0.7823i -0.7893 + 0.8576i 2.4090 + 0.4233i -1.2295 + 0.6707i
-0.0428 - 0.3989i -1.8725 + 0.4373i 1.0943 + 0.2158i 1.1401 + 0.3420i
Задание №2
Вычислить функции линейной алгебры cond(А), norm(v,p), recond(A), rank(А), det(A), trace(A), null(A), orth(A), rref(A).
>> x=[2 -1 4 1; 0 2 -6 1; 8 -3 6 -5; 2 -7 6 -1]
x = 2 -1 4 1
0 2 -6 1
8 -3 6 -5
2 -7 6 -1
>> disp(cond(x))
7.4449
>> disp(norm(x,1))
22
>> disp(norm(x,2))
15.3079
>> disp(rcond(x))
0.0669
>> disp(rank(x))
4
>> disp((det(x)))
-636
>> disp(trace(x))
9
>> disp(null(x))
>> disp(orth(x))
-0.2573 0.1472 -0.5234 -0.7989
0.3525 -0.4166 0.6010 -0.5840
-0.7010 -0.7074 0.0083 0.0900
-0.5640 0.5518 0.6040 -0.1124
>> disp(rref(x))
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
Задание №3
Вычислить корни полинома в соответствии с вариантом таблицы. Выполнить обратное действие: определить коэффициенты полинома по вычисленным корням. Определить значение полинома по заданному аргументу (в качестве аргумента принять число, равное номеру варианта). Определить значение коэффициентов производной заданного полинома.
Заданное уравнение имеет вид:
вычисление корней полином
» p=[1 5 7 7 -20];
» r=(roots(p))
r =-4.0000
-1.0000 + 2.0000i
-1.0000 - 2.0000i
1.0000
коэффициенты полинома
» disp(poly(r))
1.0000 5.0000 7.0000 7.0000 -20.0000
значение полинома по заданному аргументу
» disp(polyval(p,12))
30448
знчения коэффициентов
» disp(polyder(p))
4 15 14 7
Задание №4
Построить графики функций, в соответствии с вариантом таблицы в декартовой и полярной системах координат.
Уравнение для построения графика функции имеет вид
Для построения графика заданной функции зададим диапазон изменения аргумента х, запишем заданную функцию и воспользуемся функцией plot:
» x=0.02:0.05:3.14159/2
» y=sqrt(abs(1-x))+sin(x)./cos(x)
y =1.0e+003 *
Columns 1 through 7
0.0010 0.0010 0.0011 0.0011 0.0011 0.0011 0.0012
Columns 8 through 14
0.0012 0.0012 0.0012 0.0013 0.0013 0.0013 0.0014
Columns 15 through 21
0.0014 0.0014 0.0015 0.0015 0.0016 0.0016 0.0018
Columns 22 through 28
0.0021 0.0024 0.0028 0.0032 0.0037 0.0045 0.0055
Columns 29 through 32
0.0072 0.0106 0.0204 1.2565
» plot(x,y,'g')
» grid
» plot(x,y,'k')
» grid
Вид графика в декартовой системе координат представлен на рисунке 2.1
Для построения графика в полярной системе координат необходимо преобразовать декартовые координаты в полярные:
» x=0.02:0.05:0.1;
» y=sqrt(abs(1-x))+sin(x)./cos(x);
» [TH,R]=cart2pol(x,y);
» plot(TH,R),grid
Вид графика в полярной системе координат представлен на рисунке 2.2
Рисунок 2.1 - График в декартовой системе координат
Рисунок 2.2 -График в полярной системе координат
Задание №5
Для передаточной функции
построить АЧХ и ФЧХ заданной частотной передаточной функции в соответствии с вариантом. Построить эти графики.
Заданное уравнение имеет вид:
Для построения частотных характеристик воспользуемся последовательностью действий:
>> P1=[-6 7]; P2=[2 2 8 5];
>> roots(P1)
ans =1.1667
>> roots(P2)
ans = -0.1690 + 1.9359i
-0.1690 - 1.9359i
-0.6620
>> om0=1e-2; omk=1e2;
>> OM=logspace(-2,2,41); p=i*OM;
>> ch=polyval(P1,p); zn=polyval(P2,p);
>> ACH=abs(ch)./abs(zn);
>> FCH=angle(ch./zn)*180/pi;
>> subplot(2,1,1);
>> loglog(OM,ACH);grid
>> figure,semilogx(OM,FCH); grid
Рисунок 2.3 - Амплитудно - частотная характеристика частотной ПФ
Рисунок 2.4 - Фазово - частотная характеристика фазовой ПФ
ВЫВОД
При выполнении лабораторной работы изучил графическую операционную среду системы Matlab, получил определённые навыки работы в данной среде для осуществления вычислительных операций и построения графических зависимостей.
MATLAB - это интерактивная система, в которой основным элементом данных является массив. Это позволяет решать различные задачи, связанные с техническими вычислениями, особенно в которых используются матрицы и вектора, в несколько раз быстрее, чем при написании программ с использованием иных языков программирования.
Подобные документы
Принципы разработки математических моделей, алгоритмов и программ. Составление программы вычисления функции с использованием нестандартных функций. Нахождение значения корней нелинейного уравнения по методу касательных. Программа для вычисления интеграла.
курсовая работа [568,3 K], добавлен 07.03.2015Создание и представление символьных переменных в программе Matlab, операции над полиномами и упрощение выражений. Пример подстановки значения в функцию, решения уравнений и систем, дифференцирования, интегрирования и вычисления пределов функций.
презентация [359,2 K], добавлен 24.01.2014Практические навыки моделирования структурных схем в среде SIMULINK пакета MATLAB. Построение графиков функций в декартовой системе координат. Решение систем линейных и нелинейных уравнений. Работа с блоками Sum, Algebraic Constraint, Gain, Product.
лабораторная работа [159,2 K], добавлен 19.04.2009Написание программы для вычисления функции f(x), изображенной на графике, используя оператор if. Построение графика функции. Составление программы, вычисляющей сумму 101 из последовательно расположенных нечетных чисел. Нахождение корней системы уравнений.
контрольная работа [694,4 K], добавлен 07.08.2013Использование нестандартных функций и подпрограмм (процедур) для составления алгоритмов вычислений. Программы для вычисления значение корней нелинейного уравнения по методу половинного деления. Составление алгоритма операций над матрицами и интегралами.
курсовая работа [580,0 K], добавлен 23.08.2015Основы программирования графики на языке Паскаль. Способы решения графических программ и рекомендации к их решениям. Связь между декартовой и полярной системами координат. Алгоритм переноса объекта. Построение фракталов, классической пыли Кантора.
курсовая работа [3,3 M], добавлен 24.04.2013Разработка различных программ для вычисления X и Y по формуле, для вычисления интеграла, для вычисления таблицы значений функции и для вычисления элементов вектора. Составление блок-схемы программы. Ввод значений, описание переменных и условия расчета.
контрольная работа [148,1 K], добавлен 08.11.2013Программная реализация приложения для вычисления заданных функций. Процедура поиска минимума функции. Применение методов Хука-Дживса и градиентного спуска для решения задачи. Исследование функции в окрестности базисной точки, определение ее координат.
контрольная работа [767,1 K], добавлен 02.02.2014Математический алгоритм вычисления корней нелинейного уравнения и его решение методом касательных. Особенности программной реализации решения таких уравнений. Процедура подготовки и решения задачи на ЭВМ, характеристика алгоритма и структуры программы.
курсовая работа [96,6 K], добавлен 02.06.2012Модифицированный метод Ньютона при заданных начальных условиях, где задаётся погрешность вычисления. Вычисления корня уравнения при помощи программы. Построения графика зависимости приближений двух координат, при котором задаются промежутки и константы.
реферат [14,1 K], добавлен 29.01.2009