Similar presentations:
Подготовка к выполнению курсовой работы
1. Занятие №1.
Обучение для выполнения НИР 5 курса,подготовка к выполнению курсовой работы
2. План занятия:
-В чем будет заключаться курсовая работа 6 курса?
В чем будет заключаться НИР 5 курса?
Для чего нужен Matlab?
Что будет в рамках обучения по курсу НИР?
Знакомство с интерфейсом Matlab.
Импорт данных в Matlab.
Работа с матрицами на примере обработки текстового файла в
пакете Matlab.
3. В чем будет заключаться курсовая работа?
Пример №1:1.1 Сделать эскиз конструкции, выданной в НИО 03-30.
1.2 Сделать расчет собственных частот и форм колебаний КЭ-модели балочной
модели в программном пакете Nastran/Patran или Ansys.
1.3 Составить схему проведения испытания, обосновать схему расположения
датчиков.
1.4 Провести экспериментальное исследование собственных частот и форм
колебаний динамически эквивалентной модели.
1.5 Провести верификацию КЭ-модели.
2.1 Обработку экспериментальных данных провести в программном пакете Матлаб.
-Построение АЧХ, определение резонансных частот.
-Построение МАС-матрицы, а также коэффициентов СОМАС для различных точек
конструкции для оценки корреляции результатов эксперимента с результатами
расчета.
4.
Пример №2:1.1 Сделать динамически подобную балочную модель крылатой ракеты из
дипломной работы студента.
-Определить величину массовых эквивалентов и составить схему их расположения.
1.2 Сделать расчет собственных частот и форм колебаний КЭ-модели балочной
модели в программном пакете Nastran/Patran или Ansys.
1.3 Составить схему проведения испытания, обосновать схему расположения
датчиков.
1.4 Провести экспериментальное исследование собственных частот и форм
колебаний динамически эквивалентной модели.
1.5 Провести верификацию КЭ-модели.
2.1 Обработку экспериментальных данных провести в программном пакете Матлаб.
-Построение АЧХ, определение резонансных частот, форм колебаний.
-Сделать алгоритм определения резонансной частоты методом полиномиальных
рядов.
5. В чем будет заключаться задание НИР?
Пример задания НИР:1.Составить и проанализировать динамические уравнения движения системы,
2.Решая систему уравнений численно проанализировать свободные колебания
системы. Найти логарифмический декремент колебаний методом сброса
3.Приложить к первому грузу силу, изменяющиеся по гармоническому закону.
Решая систему уравнений численно, найти отклики, как функции частоты.
4.Найти рассеяние энергии за один цикл колебаний. Сравнивая его с
рассеянием энергии при вязком демпфировании, определить эквивалентное
вязкое демпфирование.
6. Matlab – язык для работы с матричными объектами
• Основной объект Matlab – матрица• Число – это матрица размера (1x1)
• Использование матриц
• существенно облегчает программирование
• делает запись формул краткой и наглядной
6
7. Для чего нужен MatLab?
Некоторые из областей:• Матрицы и линейная алгебра — алгебра матриц, линейные уравнения, собственные
значения и вектора, сингулярности, факторизация матриц и другие.
• Многочлены и интерполяция — корни многочленов, операции над многочленами и их
дифференцирование, интерполяция и экстраполяция кривых и другие.
• Математическая статистика и анализ данных — статистические функции, статистическая
регрессия, цифровая фильтрация, быстрое преобразование Фурье и другие.
• Обработка данных — набор специальных функций, включая построение графиков,
оптимизацию, поиск нулей, численное интегрирование (в квадратурах) и другие.
• Дифференциальные уравнения — решение дифференциальных и дифференциальноалгебраических уравнений, дифференциальных уравнений с запаздыванием, уравнений с
ограничениями, уравнений в частных производных и другие.
• Разреженные матрицы — специальный класс данных пакета MATLAB, использующийся в
специализированных приложениях.
• Целочисленная арифметика — выполнение операций целочисленной арифметики в среде
MATLAB.
8. Некоторые пакеты, встроенные в Matlab
Matlab Web Server
Bioinformatics Toolbox
Communications Toolbox
Control System Toolbox
Database Toolbox
Distributed Computing Toolbox
Financial Toolbox
Fuzzy Logic Toolbox
Genetic Algorithm and Direct Search
Toolbox
Image Processing Toolbox
Neural Networks Toolbox
Partial Differential Equation Toolbox
Signal Processing Toolbox
SimBiology
Spline Toolbox
Statistics Toolbox
Symbolic Toolbox
Virtual Reality Toolbox
Wavelet Toolbox
Simulink
Aerospace Blockset
Communications Blockset
Video and Image Processing
Real-Time Workshop
Matlab Builder for .NET
Matlab Compiler
Интеграция в MS Office
8
9. В Matlab можно выделить пять частей:
1.2.
3.
4.
5.
Язык Matlab
Среда Matlab
Управляемая графика
Библиотека математических функций
Программный интерфейс
9
10. Язык Matlab
• Си- и Паскаль-подобныйобъектно-ориентированный
• Огромный набор встроенных
функций
• Расширяемый пользователем
10
11. Среда Matlab
• Интерактивная работа• Управление переменными в
рабочем пространстве
• Редактор
• Отладчик
11
12. Управляемая графика
• Команды высокого уровня дляработы с 2D- и 3D-графикой
• Анимация
• Команды низкого уровня для
работы с графикой
12
13. Библиотека математических функций
• Обширная коллекция вычислительных алгоритмов отэлементарных функций (sin, cos и т. п.) до более сложных
обращение матриц
вычисление собственных значений
минимизация функций
дифференцирование
интегрирование
и пр.
13
14. Знакомство с интерфейсом
15. Командная строка
• Простейший способ взаимодействия сMatlab – работа в командной строке (в
режиме калькулятора)
• строка начинается с приглашения: символа
>>
• Перемещение по стеку ранее
введённых команд – клавиши ↑ и ↓
• Для удобства размещения данных в КС
можно разбивать вводимое
выражение знаком «…»
• Очистить командное окно можно
комадной clc
15
16. Редактор
Используется для создания и редактирования программ в Matlab% - комментарий;
%% - разделение на секции
Запуск секции
Запуск всего кода
17. Command History
• Работа с КС упрощается благодаряокну Command History (меню
Desktop)
• Здесь хранится сессионная запись
всех введённых команд
• Их можно скопировать, выполнить и
т. п. (см. контекстное меню)
17
18. Рабочее пространство (Workspace)
• Все переменные хранятся в РП• порой это отнимает много места
18
19. Рабочий каталог
• Все файлы (данные, функции и пр.), созданные пользователемсохраняются в текущем каталоге (Current Directory / Current Folder)
• Изменить текущий каталог можно
• командой cd <путь>
• в строке ввода Current Directory на панели инструментов:
• в окне Current Directory
19
20. Команда save
• save – сохраняет все переменные в файл matlab.mat• save filename – сохраняет все переменные в файл
filename
• save filename x y z – сохраняет переменные x, y, z в
файл filename (можно по маске: a*)
• save filename x y z -ASCII – сохраняет
переменные x, y, z в файл filename в текстовом виде
• save('filename’, ‘a',‘b','-ASCII') –
процедурная форма вызова команды
• параметры – в виде строк (в одинарных апострофах)
• Подробнее про эту и любую другую команду Matlab
• help <имя команды>
• или F1
20
21. Команда load
• Служит для загрузки ранее сохранённых данных• load – загружает все переменные из файла matlab.mat
• load filename – загружает все переменные из файла
filename
• load filename x y z – загружает переменные x, y, z из
файла filename
• load -ASCII filename x y z– загружает переменные
x, y, z из текстового файла filename load('filename’,
‘a',‘b','-ASCII') – процедурная форма вызова
команды
21
22. Команда clear
• Служит для удаления переменных из РП• clear – удаляет все переменные
• clear all – удаляет всё, включая классы,
функции, скомпилированные файлы и пр.
• clear x y z – удаляет переменные x, y и z.
Команда clc
Служит для удаления данных из Command Window
22
23. Основы работы в Matlab: Числа
• Основной базовый тип для матриц• Хранятся в формате long (double)
• стандарт плавающей точки IEEE
• Интервал приблизительно от 10E-308 до 10E+308
• Комплексные числа строятся с применением
суффиксов i или j (мнимая единица):
2.4e7+3.005i
23
24. Другие типы
• Строки• Массивы структур (записей)
• Массивы ячеек
• позволяют объединять в массиве элементы разной природы
• Объекты
24
25. Переменные и выражения
• Переменные определяются пользователем при помощиоператора присваивания: x=5
• В левой части – имя переменной
• заглавные и строчные буквы различаются
• В правой части оператора присваивания может стоять
выражение: y=(2-x)/(x+3)
• Если выражение встречается вне оператора присваивания,
то его значение вычисляется и помещается в системную
переменную ans (от answer)
• Переменную ans можно использовать для задания новых
выражений: z=ans*3
• Если оператор присваивания завершить символом «;», то
результат на экране не дублируется; в противном случае –
выводится на экран:
25
26.
2627. Операторы
• При составлении выражений могут быть использованыоператоры:
+
*
/
^
сложение
вычитание
умножение
деление
возведение в степень
• Приоритет операций обычный. Изменяется при помощи круглых
скобок
27
28. Операции отношения
<меньше
<=
меньше или равно
>
больше
>=
больше или равно
==
равно
~=
не равно
Приоритет ниже, чем у
арифметических операций
28
29. Логические операции
&и
|
или
~
не
0 – ложь (false)
1 – истина (true)
Приоритет ниже, чем у
арифметических операций и
операций отношения
29
30. ПРИМЕР! ПРИМЕР! ПРИМЕР! ПРИМЕР!
Взять текстовый файл с тремя переменными (время, показаниядвух датчиков) и
-Определить длительность записи по времени;
-Определить максимальные показания датчиков;
-Построить график амплитуды от времени;
-Редуцировать;
31. Пример обработки данных в Маtlab:
Импорт данных:1 способ:
1.1 Перетащить текстовый файл в
окно Workspace;
1.2 Нажать кнопку «import»
32. Пример обработки данных в Маtlab:
Импорт данных:2 способ: Прописать путь к файлу при помощи load
2.1 Ввести код
2.2 Нажать Run или Run
Section
33. Пример обработки данных в Маtlab:
Импорт данных:3 способ: Выбор вручную при помощи функции uigetfile
3.1 Ввести код
3.2 Run
3.2 В открывшемся меню
выбрать нужный файл
34. Пример обработки данных в Маtlab:
Файл DATA состоял из 3 колонок: время ипоказания двух датчиков.
Присвоим каждой колонке свое название.
Для этого все строки первого столбца
переместим в новую переменную Time.
Выбрать все строки можно при помощи
значка «:».
Аналогичные операции проделаем для 2 и 3
столбца.
Знаком «%» напишем комментарии.
35. Пример обработки данных в Маtlab:
Узнать длину матрицы можно при помощи функции length.Узнаем размер матрицы Time. Применим к ней функцию length и запустим анализ при помощи кнопки Run Section
Все значения новых переменных
сохраняются в Workspace. Так как
мы не поставили “;” в конце
строки, то ответ появился ещё и в
командной строке (Command
Window).
Если нам нужно узнать количество столбцов, а не строк, то это нужно указать. Рассмотрим на примере размерности DATA:
Как видно, в матрице DATA 146221 строка и 3 столбца.
36. Пример обработки данных в Маtlab:
Если Ваши руки растут не из того места, и Вы делаете множество ошибок и опечаток, то это не беда. Matlab поможетисправить Ваши недостатки и будем давать подсказки. Например:
37. Пример обработки данных в Маtlab:
Узнать длину матрицы можно при помощи функции length.Узнаем размер матрицы Time. Применим к ней функцию length и запустим анализ при помощи кнопки Run Section
Все значения новых переменных
сохраняются в Workspace. Так как
мы не поставили “;” в конце
строки, то ответ появился ещё и в
командной строке (Command
Window).
Если нам нужно узнать количество столбцов, а не строк, то это нужно указать. Рассмотрим на примере размерности DATA:
Как видно, в матрице DATA 146221 строка и 3 столбца.
38. Пример обработки данных в Маtlab:
Чтобы узнать длительность записи нам нужно вычесть из последнего показания времени первое. Выбратьпоследнее значение можно написав “end” либо выбрав индекс последней записи. Вводим код, нажимаем Run
Section. У первого значения, очевидно, индекс «1».
ЛИБО
39. Пример обработки данных в Маtlab:
Определить максимальное значение показаний датчика можно при помощи функции max, аналогично длянахождения минимального значения потребуется функция min:
Но если нам нужно понять в какой момент времени у нас было достигнуто максимальное значение
амплитуды датчика, то нам необходимо узнать его индекс. Это будет выглядеть следующим образом
при помощи квадратных скобок:
Теперь мы можем узнать в
какой момент времени было
достигнуто максимальное
значение на каждом из
датчиков:
Таким образом, максимум на первом датчике был достигнут на 1.7787
секунде и составил 1,4036g, а на втором на 1,9594 секунде и составил
3,2878g.
40. Пример обработки данных в Маtlab:
Построим график.Для этого создадим новое окно при помощи функции figure и построим график при помощи функции plot
Если мы хотим наложить показания второго датчика поверх первого, то нужно дописать hold on перед новым plot,
иначе новый график сотрет предыдущий. Либо использовать двойную запись.
либо
!!! Оформление графиков можно изучить, введя в help функцию plot
41. Пример обработки данных в Маtlab:
Какой кошмар! Начальное значение графика от времени не равно нулю. Исправим это. Для этого вычтем у каждогоэлемента матрицы времени начальное значение. После этого последуем правилам хорошего тона, наведем красоту,
подпишем оси и добавим необходимые подписи. Запускаем Run Section и…
…наблюдаем график в более удобоваримом виде.
Полученный график сохраним, например, в jpeg. На графике
выбираем: File – save as – тип файла
42. Пример обработки данных в Маtlab:
Займемся редуцированием.В наших матрицах свыше 140 тысяч значений. Это много. Давайте уменьшим частоту дискретизации в 100 раз.
После нажатия Run Section в Workspace мы увидим новообразовавшиеся матрицы Tr, Dat1r,
Dat2r, в которые вошли каждый 100ый элемент исходных матриц.
Это прекрасно! Теперь перестроим графики, чтобы сравнить исходные показания с
получившимися в результате редуцирования.
43. Пример обработки данных в Маtlab:
Перерисуем графики в новом окне figure(2). Разобьем его на две составляющие: верхняя subplot(2,1,1) и нижняяsubplot(2,1,2). В первый продублируем нарисованное ранее, во втором разместим редуцированные показания. Также
добавим границы axis, чтобы оба графика были в одном масштабе.
Редуцированный график получился «почище», исходного. По результату
мы, можно сказать, осуществили фильтрацию исходного сигнала.
И это прекрасно!
44. Перечень элементарных математических функций:
ТРИГОНОМЕТРИЯКомплексные величины
ЛОГАРИФМЫ и ЭКСПОНЕНТЫ
45. Примеры математических функций:
Угол для комплексной величиныСортировка
Суммирование
Задание случайных величин
Амплитуда
Комплексной
величины
«Переменный» максимум
Модуль
46. Задание для самостоятельной проработки:
1. Определите показания второго датчика в момент времени, когда первый достигаетсвоего максимального по амплитуде значение.
2. Поменяйте на графике цвет показаний второго датчика с зеленого на красный.
3. Центрирование относительно нуля.
Найдите среднее арифметическое значение для показаний каждого из датчиков. Вычтите
из показаний датчиков его среднее значение.
Подсказка: используйте одну из функций, приведенных на предыдущем слайде.
4. В семинаре присутствует ошибка при определении максимальной перегрузки,
показанной датчиком. В чем она заключается и как её устранить?
Подсказка: используйте одну из функций, приведенных на предыдущем слайде.
5. Отфильтруйте сигналы с датчиков при помощи осреднения:
Показания датчика для каждого момент времени = сумма показаний в предыдущие 5
моментов (замеров) и 5 последующих / 11.
(для первых 5 показаний и последних пяти показаний такую функцию можно не
применять).
Подсказка: может потребоваться цикл for
Вывести результаты на график.
47. % Импорт файла DATA = load('D:\Р.К. Хамидуллин\МАТЛАБ для студентов\ЗК+4_10_1.txt'); % В файле несколько колонок, пропишем
название каждой из нихTime = DATA(:, 1); %т.е. в Time запишем все строки (":") первого столбца
Dat1 = DATA(:, 2); %т.е. в Dat1 запишем все строки (":") второго столбца
Dat2 = DATA(:, 3); %т.е. в Dat2 запишем все строки (":") третьего столбца
% Размер матрицы
Razmer = length(Time);
% Длительность записи
Dlit = Time(end)-Time(1);
% Поиск максимального значения
[D1, ind1]=max(Dat1); % ищем максимум показаний первого датчика
[D2, ind2]=max(Dat2); % ищем максимум показаний второго датчика
% Построим график
T=Time-Time(1);
figure(1) % создание нового окна, в котором будет нарисован график
plot(T, Dat1, 'b', T, Dat2, 'g'); hold on % графики показаний датчиков
plot(T(ind1), Dat1(ind1), 'or', T(ind2), Dat2(ind2), 'or'); % точки, показывающие максимальное значение
title('Отклик конструкции'); % заголовок
ylabel('Амплитуда, g'); % подпись оси абцисс
xlabel('Время, c'); % подпись оси ординат
legend('Первый датчик','Второй датчик', 'максимум 1го датчика', 'максимум 2го датчика'); % Легенды!
%% Редуцирование матриц
% Параметр редуцирования
n=100;
i=1:n:Razmer; % выбираем каждый n-ный элемент от первого до последнего элемента
%Редуцированные матрицы
Tr=T(i); % для времени
Dat1r=Dat1(i); % для первого датчика
Dat2r=Dat2(i); % для второго датчика
%% сравним графики исходных показаний и редуцированных
figure(2) % новое окно для нового графика
subplot(2,1,1)
plot(T, Dat1, 'b', T, Dat2, 'g'); % график показаний датчиков исходный
title('Отклик конструкции исходный'); % заголовок
ylabel('Амплитуда, g'); % подпись оси абцисс
xlabel('Время, c'); % подпись оси ординат
axis([0,2,-4,4]) % границы графика от 0c до 2с и от -4 до 4g
subplot(2,1,2)
plot(Tr, Dat1r, 'b', Tr, Dat2r, 'g'); % график показаний датчиков исходный
title('Отклик конструкции редуцированный'); % заголовок
ylabel('Амплитуда, g'); % подпись оси абцисс
xlabel('Время, c'); % подпись оси ординат
axis([0,2,-4,4]) % границы графика от 0c до 2с и от -4 до 4g