Кинематика
РАБОТЫ
Формулы и определения кинематических характеристик
передача вращений
Уравнения движения точки графики в matlab
Кинематический анализ механизма
сложное движение точки пространственная траектория
Основные понятия кинематики
справочные материалы
РГР 2
Передача вращений
LAB 3
Движение точки на плоскости (теория)
LAB 3

Движение точки на плоскости (В MATLAB)


Цель работы:

  1. Вычислить скорость, ускорение точки, радиус кривизны траектории
  2. Построить графики скорости и ускорения точки в одном графическом окне
  3. Построить в одних графических осях траекторию движения точки двумя способами (по законам движения x(t) y(t) и по уравнению траектории y(x)) - графики должны совпадать
Согласно плану решения п. (2-8) необходимо дифференцировать законы движения точки в координатном виде.

В MATLAB существует два основных способа дифференцирования функций:

  1. Аналитическое дифференцирование:
  • Используется функция diff()
  • Необходимо создать символьное выражение с помощью syms - для переменной по которой будет браться производная
  • Результат сохраняется в символьном виде
syms a x
f = sin(a*x)
diff(f)        % производная по x
diff(f,a)      % производная по a
diff(f,x,2)    % вторая производная по x
  1. Численное дифференцирование:
Основано на методе конечных разностей

  • Основные функции:
  • diff(X) - первые разности для вектора или матрицы
  • diff(X,n) - разности n-го порядка
  • diff(X,n,dim) - разности n-го порядка по указанному измерению
X = [1 2 4 7 11]
diff(X)        % [1 2 3 4]

Особенности применения:

  • Аналитическое дифференцирование подходит для получения точных формул
  • Численное дифференцирование используется для работы с дискретными данными
  • При численном дифференцировании важно учитывать погрешность вычислений
  • Для функций нескольких переменных можно комбинировать оба подхода
При работе с аналитическим дифференцированием рекомендуется:
  1. Всегда использовать syms для создания символьных переменных
  2. Указывать переменную дифференцирования явно
  3. Для сложных функций разбивать задачу на части
При численном дифференцировании важно:
  1. Выбирать оптимальный шаг дискретизации
  2. Учитывать возможные погрешности вычислений
  3. Проверять корректность результатов на простых примерах
В результате выполнения п.(2-8) плана решения будут получены формулы для скорости, ускорения и радиуса кривизны
для вычисления значения искомых переменных в момент времени t, используется функция subs

Функция subs в MATLAB используется для замены переменных в символьных выражениях.
Базовое использование

result = subs(expr, oldVar, newVar)

Где:

expr - символьное выражение
oldVar - переменная, которую нужно заменить
newVar - новое значение или выражение
примеры
Примеры использования
Замена одной переменной:
syms x
f =  3*x + 5;
result = subs(f, x, 2);  % Результат будет 11


Замена нескольких переменных:
syms x y
f = x^2 + y^2;
result = subs(f, {x, y}, {1, 2});  % Результат будет 5

Работа с матрицами:


syms a b c
M = [a, b; c, a + b];
result = subs(M, a, 1);

имя переменной обязательно нужно записать отличным от переменной содержащей "формулу"


например: V - для аналитического выражения /V_num -для численного

Используя функцию subs получим численные значения для данного в условии момента времени (t1).

Строим графики
Для построения графика функции одной переменной используется
команда:
plot (x,y)
где x - вектор значений аргументов, y - вектор соответствующих значений функции.

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

  • перечислить в одной команде все ряды данных plot(x1,y1,x1,y2,…)
  • заблокировать режим создания нового окна с помощью процедуры hold on, отключить который можно с помощью процедуры hold off.
plot(x1,y2)
hold on
plot (x2,y2)
hold off

В команде plot(x1,y1,’style1’,x1,y2,’style2’,…) вместо параметров style в
одинарных кавычках указываются дополнительные параметры для оформления линий:
  • цвет линии (табл. 1);
  • тип маркеров (табл. 2);
  • стиль линии (табл. 3).
Можно также отдельно настраивать различные атрибуты маркера,линии, заливки и т.д. см справку по функциям plot

График можно оформить:



Пара Name, Value определяет значение свойств легенды.
Свойство 'Location' определяет положение легенды ('north', 'south', 'east', 'west', и т.д )
свойство 'Orientation' ориентацию ('vertical' или 'horizontal' и т.д.).


Пример:
x=0:pi/10:2*pi;
y1=sin(x);
y2=cos(x);
y3=sin(x)+cos(x);
plot(x,y1,':or',x,y2,'--*g',x,y3,'-.xb')
legend('sin(x)','cos(x)','sin(x)+cos(x)','Location','southoutside','Orientation','horizontal')
title('Graph')
xlabel('X')
ylabel('Y')
grid on
Если в одном окне необходимо отобразить несколько графиков. Для этого используется функция
subplot(), которая позволяет разделить область рисования на несколько прямоугольных областей равного размера:

Основной синтаксис:
subplot(m, n, p)
Где:
  • m - количество строк в сетке графиков
  • n - количество столбцов в сетке
  • p - номер текущего подграфика (счет слева направо, сверху вниз)
Глобальный заголовок:
sgtitle('заголовок для графического окна');


для того чтобы построить графики скорости и ускорения точки:
необходимо в аналитическую формулу подставить вектор значений времени с использованием функции subs
t_g=(0:t_num/5:2*t_num);  % задаем вектор времени от о до 2*(t_1)   с шагом (t_1)/5

V_g = subs(V_num,t,t_g); подставляем в формулу для скорости

sgtitle('Движение точки на плоскости');

subplot(2,1,1)

% строим график plot (t, V)
plot(t_g,V_g,'r')
axis equal
title('Скорость точки m/с')

subplot(2,1,2)

% строим график plot (t, a)
plot(t_g,a_g,'m')
title('Ускорение точки m/с^2')
axis equal
для построения в одних графических осях траектории движения точки двумя способами (по законам движения x(t) y(t) и по уравнению траектории y(x)) - так чтобы графики совпадали

для траектории по законам движения:
% подставляем значения вектора времени в формулы y(t) и x(t)
x_g=subs(x,t,t_g); 
y_g=subs(y,t,t_g);

% строим график plot (x, y)
plot(x_g,y_g,'--k');
hold on
затем для поучения выражения y(x) выражаем t из закона движения x(t) и подставляем в закон движения y(t) - этот блок кода рекомендуется добавлять перед взятием производных, т.к здесь х - задается символьно.
syms t x

x_eq = 9*cos(6*t)==x; % уравнение 
sol_t = solve(x_eq, t); % реашем уравнение

y = 6*sin(3*t).^2; % задаем закон движения y(t)
y_x = subs(y, t, sol_t); % % подставляем t 
после того как получено выражение y(х)

его график можно построить либо создав вектор значений x - ориентируясь на диапазон первого графика (x(t), y(t))

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

Основной синтаксис: fplot(fun, dom)

Где:
  • fun - функция, заданная как функция-handle или символьное выражение
  • dom - интервал построения графика по оси x
fplot(y_x_num,[double(min(x_g)) double(max(x_g))],'r*')
hold off

совпадение двух графиков - допуск к защите

дополнения:

как записать в матлаб различные математические выражения:


математическая запись в MATLAB: sqrt(4) или 4^(1/2)


математическая запись в MATLAB: 24^(1/5)


математическая запись в MATLAB: cos(6*t).^2


математическая запись в MATLAB: exp(5/4) - в скобках показатель степени экспоненты

РГР 3
Кинематический анализ механизма, поиск скоростей и ускорений шарниров
РГР 4
Сложное движение точки пространственная траектория
Made on
Tilda