Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

4360

.pdf
Скачиваний:
2
Добавлен:
08.01.2021
Размер:
961.26 Кб
Скачать

Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования

«Воронежский государственный лесотехнический университет имени Г.Ф. Морозова»

Цифровые системы управления

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

для студентов по направлению подготовки

15.03.04 – Автоматизация технологических процессов и производств

Воронеж 2018

2

УДК 681.51: 681.3

Стариков А. В. Цифровые системы управления [Электронный ресурс]: методические указания к лабораторным работам для студентов по направлению подготовки 15.03.04 – Автоматизация технологических процессов и производств / А.В. Стариков; М-во образования и науки РФ, ФГБОУ ВО «ВГЛТУ». – Воронеж, 2018. – 39 с.

Печатается по решению редакционно-издательского совета ВГЛТУ

Рецензент: заведующий кафедрой электротехники и автоматики ФГБОУ ВО «Воронежский государственный аграрный университет имени императора Петра I», доктор технических наук, профессор Афоничев Д.Н.

3

Введение

В настоящее время при реализации систем управления широко используются средства вычислительной техники, представленные управляющими ЭВМ, микропроцессорами, микроконтроллерами. Система управления, в составе регулятора которой используется компьютер (например, микро-ЭВМ, микропроцессор или микроконтроллер), выполняющий при этом ключевую роль в функционировании регулятора, называется цифровой системой управления ЦСУ

(англ. digital control system DCS).

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

управляющая ЭВМ, используемая в качестве регулятора;

каналы обмена информацией;

аналого-цифровые и цифро-аналоговые преобразователи (АЦП и ЦАП);

датчики и исполнительные механизмы (ИМ);

собственно физический или технический процесс в качестве объекта

управления (регулирования).

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

1.Обработка числовых массивов и матриц в системе Matlab.

2.Работа с комплексными числами и вычисление корней полиномов в системе Matlab.

3.Решение обыкновенных дифференциальных уравнений в системе

Matlab.

4.Решение разностных уравнений рекуррентным методом и методом z- преобразования в системе Matlab.

5.Квантование и восстановление сигналов управления. Моделирование

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

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

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

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

4

Лабораторная работа №1. Обработка числовых массивов и матриц в системе MATLAB (4 часа)

Цель работы: Знакомство с системой математического моделирования MATLAB на примере работы с числовыми массивами и матрицами.

1.1. Числовые массивы

Система MATLAB (сокращение от MATrix LABoratory – МАТричная ЛАБоратория) является интерактивной системой для вычисления инженерных и научных расчѐтов, ориентированной на работу с массивами данных1.

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

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

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

Для создания одномерного массива (вектора) необходимо указать его имя и задать в квадратных скобках его элементы, разделѐнные запятыми. Например, одномерный массив из трѐх элементов в окне команд системы MATLAB задается следующим образом:

>> a = [1,2,3]

После нажатия клавиши Enter на экран монитора будет выведено:

a =

1 2 3

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

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

5

>> a(3) ans =

3

Можно также использовать более сложные индексные выражения, определив предварительно значение для какой-либо переменной, например, с именем i:

>>i = 1

i =

1

>>a(i+2) ans =

3

Элементы числового массива имеют тип double (вещественный тип с двойной точности).

Чтобы изменить значение элемента массива, следует указать имя массива и индексное выражение, соответствующее данному элементу. Например, присвоить значение 10 второму элементу массива можно следующим образом:

>> a(2)=10 a =

1 10 3

Количество элементов одномерного массива можно получить с помощью функции length. Например:

>> length(a) ans =

3

Присвоив несуществующему элементу массива некоторое значение, тем самым увеличиваем количество элементов массива. Например:

>>a(4)=1

a =

110 3 1

>>length(a) ans =

>>a(8)=2

a =

1 10 3 1 0 0 0 2 >> length(a)

ans = 8

Для создания одномерного массива, заполненного 1, можно использовать функцию ones. Например:

>> ones(1,3) ans =

1 1 1

6

Для создания одномерного массива, заполненного 0, можно использовать функцию zeros. Например:

>> zeros(1,3) ans =

0 0 0

Ещѐ один способ создания одномерного массива основывается на применении операции «:», которая позволяет формировать элементы массива с заданным шагом. Например:

>> a=1:0.5:3 a =

1.0000 1.5000 2.0000 2.5000 3.0000

Если в конце команды указать символ «;», то элементы сформированного массива не будут отображаться на экране монитора. Например:

>>a=[1,2,3];

>>a=1:0.5:3;

Задача 1. Сформировать одномерный массив, содержащий десять произвольных чисел, указанными выше способами. После формирования массива изменить значения некоторых его элементов. Вывести обновлѐнное содержимое массива на экран монитора.

Двухмерные числовые массивы (матрицы). Элементы двухмерного мас-

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

Пример 1.

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

1

2

3

4

5

6

7

8

9

Пример 2.

>> a=[[1; 4; 7],[2; 5; 8],[3; 6; 9]] a =

1

2

3

4

5

6

7

8

9

Размер созданного массива можно получить с помощью функции size. Например:

>> size(a)

ans =

 

3

3

7

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

>> whos

Name Size Bytes Class Attributes

a3x3 72 double

b2x3 48 double

Операция транспонирования матрицы обозначается в системе MATLAB символом «’». Например:

>> a'

 

 

ans =

 

 

1

4

7

2

5

8

3

6

9

Задача 2. Создать два двухмерных массива с размерами 2 3 и 34 элемента. Получить информацию о созданных массивах.

Для формирования матриц специального вида в MATLAB ряд функций (таблица 1.1).

 

Таблица 1.1

 

Функции для формирования матриц

Функция

Описание

eye(m,n)

Единичная матрица размерности m×n (единицы в качестве элементов на

 

главной диагонали квадратной матрицы, все другие элементы нули)

zeros(m,n)

Нулевая матрица размерности m×n

ones(m,n)

Матрица, состоящая из одних единиц размерности m×n

rand(m,n)

Возвращает матрицу случайных чисел равномерно распределѐнных в

 

диапазоне от 0 до 1, размерность матрицы m×n

randn(m, n)

Возвращает матрицу размерности m×n, состоящую из случайных чисел,

 

имеющих гауссово распределение

tril(A),

Выделение нижней треугольной и верхней треугольной частей матрицы A

triu(A)

 

inv(A)

Нахождение обратной матрицы A

det(A)

Нахождение определителя (детерминанта) квадратной матрицы A

Многомерные числовые массивы. Многомерные массивы имеют размерность большую двух. Для создания многомерных массивов можно использовать функции ones и zeros. Например, трѐхмерный массив с размерами 234 элемента, заполненный единицами, может быть создан следующим образом:

>> ones(2,3,4) ans(:,:,1) =

1 1 1

1 1 1 ans(:,:,2) = 1 1 1 1 1 1

ans(:,:,3) =

8

1

1

1

1

1

1

ans(:,:,4) =

1

1

1

1

1

1

Задача 3. Создать трѐхмерный массив с размерами 432 элемента, заполненный нулями. Заменить нулевые элементы с одинаковыми значениями индексов на единицы.

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

C=A+B:

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

1

2

3

4

5

6

>> b=ones(2,3)

b =

 

 

1

1

1

1

1

1

>> c=a+b

 

c =

 

 

2

3

4

5

6

7

Вычитание двух матриц D=A-B:

>> d=a-b d =

0

1

2

3

4

5

Если размеры исходных матриц различаются, то система MATLAB отобразит на экране монитора сообщение об ошибке:

> c=a+b'

??? Error using ==> plus Matrix dimensions must agree.

В системе MATLAB реализованы операции умножения (*) и поэлементного умножения (.*), возведения в степень (^) и поэлементного возведения в степень (.^), деления (/) и поэлементного деления (./) двух матриц. Ниже показаны примеры выполнения данных операций.

Пример 1. c =

2

3

4

5

6

7

d =

03

14

25

9

>>c*d % умножение двух матриц ans =

11 38

20 74

>>c.*5 % поэлементное умножение матрицы C на число 5 ans =

10

15

20

25

30

35

>> c.*c % поэлементное умножение матрицы самой на себя ans =

4 9 16

25 36 49

Система MATLAB имеет ряд функций, предназначенных для обработки данных, заданных в матричной форме (таблица 1.2).

 

Таблица 1.2

 

Функции для работы с матрицами

Функция

Описание

 

size(A)

Возвращает вектор, элементами которого являются число строк и

 

 

число столбцов матрицы

 

sum(A)

Возвращает суммы всех элементов по столбцам

 

mean(A)

Возвращает среднее значение столбца матрицы

 

std(A)

Возвращает среднеквадратическое отклонение столбца матрицы

 

min(A),

Возвращает минимум и максимум, соответственно, по столбцу

 

max(A)

матрицы

 

sort(A)

Сортирует столбец матрицы по возрастанию

 

prod(A)

Вычисляет произведение всех элементов столбцов

 

1.2. Индивидуальные задания по лабораторной работе

1.Осуществить ввод с клавиатуры следующих векторов и матриц:

произвольного вектора-строки (v) размерности 2;

произвольного вектора-столбца (w) размерности 2;

произвольной матрицы (m) размерности 2×2.

2.Выполнить формирование следующих матриц специального вида:

матрицы с нулевыми элементами (m0) размерности 2×2;

матрицы с единичными элементами (m1) размерности 2×2;

матрицы с элементами, имеющими случайные значения (mr), размерности 2×2;

матрицы с единичными диагональными элементами (me) размерности 2×2.

3.Вычислить матрицу M по формуле, представленной в таблице 1.3.

4.Изучить функции обработки данных:

определить число строк и столбцов матрицы M;

определить максимальный элемент матрицы M;

10

определить минимальный элемент матрицы M;

суммировать элементы матрицы M;

перемножить элементы матрицы M.

 

 

 

 

Таблица 1.3

 

Варианты индивидуальных заданий

 

№ варианта

Задание

№ варианта

 

Задание

1

M=v*w+m+mr*me

11

 

M=m*w+mr*v’

2

M=m+mr*me

12

 

M=m*mr+w*v

3

M=(v/m)*(mr+me)

13

 

M=m+mr–100

4

M=w*v+mr*me

14

 

M=v’+w+mr*w

5

M=m*mr+me

15

 

M=m+m1’*me’

6

M=m.*mr+100

16

 

M=(v/m)*(mr+me)

7

M=v*w+mr–m

17

 

M=v*mr+v*m1

8

M=m+mr*me–10

18

 

M=m’+mr/100

9

M=m*w+mr*v'

19

 

M=10*v+w’*mr*m

10

M=m’+mr*me

20

 

M=m’+mr*me

1.3. Контрольные вопросы к лабораторной работе

1.Как осуществляется ввод вектора-строки?

2.Как осуществляется ввод вектора-столбца?

3.Как осуществляется ввод матрицы?

4.Для чего служит функции zeros, ones, rand, eye?

5.Как определяется число строк и столбцов матрицы?

6.Какие операции служат для определения минимального и максимального элемента матрицы?

7.Какая матрица называется единичной? Какая функция выполняет формирование единичной матрицы?

8.Что такое транспонирование матрицы? Как выполнить транспонирование матрицы в MATLAB?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]