Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ispolzovanie_Matlab_Dlya_Modelirovania_Dvizheni...docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.4 Mб
Скачать

Визуализация движения в Матлабе

Для построения движущегося изображения в Матлабе можно использовать два способа:

  1. полная перерисовка изображения,

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

Ниже рассмотрен пример, в котором создаются кадры, сохраняются на диск, а далее проигрываются с диска.

Создается графическое окно (figure), для которого устанавливается свойство «Название» (Name) – «Создание кадров».

figure('Name','Создание кадров')

Далее устанавливается число кадров:

n=50

Создается массив с временными точками:

x=-10 : 0.1 : 10;

В цикле чертится график функции

for j=1:n

plot(x,sin(x)*sin(j*0.1));

ylim([-1 1]);

M2(:,j) = getframe;

end

Функция getframe возвращает пиксельное изображение текущего графического окна (figure). Эта функция обычно используется в циклах для сохранения в массив снимков текущего окна (figure) и последующего воспроизведения этих снимков с помощью стандартной функции movie. Познакомимся с двумя полезными командами – save и load:

save M2; % Запись переменных рабочего пространства в файл M2.mat

load M2; % Загрузка переменных рабочего пространства из файла M2.mat

Далее в программе создается новое окно с названием «Просмотр фильма»:

figure('Name','Просмотр фильма')

и показывается «фильм» из ранее созданных кадров:

movie(M2);

Рассмотрим визуализацию движения точки по подвижной синусоиде без применения команд getframe–movie. В начале программы устанавливается число кадров, условных единиц времени:

n=200;

В переменной x сохраняются значения временных точек

x=-10 : 0.1 : 10 ;

y=sin(x);

Строится график синусоиды, дескриптор которого сохраняется в переменную h_p:

h_p=plot(x,y);

Дескриптор точки графика с координатами [x(1), y(1)] сохраняется в переменную h_m:

h_m =line(x(1),y(1), 'Marker','.','MarkerSize',40,'Color','b');

hold on;

Для каждого момента времени происходит изменение свойств графика синусоиды и выбранной точки с использованием дескрипторов и функции set. С помощью стандартной команды pause(n) прерывается выполнение команды на n секунд с тем, чтобы пользователь успел увидеть движение точки по синусоиде.

for j=1:n

y=sin(x-0.05*j); % Сдвиг синусоиды вправо на 0.05

set(h_p,'YData',y); % Сдвиг синусоиды вправо на 0.05

set (h_m,'XData',x(j) ); % Сдвиг точки вправо на 0.1

set (h_m,'YData',y(j) ); % Сдвиг точки вправо на 0.1

pause(0.02)

end

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

Библиотека примитивов

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

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