- •ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
- •Оглавление
- •1. ТЕОРЕТИЧЕСКИЙ РАЗДЕЛ
- •РАЗДЕЛ 1 ОБЩИЕ ВОПРОСЫ ТЕОРИИ МОДЕЛИРОВАНИЯ
- •Тема 1.3. Использование при моделировании типовых модулей динамических систем
- •Тема 1.4 Анализ расчетных схем, их приведение и упрощение
- •РАЗДЕЛ 2 ЧИСЛЕННЫЕ МЕТОДЫ РЕАЛИЗАЦИИ МАТЕМАТИЧЕСКИХ МОДЕЛЕЙ
- •Тема 2.3 Численное решение систем линейных и нелинейных уравнений
- •Тема 2.5 Точность и качество численного решения
- •РАЗДЕЛ 3. ФУНКЦИОНАЛЬНОЕ МОДЕЛИРОВАНИЕ ТРАНСПОРТНЫХ СРЕДСТВ
- •Тема 3.2 Моделирование силовых установок транспортных средств
- •Тема 3.3 Моделирование процесса трогания и разгона мобильных машин
- •Тема 3.4 Моделирование процесса торможения мобильных машин
- •Тема 3.5 Моделирование плавности хода транспортных средств
- •2. ПРАКТИЧЕСКИЙ РАЗДЕЛ
- •Лабораторное занятие № 1. Представление результатов моделирования в виде графических зависимостей
- •Лабораторное занятие № 2. Программное обеспечение для реализации математических моделей
- •Лабораторное занятие № 3. Моделирование законов управления исполнительными устройствами мобильных машин
- •Лабораторное занятие № 6. Численное решение систем линейных и нелинейных уравнений средствами MATLAB
- •Лабораторное занятие № 9. Моделирование трогания и разгона транспортного средства с электрическим приводом
- •Лабораторное занятие № 10. Моделирование трогания и разгона транспортного средства с двигателем внутреннего сгорания
- •Лабораторное занятие № 11. Моделирование торможения двухосной машины
- •Лабораторное занятие № 12. Моделирование торможения сочлененного трехосного транспортного средства
- •Лабораторное занятие № 13. Моделирование систем подрессоривания с линейными характеристиками
- •Лабораторное занятие № 15. Моделирование пневматических систем
- •Лабораторное занятие № 16. Моделирование гидравлических систем
- •Список рекомендуемой литературы
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*4−13. После нажатия на клавишу Enter в командном окне появится результат вычисления в
виде, представленном на рисунке 2.2.
Результат выводится под именем системной переменной ans, последнее значение которой можно использовать в других выражениях путем указания ее имени. Ниже ответа расположена командная строка с мигающим курсором, позволяющая вводить новые выражения и находить их значения.
Рисунок 2.2
127
Если вводимое математическое выражение больше длины одной строки, то его можно перенести на следующую строку с помощью трех и более символов «точка».
В одной строке в командной строке MATLAB можно разместить несколько команд, разделив их с помощью точки с запятой.
Любые символы, стоящие после символа %, являются комментариями. Комментарии являются неисполняемыми операторами. Они делают программу более понятной.
Простейший объект системыMATLAB,представляющий количественныеданные– это число, которое можно считать константой. Оно может быть целым, вещественным (дробным с фиксированной и плавающей запятой), а также комплексным.
При вводе вещественных чисел используются общие правила для языков программирования высокого уровня:
–целая часть отделяется от дробной с помощью десятичной точки;
–в формате записи с плавающей запятой мантисса числа отделяется от его порядка символом е без пробелов. При этом для положительных порядков знак не указывается, а для отрицательных указывается символ «–».
Введите в командном окне десятичную константу 0,0000123, используя вместо запятой точку для разделения целой и дробной частей, и нажмите клавишу Enter, в результате ее значение присваивается системной переменной ans, значение которой в формате по умолчанию выводится в командное окно в формате записи с плавающей запятой (рисунок 2.3).
Рисунок 2.3
Введенные значения и результаты всех вычислений независимо от выбранных форма-
тов вывода сохраняются в памятикомпьютерас относительнойпогрешностьюпорядка 2 10−16. Требуемый формат вывода задается в окне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 |
Погрешность операций над числами с плавающей точкой (2−52) |
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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
