Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
-6-05-~1.PDF
Скачиваний:
0
Добавлен:
28.12.2025
Размер:
6.59 Mб
Скачать

125

4.Антонов, Д. А. Теория устойчивости движения многоосных автомобилей / Д. А. Антонов. – М. : Машиностроение, 1978. – 216 с.

5.Проектирование полноприводных колесных машин: учебник для вузов: в 3 т. Т.1 / Б. А. Афанасьев [и др.]; под ред. А. А. Полунгяна. – М. : изд-во МГТУ им. Н. Э. Баумана 2008. – 496 с.

6.Умняшкин, В. А. Теория автомобиля: учеб. пособие / В. А. Умняшкин, Н. М. Филькин, Р. С. Музафаров. – Ижевск : изд-во ИжГТУ, 2006. –272 с .

7.Гришкевич, А. И. Автомобили: Теория: учебник для вузов / А. И. Гришкевич. – Мн. :

Выш. шк., 1986. – 208 с.

Лабораторное занятие № 2. Программное обеспечение для реализации математических моделей

Цель работы: знакомство с правилами работы в системе MATLAB, а также с основными средствами языка программирования MATLAB в командном режиме.

Общие сведения

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

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

Настройка рабочего стола MATLAB.

Запустить программу MATLAB. В результате открывается ее рабочий стол (Desktop), содержащий строку заголовка, ленту, на вкладках которой сгруппированы связанные команды, а также комбинированное окно.

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

Для этого выбираем команду Home Layout Default.

Врезультате в рабочей среде будут открыты три окна:

Command Window (командное окно);

Current Folder (текущий каталог);

Workspace (рабочее пространство).

Для открытия окна Command History (история команд) следует выбрать команду

Home Layout Command History Docked.

Основным окном является окно Command Window. Приглашением к вводу является

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

В окне Current Folder можно выбрать и открыть требуемый файл дважды кликнув по нему, либо перетащив в соответствующее окно.

Окно Workspace отображается текущий набор переменных, которые вводились в командном окне. Двойной щелчок по строке, соответствующей переменной, приводит к

126

отображению ее содержимого в отдельном окне редактора массивов Array Editor в виде электронной таблицы, значения ячеек которой можно редактировать.

Рисунок 2.1 – Общий вид окна MATLAB

Сеанс работы в MATLAB называют сессией. Входящие в сессию определения переменных и функций, которые расположены в рабочей области памяти, можно записать на диск в формате файла с расширением .mat с помощью команды Save Workspace и считать с диска с помощью команды Import Data. Эти команды можно также ввести в Command Window , набрав с клавиатуры соответственно save filename или load filename.

Окно Сommand History хранит все команды, набранные в командном окне, без результатов выполнения команд и сообщений системы.

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

Для сохранения созданной конфигурации окон вводим команду Home Layout Save

Layout.

Работа с математическими выражениями.

Основным понятием любой математической системы является математическое выра-

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

Математическое выражение записывается в командную строку, например: 22*413. После нажатия на клавишу Enter в командном окне появится результат вычисления в

виде, представленном на рисунке 2.2.

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

Рисунок 2.2

127

Если вводимое математическое выражение больше длины одной строки, то его можно перенести на следующую строку с помощью трех и более символов «точка».

В одной строке в командной строке MATLAB можно разместить несколько команд, разделив их с помощью точки с запятой.

Любые символы, стоящие после символа %, являются комментариями. Комментарии являются неисполняемыми операторами. Они делают программу более понятной.

Простейший объект системыMATLAB,представляющий количественныеданные– это число, которое можно считать константой. Оно может быть целым, вещественным (дробным с фиксированной и плавающей запятой), а также комплексным.

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

целая часть отделяется от дробной с помощью десятичной точки;

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

Введите в командном окне десятичную константу 0,0000123, используя вместо запятой точку для разделения целой и дробной частей, и нажмите клавишу Enter, в результате ее значение присваивается системной переменной ans, значение которой в формате по умолчанию выводится в командное окно в формате записи с плавающей запятой (рисунок 2.3).

Рисунок 2.3

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

тов вывода сохраняются в памятикомпьютерас относительнойпогрешностьюпорядка 2 1016. Требуемый формат вывода задается в окнеPreferences, которое вызывается с помощью

команды Home Preferences.

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

В отчет

Ввести в командной строке текстовый комментарий «Работа выпол-

нена ФИО» (указать свою фамилию, имя и отчество).

 

Ввести в командной строке выражение, равное 1/(N + 50) (N – номер

варианта по указанию преподавателя). Получить результат вычисления выражения, задав последовательно следующие форматы вывода:short, shorte, long, longe.

Самостоятельно рассмотреть другие форматы вывода, используе-

мые в MATLAB, и выполнить предыдущее задание для рассмотренных форматов.

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

Работа с комплексными числами.

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

Z = X+i·Y,

128

где Х – вещественная часть комплексного числа Z; Y – мнимая часть комплексного числа Z; i

– мнимая единица, для которой справедливо следующее соотношение:

i = 1 .

Комплексное число Z можно представить на комплексной плоскости в виде вектора, длина которого равна Z и называется модулем, а угол, который он составляет с действительной осью +1, равен и называется аргументом (рисунок 2.4).

Рисунок 2.4

При работе с комплексными числами Z (в MATLAB будем обозначать Z без подчеркивания) используются следующие функции:

real(Z) и imag(Z) возвращают соответственно действительную (Х) и мнимую части

(Y);

abs(Z) и angle(Z) возвращают соответственно модуль и фазу комплексного числа.

Ввести в командном окне комплексное число

В отчет

Z = N + i·(N + 5). Вычислить средствами MATLAB действительную и мни-

 

 

мую части комплексного числа Z, а также его модуль и фазу.

Включить в отчет по лабораторной работе содержимое командного

окна с соответствующими комментариями.

Работа с переменными в Matlab.

Переменные – это объекты, имеющие имена, предназначенные для хранения данных в память ПК. В зависимости от этих данных переменные могут быть числовыми или символьными, векторными или матричными.

Для присвоения значения переменным используется операция присваивания, которая имеет следующий формат: <Имя переменной>=<выражение>.

Имя переменной может содержать сколько угодно символов, но запоминается и идентифицируется только 31 начальный символ. Имя должно начинаться с буквы, может содержать латинские буквы (с учетом регистра), цифры и символ подчеркивания «_» и не должно совпадать с именами функций, системных процедур и переменных MATLAB.

Типы переменных определяются выражением, значение которого присваивается переменной. Выражение справа от знака присваивания может быть просто числом, вектором, матрицей, арифметическим выражением, строкой символов в апострофах или символьным выражением. Если выражение не заканчивается символом «;», то после нажатия на клавишу Enter в командном окне появится результат вычисления в виде: <Имя переменной>=<результат>.

Введите в командном окне строку х = 2*3 и нажмите клавишу Enter, в результате значение переменной х выведется в командном окне (рисунок 2.5). Введите в командном окне строку y = х*5, а в конце поставьте точку с запятой. В этом случае при нажатии на клавишу Enter значение переменной y не выведется в командном окне (см. рисунок 2.5). Введите в командном окне строку z = y+x и нажмите клавишу Enter, в результате значение переменной z выведется в командном окне (см. рисунок 2.5).

129

Рисунок 2.5

Ввод данных в MATLAB может осуществляться как с использованием оператора присваивания, так и с использованием функции ввода данных с клавиатуры input: <Имя перемен-

ной>=input ('Запроc').

Эта функция присваивает значение, введенное с клавиатуры, переменной, имя которой указано слева от знака «=». Причем с клавиатуры может быть введено как числовое значение, так и числовое выражение, содержащее определенные ранее переменные.

Пример использования функции input приведен на рисунке 2.6.

Рисунок 2.6

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

Таблица 2.1

Имя

Значение

i (j)

Мнимая единица (корень квадратный из 1)

pi

Число = 3,1415926

eps

Погрешность операций над числами с плавающей точкой (252)

realmin

Наименьшее число с плавающей точкой

realmax

Наибольшее число с плавающей точкой

inf

Значение машинной бесконечности

NaN

Указание неопределенного результата (например, 0/0, /)

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

В отчет

Определить наименьшее и наибольшее числа, с которыми может рабо-

тать MATLAB. Включить полученные значения в отчет по лабораторной ра-

 

 

боте.

Включить в отчет по лабораторной работе содержимое командного

окна с соответствующими комментариями.

130

Редактирование ранее выполненных команд.

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

Однако можно выделить введенную ранее команду и либо перетащить ее в командную строку, либо нажать правую клавишу мыши и, выбрав из контекстного меню команду Copy, скопировать ее в буфер обмена. Затем перевести курсор в командную строку и с помощью команды Paste в контекстном меню скопировать в нее содержимое буфера обмена. Далее при необходимости отредактировать команду и нажать клавишу Enter для ее выполнения.

В MATLAB все введенные команды загружаются в стек: клавиша позволяет после-

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

Кроме того, при необходимости отредактировать в MATLAB одну или несколько введенных ранее команд, в том числе во время других сессий, их можно выделить в окне Command History и переместить в командное окно. Затем отредактировать нужные строки, не нажимая клавиши Enter. При этом если нужно добавить новые строки, необходимо нажать комбинацию клавиш Ctrl + Enter. Для выполнения всей измененной группы команд нажимаем клавишу Enter.

Однако редактировать несколько введенных ранее команд удобнее в окне Editor. Для этого необходимо выделить их с помощью клавиш Shift и в окне Command History и, нажав правую клавишу мыши, выбрать в контекстном меню команду Create Script. В результате откроется окно редактирования Editor, в котором можно отредактировать программный код, а затем выделить его мышью, переместить в командное окно и нажать клавишу Enter

(рис. 2.7).

 

Рисунок 2.7

В отчет

Найти в окне Command History введенные ранее строки (рис. 2.7) и

перенести их окно Editor. Добавить в конце первой строки окна Editor сим-

 

 

вол «;», а во второй строке изменить множитель 5 на 50. Вставить три строки

 

из окна Editor в окно команд и нажать клавишу Enter.

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

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

Сохранение и восстановление рабочей среды.

Сохраните значения всех переменных в файле f1.mat, вызвав команду HOME Save Workspace. Укажите в появившемся окне путь доступа и имя файла. Расширение файла .mat будет присвоено ему по умолчанию. Закончите сеанс работы в Matlab, закрыв его окно.

131

Начните следующий сеанс работы в Matlab и с помощью команды HOME Import Date восстановите значения переменных, использующихся в предыдущем сеансе. Сохранение и восстановление переменных рабочей среды можно выполнить и в командном окне с помощью команд save и load соответственно.

Вычисление математических выражений.

Оператор представляет собой специальное обозначение для определенной операции над данными (операндами). Полный список операторов MATLAB выводится командой helpops.

Функции – это объекты с уникальными именами, которые выполняют определенные преобразования своих аргументов и при этом обязательно возвращают результаты на место вызова. Функции бывают встроенными и внешними. В данной лабораторной работе рассмотрим встроенные функции.

В таблице 2.2 приведен список арифметических операторов MATLAB и соответствующих им функций.

Таблица 2.2

Знак операции

Функция

Название

+

Plus

Сложение

Minus

Вычитание

*

Mtimes

Матричное умножение

.*

Times

Поэлементное умножение

/

Mrdivide

Матричное деление слева направо

./

Rdivide

Поэлементное деление слева направо

\

Mlrdivide

Матричное деление справа налево

.\

Ldivide

Поэлементное деление справа налево

^

Mpower

Возведение матрицы в степень

.^

Power

Поэлементное возведение массива в степень

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

В отчет

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

 

8,8077

 

 

 

N

 

 

 

 

 

 

 

 

 

 

 

 

 

+4,9

*

 

 

 

20 – 28,2 : (13,333*0,3

+0,0001)

*2,004

32

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

где N – номер варианта.

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

Операторы и функции отношения.

В таблице 2.3 приведен список операторов и функций отношения, используемых в MATLAB. Данные операторы выполняют поэлементное сравнение векторов или матриц одинакового размера, и логическое выражение принимает значение1 (True), если элементы идентичны, и значение 0 (False) в противном случае. При этом операторы <, <=, > и >= при комплексных операндах используются для сравнения только действительных частей операндов, а мнимые части операндов отбрасываются.

Таблица 2.3

 

 

Оператор

Функция

Название

= =

Eq

Равно

~ =

Ne

He равно

<

Lt

Меньше чем

Окончание таблицы 2.3

 

132

 

 

 

>

Gt

 

Больше чем

<=

Le

 

Меньше или равно

>=

Ge

 

Больше или равно

В отчет

Включить в отчет по лабораторной работе примеры, приведенные на

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

 

 

любых своих вещественных и комплексных операндов.

Рисунок 2.8

Логические операторы и функции.

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

Таблица 2.4

Оператор

Функция

Название операции

&

and

Логическое «И» (AND)

|

or

Логическое «ИЛИ» (OR)

~

not

Логическое «НЕ» (NOT)

На рисунках 2.9, 2.10 приведены примеры применения логической операции «И». Если оба операнда операции «И» истинные (не равны 0), то результат этой операции равен 1 («истина»), во всех остальных случаях результат равен 0 («ложь»).

Рисунок 2.9

Рисунок 2.10

Операция «ИЛИ» возвращает 0 только тогда, когда оба операнда равны нулю. Операция «НЕ» инвертирует «ложь» на «истину».

В отчет

Проверить работу всех логических операторов из таблицы 2.4.

Включить в отчет по лабораторной работе полученные результаты.

 

Стандартные функции MATLAB.

В таблице 2.5 приведены некоторые стандартные функции вещественного аргумента

MATLAB.

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

Таблица 2.5

133

 

 

 

 

 

 

 

 

 

Функция

 

Название

 

 

 

a^x

 

Степенная функция

 

 

 

x^a

 

Показательная функция

 

 

 

sqrt(x)

 

Квадратный корень

 

 

 

exp(x)

 

Экспонента

 

 

 

log(x)

 

Натуральный логарифм

 

 

 

log10(x)

 

Десятичный логарифм

 

 

 

abs(x)

 

Модуль

 

 

 

fix(x)

 

Отбрасывание дробной части числа

 

 

 

round(x)

 

Обычное округление

 

 

 

mod(x,y)

 

Остаток от деления x на y с учетом знака

 

 

 

sign(x)

 

Знак числа

 

 

 

factor(x)

 

Разложение числа x на простые множители

 

 

 

sin(x)

 

Синус

 

 

 

sind(x)

 

Синус (в градусах)

 

 

 

asin(x)

 

Арксинус

 

 

 

cos(x)

 

Косинус

 

 

 

acos(x)

 

Арккосинус

 

 

 

tan(x)

 

Тангенс

 

 

 

atan(x)

 

Арктангенс

 

 

В отчет

 

Даны x = 1,5; y = 2; z = 3. Вычислить a, b из таблицы 2.6 для варианта,

указанного преподавателем.

 

 

 

 

 

 

 

 

 

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

 

 

держимое командного окна для своего варианта.

 

 

Таблица 2.6 – Варианты заданий

 

 

 

 

Выражение

 

Переменные

 

 

 

 

 

 

 

1

 

2

 

3

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

6

 

 

 

 

 

 

 

 

 

 

 

 

 

7

 

 

 

 

 

 

 

 

 

 

 

 

 

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