325
Для того, чтобы провести моделирование по созданной S-модели и оформить графически полученные
результаты следует произвести следующие операции:
1) ввести исходные данные в рабочее пространство;
2) запустить S-модель GR_3_TEL.mdl на моделирование; при этом результаты моделирования будут
записаны в МАТ-файл GR_3_TEL. mat;
3) загрузить содержимое МАТ-файла GR_3_TEL. mat в рабочее пространство, введя в командном
окне MatLab команду
load GR_3_TEL
при этом все данные, записанные в этом МАТ-файле, будут записаны в рабочее пространство в виде
матрицы под именем RV размером (16×n), где n – размер вектора значений времени;
4) используя данные матрицы RV, создать графическое и текстовое оформление результатов
моделирование в графическом окне MatLab.
Все эти операции можно автоматизировать, запрограммировав их в отдельной М-программе, которую
удобно
оформить в виде М-файла GR_3_TEL_upr (управляющая программа для S-модели GR_3_TEL). При этом
вызвать на моделирование S-модель из программы можно с помощью команды
sim('имя_S-модели')
Ниже приведен текст управляющей программы.
% GR_3_TEL_upr
% Программа управления для S-модели GR_3_TEL
% Лазарев Ю. Ф. 25-01-2004
% 1. Ввод данных в рабочее пространство
mu2=0.1; mu3=0.01;
X210=1; Y210=0; Z210=0;
V21x=0; V21y=1; V21z=0;
X320=0.1; Y320=0.0; Z320=0;
V32x=0; V32y=-1; V32z=0;
% 2. Запуск S-модели
sim('GR_3_TEL')
% 3. Загрузка МАТ-файла
load GR_3_TEL;
% 4. Присвоение значений из данных МАТ-файла новым переменным
t=RV(1,:);
X21=RV(2,:); Y21=RV(3,:); Z21=RV(4,:);
X32=RV(5,:); Y32=RV(6,:); Z32=RV(7,:);
X13=RV(8,:); Y13=RV(9,:); Z13=RV(10,:);
X2=RV(11,:); Y2=RV(12,:); Z2=RV(13,:);
X3=RV(14,:); Y3=RV(15,:); Z3=RV(16,:);
n=length(t);
% 5. Построение графика зависимости координат второго тела
% движения второго и третьего тел
subplot(2,2,1)
plot(t,X21,t,Y21,'--',t,Z21,'.'), grid
title('Движение второго тела относительно первого')
xlabel('Время (безразмерное)')
ylabel('Координаты (
безразмерные)')
legend('X','Y','Z',0)
% 6. Построение графика зависимости координат второго тела
% относительно первого от времени
subplot(2,2,3)
n1=round(n);
plot(t(1:n1),X32(1:n1),t(1:n1),Y32(1:n1),...
'—',t(1:n1),Z32(1:n1),'.'),grid
title('Движение третьего тела относительно второго')
xlabel('Время (безразмерное)')
ylabel('Координаты (безразмерные)')
legend('X','Y','Z',0)
% 7. Построение пространственных траекторий
% относительно первого от времени
subplot(4,4,[3,4,7,8,11,12])
plot3(X2,Y2,Z2,'.',X3,Y3,Z3), grid
title('Движение трех гравитирующих тел','FontSize',14)
xlabel('Координата Х')
ylabel('Координата Y')
zlabel('Координата Z')
legend('первое тело','второе тело',0)