52

Click here to load reader

применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

  • Upload
    -

  • View
    1.388

  • Download
    16

Embed Size (px)

Citation preview

Page 1: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ

БЮДЖЕТНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

ПОВОЛЖСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ТЕЛЕКОММУНИКАЦИЙ И ИНФОРМАТИКИ

Стефанова И. А.

Применение системы MATLAB + Simulink

в технике связи

Задания и методические указания к лабораторным работам

по информатике

Самара - 2015

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 2: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

2

ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ

Федеральное государственное образовательное бюджетное учреждение высшего профессио-

нального образования

«ПОВОЛЖСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ТЕЛЕКОММУНИКАЦИЙ И ИНФОРМАТИКИ»

Кафедра «Информатики и вычислительной техники»

И.А. Стефанова

ПРИМЕНЕНИЕ СИСТЕМЫ

MATLAB + SIMULINK

В ТЕХНИКЕ СВЯЗИ

Задания и методические указания

к лабораторным работам по информатике

Самара

2015

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 3: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

3

УДК: 004.42: 519.85

Оглавление

Введение ____________________________________________________________________ 4

Рекомендуемая литература __________________________________________________ 4

1. Моделирование логических устройств ______________________________________ 6

Пример контрольного теста «Логические операции»___________________ 12

2. Реализация логических и арифметических операций _______________________ 12

Пример контрольного теста «Арифметические операции» ___________________19

3. Сумматоры ______________________________________________________________ 20

Пример контрольного теста «Сумматоры»________________________________ 26

4. Решение линейных уравнений _____________________________________________ 27

Пример контрольного теста «Линейные уравнения»________________________ 34

5. Решение нелинейных уравнений ___________________________________________ 34

Пример контрольного теста «Нелинейные уравнения»__________________ 42

6. Моделирование электрических цепей постоянного и переменного тока _____ 42

Пример контрольного теста «Электрические цепи»_____________________ 51

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 4: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

4

Введение

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

Настоящее методическое пособие поможет студентам сориентироваться в учебном материале по изучению возможностей математических пакетов по дисциплине «Информатика» и успешно выполнить учебный план указанных дисциплин в целом.

Рекомендуемая литература

Основная

1. Дьяконов, В. П. MATLAB и SIMULINK для радиоинженеров [Текст] /Дьяконов, В. П. - М.: ДМК, 2011, 976 с.

2. Дьяконов, В. П. MATLAB 6.5 SP1/7+Simulink 5/6 в математике и моделировании [Текст] / Дьяконов, В. П. - М.: СОЛОН-Пресс, 2005. - 576 с. - (Библиотека профессио-нала)

3. Дьяконов, В. П. MATLAB 6.5 SP1/7+ Simulink 5/6. Основы применения [Текст] / Дья-конов, В. П. - М.: СОЛОН-Пресс, 2005. - 800 с. - (Библиотека профессионала).

Дополнительная

4. Акчурин, Э. А. Программирование в системе MATLAB [Текст]: метод. указания к ла-бораторным работам / Э. А. Акчурин. - Самара: ПГАТИ, 2004 - .Ч.1: Использование VFTLAB и Simulink / Э. А. Акчурин. - 51 с.

5. Беспалов, Е. С. Simulink-модели радиотехнических устройств [Текст]: учеб. пособие / Беспалов, Е. С., Мусянков, М. И., Пирхавка, А. П.; Московский государственный ин-ститут радиотехники, электроники и автоматики (технический университет), ГОУ ВПО МИРЭА. - М.: [Б. и.], 2010. - 56 с.

6. Черных, И. В. SIMULINK: среда создания инженерных приложений [Текст]/И. В.Черных.- М.: ДИАЛОГ - МИФИ, 2004, 496 с.

7. Электротехнический справочник [Текст] /под ред. Герасимова В. Г. – М.: Электроэнергия, 2005 -Ч. 1.- 520 с.

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 5: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

5

Содержание отчета

1. Название работы, цель работы, задание в соответствии с вариантом.

2. Вычисления с ожидаемым результатом в виде таблицы.

3. Модели заданий в соответствии с номером варианта.

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

5. Выводы.

Порядок создание модели с помощью пакета Simulink

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

1) запустить MATLAB.

2) нажать на кнопку «Simulink» в панели инструментов системы MATLAB,

при этом появится окно браузера библиотек Simulink Library Browser (рис. 1). Окно браузера

содержит две панели: слева иерархическое дерево библиотеки, справа – содержимое выбран-

ной в левой панели папки с блоками. В папке могут быть подбиблиотеки и блоки;

3) создать модель командой File => New => Model. Это приведет к созданию пустого ок-

на модели. С помощью мыши, расположить окно браузера и окно модели таким образом,

чтобы они не перекрывали друг друга (см. рис. 1);

4) скопировать мышью из папок браузера в окно модели нужные блоки. При переносе

блока в модель там создается экземпляр блока с именем, совпадающим с надписью под бло-

ком.

5) соединить блоки коннекторами (connector – соединительная линия). Для этого нужно

указать курсором на «выход» блока, нажать левую клавишу мыши и, не отпуская ее, провес-

ти линию к входу другого блока. После чего клавишу мыши отпустить. При этом в модели

отобразится коннектор со стрелкой.

Для создания линии можно выделить блок источника, нажать клавишу <Ctrl> и выделить

блок приемника.

Для создания точки разветвления нужно подвести курсор к предполагаемому узлу и, на-

жав правую клавишу мыши, протянуть линию. Для удаления линии требуется ее выделить и

нажать на клавишу <Delete>.

Рис. 1. Окно браузера и модели

6) Установить для каждого блока соответствующие свойства. Для этого нужно по блоку

сделать двойной щелчок мыши, что приведет к появлению окна со свойствами блока. В от-

крывшемся окне (рис. 2) установить нужные параметры блоков;

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 6: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

6

Рис. 2. Окно установки свойств блока

7) сохранить модель в виде файла командой File => Save as в своей папке, созданной в

папке, например, для обмена LERNING. Имена папки и файла должно содержать латинские

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

8) включить симулирование (моделирование) командой Simulation => Start (или кнопкой

на панели инструментов).

1. Моделирование логических устройств

1.1. Подготовка к работе

По указанной литературе изучить:

правила выполнения логических операций НЕ, И, ИЛИ, исключающее ИЛИ;

браузер Simulink, объекты подбиблиотеки Logic and Bit Operations, Sinks, Sources

библиотеки Simulink.

1.2. Цель работы

Изучить основные логические операции и элементы, реализующие эти операции.

1.3. Задание и порядок выполнения работы

1. Запустить Simulink. Изучить структуру интерфейса.

2. Задания. Выполнить расчет и последующее моделирование двухвходовых (a и b) логи-

ческих устройств, заданных по варианту в табл. 1.1. Для этого:

представить два числа (a и b) двоичным эквивалентом;

выполнить над ними операции, заданные по варианту;

полученные результаты свести в таблицу, выполненную с использованием текстово-

го редактора;

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

использованием логических блоков Simulink;

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

скопировать в отчет полученные модели и результаты проверки решения;

сделать выводы по проделанной работе.

Таблица 1.1. Варианты логических операций.

N a b Операции

сравнения логические

1 115 70 a > b bа ; bа ; bа ; bа ; bа

2 120 69 a b bа ; bа ; bа ; bа ; bа

3 73 125 a < b bа ; bа ; bа ; bа ; bа

4 82 118 a b bа ; bа ; bа ; bа ; bа

5 112 110 a == b bа ; ba ; bа ; bа ; bа

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 7: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

7

6 99 113 a ~= b bа ; bа ; bа ; bа ; bа

7 117 76 a > b bа ; bа ; bа ; bа ; bа

8 125 83 a b bа ; bа ; bа ; bа ; bа

9 79 116 a < b bа ; bа ; bа ; bа ; bа

10 81 113 a b bа ; bа ; bа ; bа ; bа

11 114 98 a == b ba ; bа ; bа ; bа ; bа

12 86 111 a ~= b bа ; bа ; bа ; bа ; bа

13 42 98 a > b bа ; bа ; bа ; bа ; bа

14 74 101 a b bа ; bа ; bа ; bа ; bа

15 124 69 a < b bа ; bа ; bа ; bа ; bа

16 119 75 a b bа ; bа ; bа ; bа ; bа

* В таблице приняты следующие обозначения: И (AND), ИЛИ (OR), И-НЕ (NAND),

ИЛИ-НЕ (NOR), исключающее ИЛИ (XOR), эквивалентность (NXOR).

1.4. Технология выполнения задания

1. Ознакомьтесь с порядком создания модели, который описан во введении.

2. С помощью встроенных функций MATLAB представьте два числа a и b, взятые по ва-

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

командной строке MATLAB введите поочередно два числа, например, a=3 и b=9:

>> a=dec2bin(3) % преобразование 10-го числа «3» в 2-е

a =

11

>> b=dec2bin(9) % преобразование 10-го числа «9» в 2-е

b =

1001

3. В текстовом редакторе создайте таблицу, в которую внесите десятичные числа a и b и

их двоичные эквиваленты. Оба числа должны быть одинаковой разрядности:

a10 b10 a2 b2

3 9 0011 1001

4. С помощью встроенные функции MATLAB (not(), and(), or(), xor() ) произведите в ре-

жиме прямых вычислений логические операции над числами a2 и b2 в соответствии с ва-

риантом. Например, >> a=[0 0 1 1]; % вектор двоичного числа a >> b=[1 0 0 1]; % вектор двоичного числа b >> and(a,b) ans = 0 0 0 1 >> not(and(a,b)) ans = 1 1 1 0 >> or(a,b) ans = 1 0 1 1 >> not(or(a,b)) ans =

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 8: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

8

0 1 0 0 >> xor(a,b) ans = 1 0 1 0 >> not(xor(a,b)) ans = 0 1 0 1 >> a>=b ans = 0 1 1 1

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

not(xor(a,not(b))).

5. Результаты расчета поместите в отчет в новую таблицу:

Таблица результатов расчета и моделирования

Операции c

числами a,

b

Встроенные

функции

Ожидаемый

результат

Результат

моделирования

AND and(a,b) 0001

NAND not(and(a,b)) 1110

OR or(a,b) 1011

NOR not(or(a,b)) 0100

XOR xor(a,b) 1010

NXOR not(xor(a,b)) 0101

>= a>=b 0111

6. В Simulink создайте модель логического устройства (рис. 1.1), выполняющего заданные

логические операции. В таблице 1.2 указаны названия блоков, папки в которых находятся

нужные блоки для моделирования и параметры блоков, установленные по умолчанию, ко-

торые нужно изменить.

Рис. 1.1. Моделирование операций AND и сравнения

* двоичные числа a и b должны быть одинаковой разрядности.

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 9: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

9

Таблица 1.2. Значения параметров блоков моделирования

Название и назначение

блоков

Размещение в брау-

зере

Параметры

блоков

Источник входных дан-

ных

Constant

Simulink / Sources Constant value [0 0 1 1] // значения a=3

*

Constant1 Simulink / Sources Constant value [1 0 0 1]

// значения b=9 *

Логический блок Logical Operator

Simulink / Logic and

Bit Operations

Operator: AND, OR,

NAND, NOR, XOR, NXOR // поочеред-

но

Логический блок сравне-

ния данных Relational Op-

erator

Simulink / Logic and

Bit Operations

Relational Operator:

==, ~=, <, <=, >, >=

// по варианту

Регистраторы Display,

Display1 Simulink / Sinks По умолчанию

7. Установите для каждого блока соответствующие свойства. Окна параметров блоков

приведены на рис. 1.2 и 1.3.

Рис. 1.2. Окно установки параметров блока Constant

Рис. 1.3. Окно установки параметров блока Logical Operator

Вектор двоичного числа

Базовые операции

Количество

входных портов

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 10: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

10

Рис. 1.4. Окно установки параметров блока Relational Operator

Блок Constant (источник) задает постоянный по уровню сигнал. Значение может быть

скаляром, вектором или массивом. При вводе вектора числа разделяются пробелами, а сам

вектор заключается в квадратные скобки, например, [1 0 1 1 0 1 1].

Блок Logical Operator реализует одну из базовых логических операций. Количество вхо-

дов и вид операции устанавливается в окне параметров блока (см. рис.1.3). Все операции,

кроме NOT выполняются над несколькими операндами. Операция NOT выполняется над од-

ним операндом, например a или b , или над результатом логической операции.

Блок Relational Operator сравнивает текущие значения входных сигналов. В окне пара-

метры блока устанавливается тип операции отношения. Если значения – векторы, то проис-

ходит сравнение чисел находящихся на одноуровневых позициях.

Блок Display отображает значение в виде числа. Для отображения всех значений вектора,

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

8. Сохраните модель в своей папке. Имена папки и файла должно содержать латинские

символы (допускаются цифры, но не на первом месте).

9. Запустите модель на исполнение. Результаты вычислений отобразятся в дисплее (рис.

1.5).

Рис. 1. 5. Модель работы логического устройства

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 11: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

11

10. Двойным щелчком мыши образуйте текстовую область в модели и добавьте

заголовок к модели, а также название входов a и b. Текстовые комментарии допустимо

вносить только латинскими символами.

11. Полученные на дисплее значения внесите в таблицу отчет в колонку «Резуль-

тат моделирования» (см. п.5 Таблица результатов расчета и моделирования). Сопоставь-

те результаты моделирования с ожидаемыми результатами. Если результат моделирова-

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

ошибки в прогнозе или изменить параметры модели.

12. Скопируйте модель в отчет с помощью клавиш клавиатуры Alt+Print Screen

(см. рис. 1.4).

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

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

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

Logical Operator,

запустить модель на исполнение,

снять показания с дисплея,

внести эти показания в таблицу отчет,

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

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

14. По окончанию работы сохраните отчет в папке с моделью и сделайте пись-

менно выводы по проделанной работе. В отчете отразить:

Название работы, цель работы, задание в соответствии с вариантом.

Вычисления с ожидаемым результатом в виде таблицы.

Модели заданий в соответствии с номером варианта.

Результаты компьютерного моделирования.

Выводы по работе.

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 12: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

12

Пример контрольного теста «Логические операции»

Двоичный эквивалент десятичного числа 15 равен:

1110 1111 1101 1011 1001

Двоичный эквивалент шестнадцатеричного числа 3В равен:

01011101 00111001 10101011 01011011 10101101

Десятичный эквивалент двоичного числа 1100101 равен:

101 100 202 200 96

Шестнадцатеричный эквивалент двоичного числа 1110101 равен:

135 35 E5 75 EA

В какой системе счисления записано число 3D12F.B34?

Двоичной Восьмеричной Десятичной

Шестнадцатеричной Двоично-десятичной

Результат 12\/12 в двоичной системе равен:

Результат 12\/02 в двоичной системе равен:

Результат 12/\12 в двоичной системе равен:

Результат 12/\02 в двоичной системе равен:

Результат логической операции 101010\/11001 равен:

Результат логической операции 101011 101001 равен:

Результат логической операции 100111 10101 равен:

Результат логической операции 101110/\11001 равен:

Результат логической операции 101011 101001равен:

Результат логической операции 101011 101101 равен:

Результат логической операции 101110 11001 равен:

Результат логической операции 101011 110101 равен:

Результат логической операции 110110 101011 равен:

2. Реализация логических и арифметических операций

2.1. Подготовка к работе

По указанной литературе изучить:

понятие прямого, обратного и дополнительного кодов;

правила выполнения арифметических операций сложения, вычитания, умножения;

объекты подбиблиотеки Logic and Bit Operations, Sinks, Sources, Signal Routing биб-

лиотеки Simulink.

2.2. Цель работы

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

лировать их.

2.3. Задание и порядок выполнения работы

1. Запустить Simulink.

2. Задания. Создать модель трехвходового (a, b, d) цифрового устройства, для реализа-

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 13: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

13

ции арифметических и логических операций с многоразрядными числами, заданными по

варианту в табл. 2.1, с учетом и без учета их знака:

представить числа +d и –d двоичными эквивалентами;

выполнить над числами (a, b, d) и (a, b, –d) логические операции: И (AND), И-НЕ (NAND), ИЛИ (OR), ИЛИ-НЕ (NOR), исключающее ИЛИ (XOR);

полученные результаты свести в таблицы, созданные в текстовом редакторе: первая для чисел a, b, d, вторая для чисел a, b, –d;

выполнить над числами a, b, d арифметические операции: a + b, a – d, d – b;

выполнить над числами арифметико-логическую операцию, заданную по варианту в табл. 2.1;

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

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

скопировать в отчет полученные модели и результаты проверки решения;

сделать выводы по проделанной работе.

Таблица 2.1. Варианты и арифметико-логических операций.

Задания

N a b d

Операции

логические арифметические арифметико-

логические

1 115 70 54

AND,

OR,

NAND,

NOR,

XOR

a + b,

a – d,

d – b,

2 120 69 48 ba

3 73 125 53 ba

4 82 118 59 bа

5 112 110 39 ba

6 99 113 45 ba

7 117 76 41 bа

8 125 83 55 ba

9 79 116 43 ba

10 81 113 37 bа

11 114 98 46 ba

12 86 111 52 ba

13 109 73 56 bа

14 95 121 47 ba

15 103 84 59 ba

16 89 125 44 bа

2.4. Технология выполнения задания

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

2.1 три числа a, b и d двоичным эквивалентом. Для этого в режиме прямых вычислений в

командной строке MATLAB введите числа, например, a=105, b=120, d=45:

>> dec2bin([105, 120, 45]) % преобразование десятичных

% чисел в двоичные эквиваленты

ans =

1101001

1111000

0101101

>> a=[0 1 1 0 1 0 0 1]; % двоичное число в виде вектора

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 14: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

14

>> b=[0 1 1 1 1 0 0 0];

>> d=[0 0 1 0 1 1 0 1];

2. В текстовом редакторе создайте таблицу, в которую внесите десятичные числа a, b и d

их двоичные эквиваленты. Все числа должны быть одинаковой разрядности. У положи-

тельных чисел знак «+» кодируется 0, и он добавляется в качестве старшего разряда в

двоичный эквивалент числа.

Число – d представить дополнительным кодом. Для этого:

1. знак «–» кодируется 1 и добавляется в качестве старшего разряда в двоичный экви-

валент числа,

2. значащие разряды инвертируются по отношению к прямому коду,

3. добавляется 1 в младший разряд двоичного эквивалента.

a10 b10 d10 a2 b2 +d2 –d2

105 120 45 01101001 01111000 00101101 11010011

3. С помощью встроенные функции MATLAB (not(), and(), or(), xor() ) произведите в ре-

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

a2, b2 и d2 . Ожидаемые результаты: >> or(a,or(b,d)) ans = 0 1 1 1 1 1 0 1 >> bin2dec(' 0 1 1 1 1 1 0 1 ') ans = 125 >> not(or(a,or(b,d))) ans = 1 0 0 0 0 0 1 0 >> bin2dec(' 1 0 0 0 0 0 1 0 ') ans = 130 >> and(a,and(b,d)) ans = 0 0 1 0 1 0 0 0 >> bin2dec(' 0 0 1 0 1 0 0 0 ') ans = 40 >> not(and(a,and(b,d))) ans = 1 1 0 1 0 1 1 1 >> bin2dec(' 1 1 0 1 0 1 1 1 ') ans = 215 >> xor(a,xor(b,d)) ans = 0 0 1 1 1 1 0 0 >> bin2dec(' 0 0 1 1 1 1 0 0 ') ans = 60 >> a10=105; >> b10=120; >> d10=45; >> a10+d10 ans = 150 >> dec2bin(150)

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 15: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

15

ans = 10010110

4. Результаты расчета над числами a, b, d без учета знака поместите в отчет в новую таб-

лицу:

Таблица результатов расчета и моделирования чисел a, b, d

Операции

с a, b, d

105, 120,

45

Ожидаемый результат Результат

моделирования в двоич-

ном коде

в десятич-

ном коде

AND 00101000 40

NAND 11010111 215

OR 01111101 125

NOR 10000010 130

XOR 00111110 60

ADD(A,D) 10010110 150

5. Аналогично пп.3 и 4 выполнить расчет с числами a, b, –d (с учетом знака) и результат

поместить в таблицу.

>> a=[0 1 1 0 1 0 0 1]; % двоичное число в виде вектора

>> b=[0 1 1 1 1 0 0 0];

>> d=[0 0 1 0 1 1 0 1]; % число +45

>> not(d)

ans =

1 1 0 1 0 0 1 0

>> dm=[1 1 0 1 0 0 1 1; % число -45 в дополнительном коде

>> or(a,or(b,dm)) % ожидаемый результат дизъюнкции

% в дополнительном коде

ans =

1 1 1 1 1 0 1 1

% перевод из дополнительного кода в прямой

>> not([1 1 1 1 0 1 1]) % без учета знака

ans =

0 0 0 0 1 0 0

>> d=[1 0 0 0 0 1 0 0]+[0 0 0 0 0 0 0 1]

d =

1 0 0 0 0 1 0 1 % число -5

bin2dec(' 0 0 0 0 1 0 1') % без учета знака

ans =

5

Аналогичные вычисления и с другими операциями.

Таблица результатов расчета и моделирования чисел a, b, –d

Операции

с a, b, -d

105, 120, -

45

Ожидаемый результат Результат

моделирования в двоич-

ном коде

в десятич-

ном коде

AND 01000000 64

NAND 10111111 -65

OR 11111011 -5

NOR 00000100 4

XOR 11000010 -62

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 16: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

16

ADD(A,D) 00111100 60

6. В Simulink создайте модель устройства (рис. 2.1), выполняющего заданные логические

и арифметические операции. В таблице 2.2 указаны названия блоков, папки в которых

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

нить.

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

числами без знака.

Таблица 2.2. Значения параметров блоков моделирования

Название и назначе-

ние блоков

Размещение в браузере Параметры

блоков

Источники:

Constant1,2,3 Simulink / Sources

Constant value // значения для a, b, d из

табл. 2.1.

Устройство объеди-

нения: Mux Simulink / Signal Routing

Number of inputs 3 // количество объеди-

няемых входов

Блок преобразования

типов Data Type Con-

version

Simulink / Commonly

Used Blocs

Output dada type значения:

uint8 для чисел без знака,

int8 для чисел со знаком

Логический блок: Bitwise Operator

Simulink / Logic and Bit

Operations

Operator: AND, Or,

NAND, NOR, XOR

// поочередно

Математический блок

Add

Simulink/ Math Opera-

tions По умолчанию

Регистраторы: Dis-

play, Display1 Simulink / Sinks По умолчанию

7. Установите для каждого блока соответствующие свойства. Окна параметров блоков

приведены на рис. 1.2 и 1.3.

Для решения Задания используются следующие блоки.

Блок Mux (мультиплексор) – объединяет входные сигналы в вектор. Количество входов

устанавливается в окне параметры блока (рис. 2.2).

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 17: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

17

Рис. 2.2. Окно установки параметров блока Mux

Блок Bitwise Logical Operator – поразрядный логический оператор реализует одну из базо-

вых логических операций по отношению к данным в формате uint/int. Количество входов и вид

операции устанавливается в окне параметры блока (рис. 2.3).

Рис. 2.3. Окно установки параметров блока Bitwise Operator

Входными сигналами блока могут быть без знаковые переменные типа uint8, uint16,

uint32, или переменные со знаком («+» 0 и «–» 1) типа int8, int16, int32. Если оба операнда

векторы, то операции выполняются поэлементно, при этом размерность операндов должны

совпадать. Размерность выходного сигнала определяется размерностью вектора (или масси-

ва) входного сигнала.

Блок Data Type Conversion преобразует десятичное число типа double в 8-разрядное це-

лое число типа uint (без знака) или int (с учетом знака). Тип преобразуемого числа устанав-

ливается в окне параметры блока (рис. 2.4).

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 18: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

18

Рис. 2.4. Окно установки параметров блока Data Type Conversion

Блок математических операций Add служит для вычисления суммы или разности теку-

щих значений сигналов. Вид арифметического действия и количество входов устанавлива-

ются в списке обозначений (List of signs) окна параметры блока (рис. 2.5). Например, ++ (два

входа и операция сложения) или +- (два входа и операция вычитания).

Рис. 2.5. Окно установки параметров блока ADD

8. Сохраните модель в своей папке и запустите на исполнение. Результаты вычислений ото-

бразятся в дисплее (рис. 2.1). Скопируйте модель в отчет.

9. Внесите изменение в модель и выполните аналогичные действия (п.п. 6-8) с заданны-

ми числами a, b, -d (рис. 2.6).

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 19: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

19

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

числами со знаком

Пример контрольного теста «Арифметические операции»

Результат 12+12 в двоичной системе равен:

Результат арифметической операции 11010+1010 равен (ввести двоичное число без про-

белов):

Результат арифметической операции A-B (при А=6 и В=13) c двоичными числами ра-

вен (ввести двоичное число без пробелов в дополнительном коде):

Результат арифметической операции B-A (при А=7 и В=12) с двоичными числами ра-

вен (ввести двоичное число без пробелов в дополнительном коде):

Введите результат моделирования:

Какой блок надо подключить для получения представленного результата моделирова-

ния:

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 20: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

20

3. Сумматоры

3.1. Подготовка к работе

По указанной литературе изучить:

понятие полусумматора;

понятие одноразрядного и многоразрядного сумматора;

объекты подбиблиотеки Logic and Bit Operations, Sinks, Sources, Signal Routing биб-лиотеки Simulink.

3.2. Цель работы

Изучить работу полусумматора, одноразрядного и многоразрядного сумматоров.

3.3. Задание и порядок выполнения работы

1. Задание1. Создать модель цифрового устройства – полусумматора, реализующего

операцию сложения одноразрядных двоичных чисел:

составить таблицу истинности суммирования двух одноразрядных двоичных чисел (a, b);

проверить эту таблицу путем моделирования операции суммирования с использова-нием блоков Simulink;

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

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

сделать выводы по проделанной работе.

2. Задани2. Создать модель одноразрядного двоичного сумматора:

составить таблицу истинности суммирования трех одноразрядных двоичных чисел (a, b, c);

проверить эту таблицу путем моделирования операции суммирования с использова-нием блоков Simulink;

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

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

сделать выводы по проделанной работе.

3. Задани3. Создать модель четырехразрядного двоичного сумматора, выполняющего

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

3.1:

перевести числа, заданные в десятичной системе в двоичный эквивалент,

выполнить операцию суммирования с этими числами;

проверить результат путем моделирования этой операции с использованием блоков Simulink;

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

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

сделать выводы по проделанной работе.

Таблица 3.1. Варианты заданий. Операции a + b

N числа N числа N числа N числа

a b a b a b a b

1 4 15 5 12 10 9 8 14 13 10 11

2 5 14 6 13 12 10 9 15 14 11 10

3 6 13 7 14 11 11 10 12 15 12 9

4 7 12 8 15 9 12 11 13 16 13 8

3.4. Технология выполнения Задания1

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 21: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

21

A

SM

B

S

P

1. Арифметико-логическое устройство (АЛУ) является узлом ЭВМ, который выполняет

арифметические и логические операции над данными, обрабатываемыми процессором.

Основной элемент, используемый в АЛУ, является полусумматором. Функция полусум-

матора заключается в сложении двух двоичных цифр A и B, в результате чего образуется

сумма (S) и перенос в старший разряд (Р) в соответствии с правилами двоичного сложе-

ния:

Таблица истинности работы полусумматора:

Слагаемые Результат A+B

A B P S в десятичном

коде

0 0 0 0 0

0 1 0 1 1

1 0 0 1 1

1 1 1 0 2

Условно полусумматор на логических схемах изобра-

жается следующим образом:

Полусумматор имеет два входа А и В и два выхода S и

Р. Первый столбец результата этой таблицы (P) аналогичен

логической операции И ( bа ), он даѐт перенос из данного

разряда в следующий, столбец S даѐт значение суммы двух

бинарных чисел и представляет собой логическую операцию «сложение по модулю 2»

( bа ).

Отсюда видно, что для реализации полусумматора будет достаточно двух логиче-

ских элементов (AND) и (XOR).

2. В Simulink создайте модель устройства (рис. 3.1), выполняющего заданную арифмети-

ческую операцию. В таблице 3.2 указаны названия блоков, папки в которых находятся

нужные блоки для моделирования и параметры блоков, которые нужно изменить.

Рис. 3.1. Модель полусумматора

3. Сохраните модель в своей папке под именем Half_Sum.

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 22: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

22

A

SM

C

S

P

B

Таблица 3.2. Значения параметров блоков моделирования

Название и назначение

блоков

Размещение в браузере Параметры

блоков

Источники: Constant A, B Simulink / Sources

Constant value // значения a, b из

табл. истинности Логические блоки Logical OperatorS, Logical OperatorP

Simulink / Logic and Bit

Operations

Operator: XOR,

Operator: AND

Регистраторы: DisplayS,

DisplayP Simulink / Sinks По умолчанию

4. Установите поочередно в блоках Constant A и B бинарные числа в соответствии с таб-

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

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

тинности полусумматора.

5. В текстовом редакторе создайте отчет, в который поместите таблицу работы полу-

сумматора и его модель.

3.5. Технология выполнения Задания2

1. Моделируемому устройству на рис. 3.1 дано название «полусумматор» потому, что

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

учитывает сигнал переноса, получаемый от предыдущего (младшего) разряда. Следова-

тельно, двоичный одноразрядный сумматор должен иметь три входа и два выхода. На

логических схемах он условно изображается в виде блока:

На входы А и В подаются соответственно цифры первого и второго слагаемого, а на

вход С – цифра переноса из предыдущего разряда. Выходы

S и Р соответственно выводят значения суммы и переноса в

следующий (более старший) разряд. Функционирует одно-

разрядный сумматор в соответствии с таблицей истинности:

Таблица истинности работы сумматора:

Слагаемые Результат A+B+С

C

перенос

A B P S в деся-

тичном

коде

0 0 0 0 0 0

0 0 1 0 1 1

0 1 0 0 1 1

0 1 1 1 0 2

1 0 0 0 1 1

1 0 1 1 0 2

1 1 0 1 0 2

1 1 1 1 1 3

Сумматор имеет три входа А, В, С и два выхода S и Р.

Первый столбец результата этой таблицы (P) аналогичен логическим операциям

( bа b c a c ). Он даѐт перенос из данного разряда в следующий, столбец S даѐт

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

жение по модулю 2» ( bа c ).

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 23: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

23

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

OR и XOR.

2. В Simulink создайте новую модель устройства (рис. 3.2), выполняющего заданную

арифметическую операцию. В таблице 3.2 указаны названия блоков, папки в которых

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

нить.

Таблица 3.2. Значения параметров блоков моделирования

Название и назначение

блоков

Размещение в браузере Параметры

блоков

Источники: Constant A,

B, C Simulink / Sources

Constant value // значения a, b, c из

табл. истинности

Логические блоки Logical Operator 1,2,3,4

Simulink / Logic and Bit

Operations

Operator: XOR,

Operator: AND – 3 шт.

Operator: OR

Регистраторы: DisplayS,

DisplayP Simulink / Sinks По умолчанию

Рис. 3.2. Модель одноразрядного сумматора

4. Сохраните модель в своей папке под именем Sum1.

5. Установите поочередно в блоках Constant A, B и C бинарные числа в соответствии с

таблицей истинности, и, запуская каждый раз модель на исполнение (8 раз), снимите по-

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

истинности сумматора.

6. В отчет поместите таблицу работы сумматора и его модель.

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 24: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

24

3.6. Технология выполнения Задания3

1. Моделируемое устройство на рис. 3.2 даѐт значение суммы двух одноразрядных вели-

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

от предыдущего (младшего) разряда. Следовательно, для получения двоичного четырех-

разрядного сумматора необходимо иметь четыре одноразрядных сумматора. Каждый

сумматор имеет по три входа и два выхода. На вход переноса C0 младшего разряда надо

падать 0, а выходы переносов младших разрядов, соединить последовательно с входами

по следующих старших разрядов.

2. С помощью встроенных функций MATLAB представьте два числа a и b, взятые по ва-

рианту из табл. 3.1, двоичным эквивалентом. Для этого в командной строке MATLAB

введите поочередно два числа, например, a=7 и b=13:

>> a=dec2bin(7) % преобразование 10-го числа «7» в 2-е

a =

111

>> b=dec2bin(13) % преобразование 10-го числа «13» в 2-е

b =

1101

3. В отчете создайте таблицу, в которую внесите десятичные числа a и b и их двоичные

эквиваленты. Оба числа должны быть одинаковой разрядности. Подсчитайте ожидаемый

результат в двоичном и десятичном эквивалентах и занесите двоичные разряды в табли-

цу:

Таблица работы четырехразрядного сумматора

Слагаемые разряд 0 1 2 3 4

7 A 0 1 1 1

13 B 1 0 1 1

перенос C 0 1 1 1 1

Результат

A+B+C

P 1 1 1 1

S 0 0 1 0

Ожидаемый результат:

S0+S1+S2+S3+P3=0*20

+ 0*21

+ 1*22 + 0*2

3 + 1*2

4 = 4+16=20

4. В Simulink на базе одноразрядного сумматора создайте новую модель четырехразряд-

ного сумматора (рис. 3.4). Поскольку наращивание разрядности сумматора можно дос-

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

создать подсистему сумматор (SM) на базе одноразрядного сумматора. Для этого:

1) скопируйте в новое окно модель одноразрядного сумматора,

2) сохраните модель в своей папке под именем Sum4,

3) мышью выделите блоки XOR, AND и OR (см. рис. 3.3),

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 25: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

25

Рис. 3.3. Выделение блоков для подсистемы

4) выберите пункт меню Edit\ Create Subsystem,

5) на месте выделенных блоков появится блок подсистемы, имеющий порт ввода In1 и

порт вывода Out1. С помощью этих портов подсистема включается в состав основной моде-

ли,

6) переименуйте название блока в SM (рис. 3.5).

7) для вызова подсистемы для просмотра и ре-

дактирования (рис. 3.4) достаточно дважды щелкнуть

по ней левой кнопкой мыши.

8) удалите коннекторы, соединяющие подсисте-

му с выходными блоками,

9) скопируйте блок SM трижды в модель и со-

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

как показано на рис. 3.5.

Рис. 3.4. Окно подсистемы SM (сумматора)

10) добавьте в модель блоки Constant для ввода 4-х разрядов чисел a и b и установите в

этих блоках значения двоичных эквивалентов.

11) для объединения четырех разрядов результата суммирования в вектор установите на

выходе сумматора Mux – мультиплексор (Simulink / Signal Routing) с четырьмя входами.

5. Установите в блоках Constant бинарные числа a и b в соответствии с вариантом.

6. Сохраните и запустите модель на исполнение.

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 26: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

26

7. Снимите показания результатов работы сумматора.

8. Сравните результаты работы модели с ожидаемыми значениями сумматора.

9. В отчет поместите таблицу работы многоразрядного сумматора и его модель.

10. Сделайте выводы по проделанной работе.

Рис. 3.5. Модель четырехразрядного сумматора

Пример контрольного теста «Сумматоры»

Результат 12+12 в двоичной системе равен:

Результат арифметической операции 11010+1011 равен (ввести двоичное число без про-

белов):

Перенос старшего разряда арифметической операции 1010 +1011 равен:

Результат арифметической операции A+B (при А=7 и В=12) с двоичными числами ра-

вен (ввести двоичное число без пробелов в дополнительном коде):

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 27: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

27

Введите результат моделирования:

Введите результат моделирования:

Укажите все входы сумматора

Операнд а

Операнд b

Перенос c

Сумма s

Перенос p

4. Решение линейных уравнений

4.1. Подготовка к работе

По указанной литературе изучить:

объекты подбиблиотеки Math Operations, Sinks, Sources;

объекты подбиблиотеки Signal Processing Blockset /Math

решение линейных уравнений средствами MATLAB.

4.2. Цель работы

Научиться решать систему линейных уравнений и моделировать этот процесс.

4.3. Задание и порядок выполнения работы

1. Задача 1. Решить линейное уравнение (ЛУ) типа a*x+b=0 с последующим его модели-

рованием. Коэффициенты уравнения заданы по варианту в таблице 4.1. Для этого:

решить ЛУ в режиме прямых вычислений;

создать модель решения ЛУ с использованием блоков математических операций па-

кета Simulink;

сохранить модель и сравнить результаты моделирования ЛУ с вычисленными значе-

ниями;

скопировать в отчет модель решения ЛУ и результаты проверки решения.

Таблица 4.1. Варианты заданий

N 1 2 3 4 5 6 7 8 9 10 11 12

а -1,5 0,31 0,48 -0,07 0,09 3,8 2,5 -0,6 0,5 -0,07 0,4 2,61

b 15 0,95 -12 11,2 7,2 9,5 -13,3 12 9,48 0,58 11,4 -5,6

2. Задача 2. Решить систему линейных уравнений (СЛУ) с последующим ее моделиро-

ванием:

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 28: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

28

3333232131

2323222121

1313212111

bxaxaxa

bxaxaxa

bxaxaxa

.

Коэффициенты уравнений заданы по варианту в таблице 4.2.

Для этого:

задать матрицу A – из коэффициентов a11 a12…a33,

задать вектор B – свободных членов b1, b2, b3,

вычислить в командной строке корни СЛУ методами исключения Гаусса (матрич-

ным способом) и наименьших квадратов (с помощью встроенной функций lsqr());

создать модель решения СЛУ с использованием блоков матричных операций пакета

Signal Processing Blockset,

сохранить модель и сравнить результаты моделирования СЛУ с вычисленными зна-

чениями,

скопировать в отчет модель решения СЛУ и результаты проверки решения матрич-

ным способом.

Таблица 4.2. Варианты заданий

N

а11 а12 а13 b1 а21 а22 а23 b2 а31 а32 а33 b3

1 2 0,1 -0,05 10 0,06 -2,5 0,3 12 0,02 -0,3 4 15

2 3 0,2 -0,15 11 -0,02 1,3 -0,6 9,5 -0,04 0,08 6 20

3 -1,5 0,15 -0,22 15 0,31 -5,7 0,75 12 0,08 -0,06 3,5 16

4 4,8 -0,6 0,4 8 -0,05 6,3 -0,4 8,5 -0,07 0,3 5 12

5 -7,2 0,3 0,01 12 -0,16 4,5 0,8 10 0,3 -0,05 6,5 18

6 4,5 0,08 -0,15 9 0,4 -7,2 0,3 11,4 -0,6 0,65 3 14

7 6,3 -0,4 0,21 14 -0,01 4,8 -0,6 9 0,2 0,2 2 19

8 -5,7 0,65 0,35 8,5 0,05 -1,5 0,2 10,5 0,15 -0,07 8 10

9 1,4 -0,7 0,02 11,3 0,15 3 -0,2 15 0,1 0,15 7,5 12

10 -2,5 0,32 0,06 10,5 0,07 2 -0,2 14 0,5 0,1 4,5 13

11 2,5 0,23 -0,2 9,5 0,09 2,4 0,5 8 -0,05 0,09 9,5 11

12 3,8 0,3 -0,3 13 0,08 -3,5 0,7 6 0,2 -0,5 7 17

13 3 0,2 -0,15 11 -0,02 1,3 -0,6 9,5 -0,04 0,08 6 20

14 4,8 -0,6 0,4 8 -0,05 6,3 -0,4 8,5 -0,07 0,3 5 12

15 4,5 0,08 -0,15 9 0,4 -7,2 0,3 11,4 -0,6 0,65 3 14

16 1,4 -0,7 0,02 11,3 0,15 3 -0,2 15 0,1 0,15 7,5 12

3. Сделать выводы относительно величины погрешности вычислений линейных уравне-

ний разными методами.

4.4. Технология выполнения задания1

1. Решение линейного уравнения (ЛУ) вида a*x+b=0 возможно в командной строке

MATLAB, например: >> a=3; >> b=-6.6; >> x=-b/a x = 2.2000

2. В Simulink создайте модель устройства (рис. 4.1), выполняющего решение линейного

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

блоки для моделирования и параметры блоков, которые нужно изменить:

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 29: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

29

Рис. 4.1. Модель решения линейного уравнения 3*х 6,6 = 0

Таблица 4.3. Значения параметров блоков моделирования ЛУ

Название блоков Размещение в браузере Параметры

блоков

Constant,

Constant1

Simulink / Sources Constant1=3,//устанавливаются Constant2=6.6 //

по варианту

Блоки Add,

Product

Simulink/ Math Operations List of signs: +- // Add

Number of inputs: 2 //Product

Блок Algebraic

Constraint

Simulink/Math Operations Initial guess: 2

// значения выявляются по приближенному ре-

шению

Display Simulink/Sinks По умолчанию

Блок алгебраического ограничения Algebraic Constraint служит для решения уравнений

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

такое значение выходного сигнала (x), при котором значение входного сигнала F(x) стано-

вится равным нулю (F(x)=0). При этом входной сигнал должен быть связан с выходным сиг-

налом по цепи обратной связи (см. рис. 4.1). Используя свойства блока, целесообразно задать

начальное приближение корней уравнения для повышения эффективности его решения. Для

уравнения вида 3*х 6,6 = 0 начальное приближение корня равно 2.

Рис. 4.2. Окно установки параметров блока Algebraic Constraint

Приближенное решение

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 30: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

30

3. Сохраните модель и запустите ее исполнение. Результаты вычислений отобразятся в

дисплее (рис. 4.1). Скопируйте модель в отчет и сделайте выводы по проделанной работе.

4.5. Технология выполнения задания2

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

целый ряд задач линейной алгебры. Для реализации различных алгоритмов решения СЛУ и

связанных с ними матричных операций применяются следующие матричные операторы: +,

, *, /, \, ^, ′.

Матричные арифметические операции определяются правилами линейной алгебры.

Алгебраические операции сложения и вычитания над массивами выполняются поэлементно.

Знак «.» отличает операции над элементами массивов от матричных операций. Поскольку

операции сложения и вычитания одинаковы для матрицы и элементов массива, знаки «.+» и

«.» не используются. Для операторов умножения и деления знак «.» имеет значение. Без

точки «*» «/» или «\» – это матричное умножение и деление (правое и левое) соответственно,

а с точкой «.*» «./» или «.\» – по элементное умножение и деление.

Например,

C=A*B – линейное алгебраическое произведение матриц А и В:

1

( , ) ( , )* ( , )n

k

C i j A i k B k j

Для не скалярных А и В число столбцов матрицы A должно равняться числу строк матрицы

В. Скаляр может умножаться на матрицу любого размера. Если А – матрица размерами [n x

n], а B – вектор-столбец с n компонентами, то X=A\B – решение уравнения вида A∙X=B, кото-

рое находится методом исключения Гаусса.

Поскольку вектор B в командной строке представлен в виде строки, то матрицу А

надо транспонировать. Решением СЛУ будет X=B/A', где A' – транспонированная матрица

A.

1. Для решения системы линейных уравнений методом Гаусса (матричным способом) в

системе MATLAB необходимо в режиме прямых вычислений выполнить следующее:

2. Задать матрицу А коэффициентов системы;

3. Задать вектор В свободных членов системы;

4. Вывести решение методом Гаусса тремя способами:

X1=B/A' % матричные операторы,

X2=B*A'^-1 % использование обратной матрицы,

X3=B*inv(A') % использование функции inv().

5. Для решения СЛУ методом наименьших квадратов надо задать матрицу А и вектор

В (п.2 и 3), а затем вывести результаты решения СЛУ с помощью функции lsqr(A,B'). Эта

функция возвращает точное решение х, если оно существует, в противном случае – воз-

вращает решение по итерационному методу наименьших квадратов.

Рассмотрим пример решения СЛУ вида:

20x34x20,08-x10,004

9x30,15 - x23x10,09

8x30,08 - x20,24x14

>> % Решение СЛУ

>>A=[4 0.24 -0.08; 0.09 3 -0.15; 0.004 -0.08 4] % коэффициенты

A =

4.0000 0.2400 -0.0800

0.0900 3.0000 -0.1500

0.0040 -0.0800 4.0000

>> B= [8 9 20]

B =

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 31: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

31

8 9 20

% методом исключения Гаусса с помощью оператора «/»

>> X=B/A'

X =

1.9095 3.1958 5.0620

% решения СЛУ с помощью обратной матрицы

>> X1=B*A'^-1

X1 =

1.9095 3.1958 5.0620

% решения СЛУ с помощью функции inv() – обратной матрицы

>> X3=B*inv(A')

X3 =

1.9095 3.1958 5.0620

% решения СЛУ методом наименьших квадратов

>> lsqr(A,B')

ans =

1.9095

3.1958

5.0620

>> % Проверка решения СЛУ

>> X*A

ans =

8.0000 9.0000 20.0000

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

6. В Simulink создайте модель устройства (рис. 4.3), выполняющего решение СЛУ. В

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

делирования и параметры блоков, которые нужно изменить:

Рис. 4.4. Модель решения системы линейных уравнений (СЛУ)

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 32: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

32

Таблица 4.4. Значения параметров блоков моделирования СЛУ

Название

блоков

Размещение в браузере Параметры

блоков

ConstantA,

ConstantB

Simulink / Sources

[4 0.24 -0.08; 0.09 3 -0.15;

0.004 -0.08 4]

[8 9 20] // по варианту

Блок LU

Solver

Signal Processing Blockset /Math Function/ Matric-

es and Linear Algebra / Linear System Solvers По умолчанию

Блок LU Inverse

Signal Processing Blockset /Math Function/ Matric-

es and Linear Algebra /Matrix Inverses По умолчанию

Блок

Matrix

Multiply

Signal Processing Blockset /Math Function/ Matric-

es and Linear Algebra /Matrix Operations По умолчанию

Display,1,2 Simulink/Sinks По умолчанию

Блоки матричных и математических операций широко представлены в пакете Signal

Processing Blockset (в старых версиях Digital Signal Processing Blockset). MATLAB решение

A∙X=B выполняется методом LU разложения. Матрица А должна быть квадратной, вектор B

должен иметь одинаковое число строк с A.

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

рица приводится к верхнему треугольному виду U (upper – верхний) – все числа под диаго-

налью равны нулю. Если при этом не делается перестановка строк, то матрица, умножение

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

угольной L (lower – нижний) – все числа над диагональю равны нулю. В результате получаем

LU разложение матрицы, например:

A=LU

Функция lu(A) выражает любую квадратную матрицу A как произведение двух треугольных

матриц, одна из которых нижняя треугольная матрица, а другая – верхняя треугольная мат-

рица. Эту операцию называют LU-разложением.

Например, для заданной матрицы А:

>> A=[4 0.24 -0.08; 0.09 3 -0.15; 0.004 -0.08 4];

>> A

A =

4.0000 0.2400 -0.0800

0.0900 3.0000 -0.1500

0.0040 -0.0800 4.0000

>> [L,U]=lu(A) % формат записи функции L = 1.0000 0 0 0.0225 1.0000 0 0.0010 -0.0268 1.0000 U = 4.0000 0.2400 -0.0800 0 2.9946 -0.1482 0 0 3.9961 >> L*U % исходная матрица А ans = 4.0000 0.2400 -0.0800 0.0900 3.0000 -0.1500 0.0040 -0.0800 4.0000

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 33: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

33

Блок LU Solver (рис. 4.4) – решает линейную систему вида A∙X=B, применяя LU разло-

жение матрицы (LUX=B) и имеет два входа – для ввода матрицы А и вектора B. Выходной

порт X – это решение СЛУ. Матрица А должна быть квадратной, а вектор В – представлен

столбцом с одинаковым число строк, как и у А.

Рис. 4.4. Окно установки параметров блока LU Solver

Блок LU Inverse (рис. 4.5) – выполняет обратное преобразование матрицы, применяя LU

разложение матрицы (А-1

=LU-1

),

где L-нижняя треугольная квадратная матрица с диагональными элементами, а U-верхняя

треугольная квадратная матрица. Блок имеет выход матрицы обратной матрице A-1

. >> A^-1 ans = 0.2504 -0.0199 0.0043 -0.0075 0.3343 0.0124 -0.0004 0.0067 0.2502

Рис. 4.5. Окно установки параметров блока LU Inverse

Блок Matrix Multiply выводит результат умножения (или деления) двух (и более) пере-

менных, как скалярных, так и не скалярных. В последнем случае не скалярные величины

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

Рис. 4.6. Окно установки параметров блока Matrix Multiply

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 34: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

34

7. Сохраните модель и запустите ее исполнение. Результаты вычислений отобразятся в

дисплее (рис. 4.1). Скопируйте модель в отчет и сделайте выводы по проделанной работе.

Как показала проверка моделирования СЛУ путем решения системы с помощью встро-енных средств MATLAB, модель собрана и функционирует верно.

Пример контрольного теста «Линейные уравнения»

Матричным оператором в системе MATLAB не является:

^ * /. .\ -

Матричным оператором в системе MATLAB не является:

‘ \ *. .* /

Укажите правильное задание матрицы B размером 3х3 в MATLAB:

B=[2 3 4, -5 6 4, 0 -7 1]

B=[2 3 4; -5 6 4; 0 -7 1]

B=[2, 3, 4, -5, 6, 4, 0, -7, 1]

B=[2: 3: 4; -5: 6: 4; 0: -7: 1]

B=(2 3 4; -5 6 4; 0 -7 1)

Вывод на экран вектор A в виде столбца:

A(') A= A(..) A(:) A.^

Транспонирование массива F

F.' F t F.t F^ F.^

Если А – матрица коэффициентов при неизвестных, а B – вектор свободных членов в

системе линейных уравнений, то к матричным способам решения системы относятся:

X=B/A'

X=B\A

X=B*A'^-1

X=B-1

*A

X=A*B

Укажите формулу, проверяющую в матричном виде правильность решения СЛУ:

X*B

X/A

X*A'

X/B

A'*B

где А – матрица коэффициентов, B – вектор свободных членов, X – вектор корней ре-

шения СЛУ.

5. Решение нелинейных уравнений

5.1. Подготовка к работе

По указанной литературе изучить:

создание и редактирование графиков в MATLAB;

объекты подбиблиотеки Math Operations, Sinks, Sources библиотеки Simulink;

способы решения нелинейных уравнений в MATLAB.

5.2. Цель работы

Научиться решать систему нелинейных уравнений и моделировать этот процесс.

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 35: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

35

5.3. Задание и порядок выполнения работы

1. Задача 1. Решить два нелинейных уравнения (НУ) с последующим их моделировани-

ем. Функции для решения уравнений заданы по варианту в таблице 5.1. Для этого:

построить графики функций F1(X) и F2(X) в одном окне, определить точки пересече-ния графиков с осью Х;

вычислить корни нелинейных уравнений вида F1(X)=0 и F2(X)=0 с помощью встроен-ных функций roots и solve;

создать модели решения НУ с использованием блоков математических операций па-кета Simulink.

Таблица 5.1. Варианты заданий

N Функции Диапазон изменения х

F1 F2 хo хn h(шаг)

1 0.6x3

3x2+10x+5 2x

2|x| 35 -10 5 0.3

2 0.7x3+2x

2+4x 1 x

2+ |2x|+10 -5 5 0.2

3 0.4x3

2x2+2x+9 3x

2|x+2|+40 -10 5 0.4

4 0.2x3

2x2+2x+20 2x

2|x-1| 30 -12 5 0.5

5 0.3x3+2x

26x 10 6x

2|x|+25 -10 5 0.3

6 1.1x3+5x

2+1x 15 2x

2+ |x+1|+20 -5 5 0.2

7 0.25x3+3x

2+2x 20 3(x+1)

2|x| 50 -10 15 0.3

8 0.2x3

3x2+5x+25 2x

2|x|+45 -10 15 0.5

9 0.9x3

3x2+5x+10 2(x 1)

2+|x| 25 -5 5 0.3

10 0.9x3

4x2+2x+10 2x

2+ |x| 25 -5 5 0.2

11 0.5x3

3x2+11x+6 3x

2|2x| 41 -10 5 0.3

12 0.3x3

4x2+3x+50 3x

2|x-5|+50 -10 15 0.4

13 0.4x3

2x2+2x+9 3x

2|x+2|+40 -10 5 0.4

14 1.1x3+5x

2+1x 15 2x

2+ |x+1|+20 -5 5 0.2

15 0.9x3

3x2+5x+10 2(x 1)

2+|x| 25 -5 5 0.3

16 0.3x3

4x2+3x+50 3x

2|x-5|+50 -10 15 0.4

сохранить модели и сравнить результаты моделирования НУ с вычисленными зна-чениями;

скопировать в отчет графики функций, модели решения НУ и результаты проверки решения.

2. Задача 2. Решить систему линейных уравнений (СНУ) с последующим ее моделиро-

ванием Функции для решения системы нелинейных уравнений (СНУ), заданы в табл. 5.1.

Для этого:

определить по графику функций F1(X) и F2(X) окрестности существования корней СНУ;

решить СНУ вида (F1(X)-F2(X)=0) с помощью встроенной функции fzero();

создать модель решения СНУ с использованием блоков пакета Simulink;

сохранить модель и сравнить результаты моделирования СНУ с вычисленными зна-чениями;

скопировать в отчет модель решения СНУ и результаты проверки решения.

3. Сделать выводы относительно величины погрешности вычислений нелинейных урав-

нений разными методами.

5.3. Технология выполнения задания1

Довольно часто на практике возникает задача решения (нахождения корней) нелинейно-го уравнения вида F(X)=0 или системы СНУ F1(X)=F2(X). Последнее можно свести к виду

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 36: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

36

F1(X)–F2(X)=0. Таким образом, данная задача сводится к нахождению значений аргумента X функции F(X) одной переменной, при котором значение функции равно нулю.

В качестве примера рассмотрим способы решение следующих нелинейных уравнений:

050575.0 23 xxx и 23 - 100 0x x

Как видно первое нелинейное уравнение полиномиальное, второе – степенное. (с

целочисленными показателями степени).

1. Для решения нелинейного уравнения в графической интерпретации необходимо:

задать ранжированную переменную Х,

задать функцию пользователя,

вызвать окно для отображения графика,

задать команду построения графика.

Построим графики функций F1 и F2 в заданном интервале, например, x -15..+10 (рис.

5.1):

>>X=-15:0.5:10; % Задание ранжированной переменной

>> F1=-0.5*X.^3-7*X.^2+5*X+50;

>> F2=3*X.^2-sqrt(abs(X))-100;

>> figure(1);

>> plot(X,F1,X,F2);

Рис. 5.1. Графики функций F1 и F2

Как видно из рисунка 5.1 обе функции пересекают ось х в нескольких точках, где и су-

ществуют корни уравнений вида F1(X)=0 и F2(X)=0. Функция F1 (отображается на графике

пунктирной линией) – полином третий степени – имеет 3 точки пересечения с осью x в окре-

стностях точек -14, -3, 2. Вторая функция F2 (отображается на графике сплошной линией) –

степенная – имеет 2 точки пересечения с осью x в окрестностях -6 и +6.

2. Для решения нелинейных уравнений в режиме прямых вычислений в MATLAB име-ются встроенные функции. Так, например, для полинома – функция roots(F1), которая возвращает вектор-столбец X, элементы которого являются корнями заданного полино-ма. Вектор-строка F1 содержит коэффициенты полинома, упорядоченные по убыванию степеней. Например, для заданного полинома F1:

>> % Решение полинома с помощью функции roots():

>> F1=[-0.5, -7, 5, 50];

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 37: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

37

>> X=roots(F1)

X =

-14.2085

2.7592

-2.5507

>> % Проверка решения подстановкой, например, второго корня х=2.7592

>> F=-0.5*X(2)^3-7*X(2)^2+5*X(2)+50

F =

0

Как видно корень х=2.7592 вычислен точно. Аналогично можно проверить точность вы-

числения других корней (х=-14.2085 и х=-2.5507) путем их подстановки в решение нелиней-

ного уравнения.

3. Как известно, для решения нелинейного уравнения в MATLAB имеется функция solve(), которая возвращает вектор корней НУ, заданного в символьном виде. Например, для функций F1, F2:

>> % Решение НУ в символьном виде:

>>X1= solve('-0.5*x^3-7*x^2+5*x+50')

X1 =

-14.208463160937381019680273693768

-2.550749225446045742603419977223

2.759212386383426762283693670992

>> X2=solve('3*x^2-sqrt(abs(x))-100')

X2 =

-5.8428646462036777884773935421505

5.8428646462036777884773935421505

>> % Проверка решения подстановкой первого корня Х2(1)

>> F2=3*X2(1)^2-sqrt(abs(X2(1)))-100

F2 =

0.000000000000000000000000000000015348829406765888

Как видно корни вычислены с очень высокой степенью точностью, т.к. при их подста-новки F2→0.

4. В Simulink создайте модель устройства (рис. 5.2), выполняющего решение НУ F1=0 и F2=0. В таблице 5.2 указаны названия блоков, папки в которых находятся нужные блоки для моделирования и параметры блоков, которые нужно изменить при моделировании задачи.

Таблица 5.2. Значения параметров блоков моделирования

Название

блоков

Размещение в браузере Параметры

блоков

Блоки Con-

stant1,2 Simulink / Sources

Constant1=3, //устанавливаются

Constant2=100 // по варианту

Блок Polyno-

mial Simulink / Math Operations

Polynomial Coefficient:

[-0.5 -7 5 50] // по варианту

Блок Alge-braic Con-straint1

Simulink / Math Operations

Initial guess 1: [-14 -3 3] //вектор прибли-

женных корней, которые выявляются по

графику функций F1(Х)

Блок Alge-

braic Con-

straint2

Simulink / Math Operations

Initial guess 2: [-6 6] //вектор приближен-

ных корней, которые выявляются по гра-

фику функции F2(Х)

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 38: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

38

Блоки Add,

Product Simulink / Math Operations

List of signs: - - + // Add

Number of inputs: 2 //Product

Блок Abs Simulink / Math Operations По умолчанию

Блоки Math

Function1,2 Simulink / Math Operations

Значение Function выбирается из списка

функций по варианту

Display1,2 Simulink / Sinks По умолчанию

Рис. 5.2. Модель решения НУ.

Пакет расширения Simulink имеет обширные возможности в проведении математических

операций. Они сосредоточены в разделе их библиотек Math Function (Math Operations). Для

решения НУ, рассмотрим некоторые блоки этой библиотеки.

Блок вычисления элементарных функций Math Function (математическая функция), Tri-

gonometric Function (тригонометрическая функция) и т.п. Действия этих функций и установ-

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

параметры блока Math Function (рис. 5.3).

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 39: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

39

Рис. 5.3. Параметры блока Math Function

Блок алгебраического ограничения Algebraic Constraint (рис. 5.4) служит для решения

уравнений или систем уравнений. При этом входной сигнал должен быть связан с выходным

сигналом (см. рис. 5.2). Используя свойства блока, целесообразно задать начальное прибли-

жение корней уравнения для повышения эффективности решателя. Например, вектор [-14 -3

3].

Рис. 5.4. Параметры блока Algebraic Constraint

Блок Polynomial (рис. 5.5) реализует зависимость, задаваемую степенным многочленом.

Сами же коэффициенты полинома в векторном виде должны располагаться по убыванию

степени переменной. Например, для полинома 3 20.5 7 5 50x x x необходимо задать вектор

коэффициентов [-0.5 -7 5 50]. Коэффициенты должны быть действительного типа.

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 40: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

40

Рис. 5.5. Параметры блока Polynomial

Блоки Add, Subtract, Sum, Product – выполняют арифметические действия над операнда-

ми в соответствие со своим названием. В окне параметров блоков устанавливаются количе-

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

Рис. 5.6. Параметры блока Add

5. Сохраните модель и запустите ее исполнение. Результаты решений F1=0 и F2=0 соот-

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

ды по проделанной работе.

Как показала проверка моделирования НУ путем решения с помощью встроенных

средств MATLAB, модель собрана и функционирует верно.

5.4. Технология выполнения задания2

Решение СНУ сводится к виду F1(x)–F2(x)=0. Таким образом, необходимо найти значе-

ния аргумента x, когда функции F1(x)=F2(x) равны друг другу.

1. Для решения системы нелинейных уравнений в графической интерпретации (рис. 5.1)

необходимо построить график и найти корни как окрестности пересечения функций ме-

жду собой в заданном интервале x -15..+10. Для рассматриваемых уравнений 3 20.5 7 5 50x x x и 23 - 100x x – это х= –4 и х=3.

2. Для решения СНУ в командной строке MATLAB можно использовать встроенную функцию inline() и функцию fzero(f,x), которая находит точные корни уравнений. Функ-ция fzero(f[x1 x2]) возвращает значение х, при котором f(x)=0 с заданием интервала поис-ка с помощью вектора x= [x1 x2], такого, что знак f(x(1)) отличается от знака f(x(2)). Воз-вращенное значение близко к точке, где функция меняет знак. Иначе выдается сообще-ние об ошибке. Например:

>> % Решение системы нелинейных уравнений (СНУ) f=F1-F2:

>> f=inline('-0.5*x^3-7*x^2+5*x+50-3*x^2+sqrt(abs(x))+100')

Изменение знака операции и добавление входа

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 41: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

41

f =

Inline function:

f(x) = -0.5*x^3-7*x^2+5*x+50-3*x^2+sqrt(abs(x))+100

>> x1=fzero(f,-4) % в окрестности существования первого корня

x1 =

-4.0656

>> f(x1) % решение СНУ при х=-4.0656

ans =

1.4211e-014

>> x2=fzero(f,3) % в окрестности существования второго корня

x2 =

3.7904

>> f(x2) % проверка решения СНУ при х=3.7904

ans =

1.4211e-014

Как видно, по результату решения f=F1–F2 0. Корни СНУ вычислены с некоторой по-

грешностью (1.4211e-014), которая сказывается при проверке решения СНУ функции f.

3. Для создания модели решения СНУ достаточно скопировать предыдущие модели в

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

f=F1–F2. Полученная модель решения СНУ для рассматриваемых функций приведена на

рис. 5.7.

Согласно графикам функций F1 и F2, приведенным на рис. 5.1, корни СНУ находятся в

окрестности точек [-4 3]. Эти значения в векторном виде надо ввести в блок Algebraic Con-

straint1, изменив при этом первоначальные значения, а блоки Algebraic Constraint2 и Conso-

nant2 удалить. Кроме того, в модель надо ввести блок вычитания Subtract, который позволит

реализовать операцию F1–F2.

Рис. 5.7. Модель решения СНУ.

4. Сохраните модель и запустите ее исполнение. Результаты решения F1– F2=0 соответ-

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

проделанной работе.

Как показала проверка моделирования СНУ путем решения с помощью встроенных

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 42: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

42

средств MATLAB, модель собрана и функционирует верно.

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

MATLAB. Все они работоспособны и выполняют поставленные задачи.

Пример контрольного теста «Нелинейные уравнения»

Укажите оператор формирования упорядоченных последовательностей в диапазоне от

А до В с шагом Н в MATLAB:

X=A, A+H..B

A, H.. B

A: H: B

A: A+H: B

A..A+H..B

Укажите функцию, возвращающую точные значения корней полинома в системе

MATLAB:

poly()

roots()

polyroots()

root()

sqrt()

Укажите функцию, возвращающую точные значения корней нелинейного уравнения в

системе MATLAB:

root()

solve()

polyroots()

zero()

Укажите правильный вариант задания вектора – полинома:

Y=[a0,a1,a2,a3]

Y=[a3,a2,a1,a0]

Y=(a3,a2,a1,a0)

Y=(a0,a1,a2,a3)

Y=[a3.a2.a1.a0]

Укажите функцию, возвращающую точные значения корней

системы нелинейных уравнений в системе MATLAB:

roots()

solve()

fzero()

polyroots()

zero()

6. Моделирование электрических цепей постоянного и переменного тока

6.1. Подготовка к работе

По указанной литературе изучить:

свойства объектов подбиблиотеки Foundation Library библиотеки Simscape:

Electrical Elements, Electrical Sensor, Electrical Sources.

линейные цепи постоянного тока,

линейные цепи синусоидального тока.

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 43: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

43

6.2. Цель работы

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

6.3. Задание и порядок выполнения работы

Задача 1. Создать модель электрической цепи постоянного тока, где величина источника

напряжения U и сопротивление цепи R заданы по варианту в таблице 6.1. Измерить величину

тока в электрической цепи.

Таблица 6.1. Варианты заданий

N Напряжение

(U), В

Сопротивление (R),

Ом N

Напряжение

(U), В

Сопротивление (R),

Ом

1 100 40 9 180 85

2 110 50 10 190 70

3 120 55 11 200 70

4 130 35 12 210 90

5 140 65 13 120 65

6 150 80 14 150 35

7 160 60 15 180 50

8 170 80 16 160 60

Для этого:

рассчитать величину тока в цепи, используя закон Ома;

создать модель электрической цепи постоянного тока с использованием блоков Sims-

cape;

сохранить модель и сравнить результат моделирования с вычисленным значением;

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

2. Задача 2. Создать модель электрической цепи переменного тока. Варианты заданий

приведены в таблице 6.1, где напряжение для задачи 2 принимается в качестве ампли-

тудного значения Um. Вычислить комплексные значения тока и напряжения в электри-

ческой цепи c частотой f=50 Гц.

Для этого:

рассчитать величину тока в цепи, используя закон Ома;

создать модель электрической цепи переменного тока с использованием блоков SimE-lectronics;

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

сохранить модель и сравнить результаты моделирования с вычисленным значением;

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

3. Сделать выводы о возможностях моделирования электрических цепей средствами па-

кета SimElectronics.

6.4. Технология выполнения задания1

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

тока цепи для заданного (по варианту из табл. 6.1) напряжения источника питания U и

сопротивления цепи R. Для этого в командной строке MATLAB введите данные, напри-

мер, U=220V и R=100 Ом:

>>% Ввод исходных данных

>> U=220;

>> R=100;

>> I=U/R % закон Ома

I =

2.2000

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 44: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

44

2. С помощью пакета расширения SimElectronics создайте модель устройства (рис. 6.1),

реализующего закон Ома для цепи постоянного тока. В таблице 6.2 указаны названия

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

ков, которые нужно изменить:

Рис. 6.1. Моделирование электрической цепи постоянного тока DC

Таблица 6.2. Значения параметров блоков моделирования

Название и назначение

блоков

Размещение в браузере Параметры

блоков

Источник постоян-ного

напряжения DC Voltage

Source

Simscape / Foundation

Library / Electrical Sen-

sor

Constant voltage: 220V

//значение по варианту

Сопротивление

Resistor

Simscape / Foundation

Library / Electrical Ele-

ments

Resistance: 100 Ohm

//значение по варианту

Блок решения Solver Confi-

guration Simscape / Utilities По умолчанию

Амперметр Current Sensor

Simscape / Foundation

Library / Electrical Sen-

sor

По умолчанию

Преобразователь PS-

Simulink Converter Simscape / Utilities По умолчанию

Регистратор Display Simulink / Sinks По умолчанию

Электрическое заземление

Electrical Reference

Simscape / Foundation

Library / Electrical Ele-

ments

По умолчанию

3. Установите для каждого блока соответствующие свойства. Окна параметров блоков

приведены на рис. 6.2 – 6.4.

Блок DC Voltage Source является идеальным источником напряжения, который поддерживает

постоянное напряжение (DC) на выходных клеммах устройства, независимо от величины то-

ка, протекающего через него. У идеального источника напряжения внутреннее сопротивле-

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

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 45: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

45

Рис. 6.2. Окно установки параметров блока DC Voltage Source

С помощью блока Resistor (рис. 6.3) устанавливается номинал сопротивления, которое

связывает ток и напряжение соотношением V = I * R, где R – постоянное сопротивление, Ом.

Положительные и отрицательные клеммы резистора обозначаются знаками + и - соответст-

венно. По умолчанию, напряжение на резисторе задается V (+) - V (-). Ток имеет положи-

тельное направление при прохождении через устройство от положительного полюса к отри-

цательному полюсу. Это гарантирует, что мощность, потребляемая резистором всегда поло-

жительна.

Рис. 6.3. Окно установки параметров блока Resistor

Каждая физическая цепь, в которую включаются блоки библиотеки Simscape, должна

иметь один блок решения Solver Configuration – блок конфигурации решателя. Этот блок реша-

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

щью блоков библиотеки Simscape. Блок Solver Configuration имеет один порт, с помощью ко-

торого он может быть подключен в любом месте к модели.

Начинается моделирование от устойчивого состояния Start simulation from steady state.

При этом решатель с учетом начальных условий пытается найти стационарное состояние

системы. По умолчанию время вычисления установлено 1*10-9

с, что достаточно в большин-

стве случаев (рис. 6.4).

Рис. 6.4. Окно установки параметров блока Solver Configuration

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 46: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

46

Сенсор тока (амперметр) Current Sensor представляет собой идеальный датчик тока, ко-

торый преобразует измеренный ток электрической цепи в физический сигнал, пропорцио-

нальный току. Соединения + и - это электрические порты, посредством которых датчик под-

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

Блок конверсии PS-Simulink Converter преобразует физический сигнал в выходной

сигнал Simulink. Он приводит форматы данных в соответствие с форматами различных

пакетов расширения. Например, вход блока Display (Simulink) с выходом сенсора Current

Sensor (Simscape).

Блок Electrical Reference является электрическим опорным портом, служащим для

подключения электрической земли.

3. Сохраните модель и запустите ее исполнение. Результаты вычислений отобразятся в

дисплее (рис. 6.1). Скопируйте модель в отчет и сделайте выводы по проделанной работе.

6.5. Технология выполнения задания2

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

тока цепи для заданного (по варианту из табл. 6.1) амплитуды напряжения источника пи-

тания U переменного тока и активным сопротивления цепи R. Для этого в командной

строке MATLAB введите исходные данные, например, Um=220 В, R=100 Ом, f=50 Гц:

>> % Ввод исходных данных

>> f=50;

>> t=1;

>> Um=220;

>> R=100;

>> % угловая частота

>> w=2*pi*f;

>> % мгновенное значение

>> U=Um*cos(w*t)

U =

220

>> % действующее значение U

>> Ud=Um/sqrt(2)

Ud =

155.5635

>> % комплексное значение гармонического напряжения

>> U=Um*cos(w*t)+j*Um*sin(w*t)

U =

2.2000e+002 +4.3217e-013i

>> % действительная часть а

>> a=Um*cos(w*t) a = 220 >> % мнимая часть b

>> b=Um*sin(w*t) b = +4.3217e-013 >> % комплексное значение тока по закону Ома

>> I=U/R

I =

2.2000 + 0.0000i

>> % комплексная гармоническая функция

>> u=Um*exp(j*(w*t))

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 47: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

47

u =

2.2000e+002 +4.3217e-013i

>> % модуль (абсолютное значение) комплексного напряжения >> abs(U) ans = 220 >> % угол комплексного напряжения >> angle(U) ans = 1.9644e-015

2. В Simulink создайте модель устройства (рис. 6.5), реализующего закон Ома для цепи

переменного тока с активным сопротивлением R. Для этого:

создайте новое окно модели и скопируйте в него уже существующую модель DC;

замените источник питания постоянного тока на источник переменного тока AC.

добавьте в модель недостающие элементы, приведенные на рис. 6.5 и в таблице 6.3.

В таблице 6.3 указаны параметры блоков моделирования:

Рис. 6.5. Моделирование электрической цепи переменного тока AC

Таблица 6.3. Значения параметров блоков моделирования

Название и назначе-

ние блоков

Размещение в браузере Параметры

блоков

Источник перемен-

ного напряжения AC

Voltage Source

Simscape / Foundation Library /

Electrical Sensor

Peak amplitude: 220V

//значение по варианту

Frequency: 50 Hz

Сопротивление

Resistor

Simscape / Foundation Library /

Electrical Elements

Resistance: 100 Ohm

//значение по варианту

Блок решения Solver-

Configuration1 Simscape / Utilities По умолчанию

Амперметр Current

Sensor1

Simscape / Foundation Library /

Electrical Sensor По умолчанию

Вольтметр Voltage

Sensor1

Simscape / Foundation Library /

Electrical Sensor По умолчанию

Преобразователь PS-

Simulink Converter1,2 Simscape / Utilities По умолчанию

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 48: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

48

Электрическое зазем-

ление Electrical Refer-

ence1

Simscape / Foundation Library /

Electrical Elements По умолчанию

Регистратор Scope Simulink / Sinks По умолчанию

3. Установите для каждого блока соответствующие свойства. Окна параметров блоков

приведены на рис. 6.6 и 6.7.

Блок AC Voltage Source (рис. 6.6) является идеальным источником напряжения

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

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

определяется по формуле

U = Um * Sin ( W * T + PHI ),

где Um является амплитудным значением, W является угловой частотой в рад / с, и PHI –

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

табл. 6.1, частоту (frequency) равной 50 Гц, а сдвиг фазы примем за 0.

Рис. 6.6. Окно установки параметров блока AC Voltage Source

Сенсор напряжения (вольтметр) Voltage Sensor представляет собой идеальный датчик

напряжения, который преобразует измеренный напряжение между любыми точками элек-

трической цепи в физический сигнал, пропорциональный напряжению. Соединения + и - это

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

напряжения.

Виртуальный осциллограф Scope позволяет представить результаты моделирования в

виде временных диаграмм с оцифрованной масштабной сеткой. Осциллограф имеет свою па-

нель инструментов (рис. 6.7), которая содержит следующие кнопки:

печать (1),

параметры (2),

масштаб по осям (3),

автоматическое масштабирование по осям(4),

сохранение текущих установок (5),

режим «плавающего» осциллографа (6).

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 49: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

49

Рис. 6.7. Работа с виртуальным осциллографом

Для отображения двух осциллограмм в одном окне:

открыть двойным щелчком по блоку Scope его демонстрационное окно (рис. 6.7 а);

кнопкой Parameters (Параметры) окна Scope вызвать окно свойств (рис. 6.7 б), в кото-

ром на главной вкладке General установить число осей Number of axes осциллографа 2;

установить временной диапазон (Time range) отображения временных диаграмм =1,

щелкнуть по кнопке ОК или Apply.

Конверторы сигналов PS-Simulink Converter позволяют соединять Simulink-

осциллографы с выходами Simcsape-сенсоров тока и напряжения (амперметра и вольтметра).

4. Сохраните модель и запустите ее исполнение. Чтобы посмотреть осциллограммы ра-

боты Scope, достаточно двойным щелчком открыть окно установки параметров осцилло-

графа и результаты моделирования отобразятся в окне (рис. 6.8).

Рис. 6.8. Осциллограммы выходных синусоидальных сигналов: а) тока и б) напряжения

5. Скопируйте модель и осциллограммы в отчет.

Как видно по осциллограммам ток и напряжение носят гармонический характер. Ампли-

а)

б)

1 2 3 4 5 6

а) б)

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 50: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

50

тудные значения тока достигают 2,2 А, а напряжения – 220 В, что хорошо согласуется с

законом Ома. Следует заметить, что данный источник формирует сигнал, по форме несколь-

ко отличающийся от синусоидального.

6. Создайте модель (рис. 6.9), вычисляющую комплексные значения напряжения и пе-

ременного тока электрической цепи с активным сопротивлением R.

Рис. 6.9. Модель, вычисляющая комплексный ток и напряжение

В таблице 6.4 указаны параметры блоков моделирования:

Таблица 6.4. Значения параметров блоков моделирования

Название

блоков

Размещение в браузере Параметры

блоков

Constant,

Constant1,

Constant2

Simulink / Sources Constant=2*pi*50*1

Constant1=220 //по варианту Con-

stant2=100 //по варианту

Блок деления

Divide Simulink / Math Operations Number of inputs: */

Блок умножения

Product ,1 Simulink / Math Operations Number of inputs: 2

Блок Trigonome-

tric Function ,1 Simulink / Math Operations

Function cos

Function1 sin

Блок Real-Imag to

Complex Simulink / Math Operations По умолчанию

Блок Complex to

Magnitude-Angle Simulink / Math Operations По умолчанию

Регистраторы Dis-

play1-5 Simulink / Sinks По умолчанию

Как известно [7], комплексное значение напряжения вычисляется по формуле:

cos( ) sin( )U Um w t j Um w t ,

где w=2∙ ∙f – круговая частота,

a= Um∙cos(w∙t) – действительная часть,

b= Um∙sin(w∙t) – мнимая часть.

>> Umod=sqrt(a^2+b^2) % модуль

Umod =

220

>> tanFi=b/a % фаза

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 51: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

51

tanFi =

1.9644e-015

В подбиблиотеке Math Operations библиотеки Simulink имеются блоки для работы с ком-

плексными числами. Название блоков и их назначение приведены в табл. 6.5:

Таблица 6.5. Значения параметров Complex блоков

Название блоков Назначение

Real-Image to Complex вычисляет комплексное число по его действительной и мни-

мой части

Complex to Magnitude-

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

7. Сохраните модель и запустите ее исполнение. Результаты вычислений отобразятся на

дисплеях Display1-5 (рис. 6.9).

8. Сопоставьте полученные результаты с вычисленными значениями в режиме прямых вы-

числений.

9. Скопируйте модель и результаты проверки ее работоспособности в отчет и сделайте вы-

воды по проделанной работе.

Как показала проверка моделирования электрических цепей постоянного и переменного

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

Все они работоспособны и выполняют поставленные задачи.

Пример контрольного теста «Электрические цепи»

Укажите закона Ома для электрической цепи постоянного тока:

U=I+R

U=I*R

U=I/R

U=I*G

I=U*R

Укажите действующее значение:

U=Um/R

U=Um/2

U=Um/sqrt(2)

U=Um*sin(t)

Im=Um*R

Укажите комплексную переменную:

A=Am*sin(w*t)+i*cos(w*t)

A=Am*sin2(w*t)+i*cos

2(w*t)

A=Am*cos(w*t)+i*Am*sin(w*t)

A=Am*cos2(w*t)+i*Am*sin2(w*t)

A=Am*exp(-i*(w*t))

Укажите функцию MATLAB, вычисляющую модуль комплексного числа:

mod(U)

abs(U)

module(U)

|U|

sqrt(U)

Укажите функцию MATLAB, вычисляющую фазу комплексного числа:

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 52: применение системы Matlab + simulink в технике связи задания и методические указания к лабораторным работам

52

arg(U)

argument(U) angle(U) fi(U)

arg(a,b)

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»