Лаб1
.docxМордовский государственный университет имени Н.П.Огарёва
Специальность: автоматизированные системы обработки информации
и управления
ЛАБОРАТОРНАЯ РАБОТА №1
по теоретическим основам автоматизированного управления
Анализ модели распределения ресурсов времени в системе обработке данных.
ЛР – 02069964 – ТОАУ – 01 – 13
ВЫПОЛНИЛИ ПРОВЕРИЛ
студенты441 группы ________17.09.2013
17.09.2013 Панкратов М.В.
Пырякина К. А.
Пигачев А.А.
Саранск 2013
Цель работы: освоение методов моделирования типовой системы обработки данных (СОД) с анализом распределения ресурсов времени и последующим анализом принятых решений о работоспособности системы.
Практическая часть.
Задание 1:
-
В соответствии с номером компьютера ввести следующие входные данные: с1 =1 для 1-го компьютера, для остальных увеличить на число единиц в соответствии с номером компьютера; с2=2 для 1-го компьютера, для остальных увеличивать на 0.5 с последующим номером компьютера; L10=3 для 1-го компьютера, для остальных увеличить на число единиц в соответствии с номером компьютера; L20=4 для 1-го компьютера, для остальных увеличить на число единиц в соответствии с номером компьютера; Т0 принять минимально возможным для 1-го компьютера, для остальных увеличить на 0.2 единицы в соответствии с номером компьютера; dT=0.5 для 1-го компьютера, для остальных увеличивать по 0.2 единицы в соответствии с номером компьютера. Проанализировать полученные результаты.
-
Пояснить работу программы при T=Tmin (T=Tmax).
-
Произвести проверку полученных результатов по формуле (1.1).
-
Написать программу выбора точки на полученной прямой времени Т (по 1-му пункту задания) в координатной плоскости α1/L1; α2/L (см. рис.1.2).
Выполнение задания:
-
В соответствии с 7м номером компьютера ввели следующие значения:
с1 =7
с2=5
L10 = 9
L20 =10
Т0 = 2.4778, т.к. Tmin=1.2778
dT = 1.7
clear,clc,closeall
disp('ВВЕДИТЕ ПАРАМЕТРЫ c1,c2,L10,L20 В КОМАНДНОЙ СТРОКЕ')
% АНАЛИЗ ВВОДА НОРМАТИВНОЙ ТРУДОЕМКОСТИ 1-Й ПОДСИСТЕМЫ В МИНУТАХ (ЧАСАХ)
c1=input('ВВЕДИТЕ c1: ');
if c1==0|c1<0|c1==inf|isreal(c1)==0
errordlg('ОШИБКА ВВОДА: c1 ДОЛЖНО БЫТЬ КОНЕЧНЫМ ДЕЙСТВИТЕЛЬНЫМ ЧИСЛОМ БОЛЬШЕ НУЛЯ!ПОВТОРИТЕ ВВОД')
c1=input('ВВЕДИТЕ c1: ');
if c1==0|c1<0|c1==inf|isreal(c1)==0
errordlg(' ПОВТОРНАЯ ОШИБКА ВВОДА!ПРОГРАММА ПРЕРЫВАЕТСЯ')
break
end
end
%---------------------------------------------------------------------------------------------------------------------
% АНАЛИЗ ВВОДА НОРМАТИВНОЙ ТРУДОЕМКОСТИ 2-Й ПОДСИСТЕМЫ В МИНУТАХ (ЧАСАХ)
c2=input('ВВЕДИТЕ c2: ');
if c2==0|c2<0|c2==inf|isreal(c2)==0
errordlg('ОШИБКА ВВОДА: c2 ДОЛЖНО БЫТЬ КОНЕЧНЫМ ДЕЙСТВИТЕЛЬНЫМ ЧИСЛОМ БОЛЬШЕ НУЛЯ!ПОВТОРИТЕ ВВОД')
c2=input('ВВЕДИТЕ c2: ');
if c2==0|c2<0|c2==inf|isreal(c2)==0
errordlg(' ПОВТОРНАЯ ОШИБКА ВВОДА!ПРОГРАММА ПРЕРЫВАЕТСЯ')
break
end
end
%-----------------------------------------------------------------------------------------------------------------
% ---------------------- АНАЛИЗ ВВОДА ЧИСЛА ЭВМ 1-Й ПОДСИСТЕМЫ -----------------------------------------------------
L10=input('ВВЕДИТЕ ДОПУСТИМОЕ ЧИСЛО ЭВМ 1-Й ПОДСИСТЕМЫ L10: ');
if L10==0|L10<0|isreal(L10)==0|L10-fix(L10)~=0
errordlg('ОШИБКА ВВОДА ЧИСЛО ЭВМ ДОЛЖНО БЫТЬ НАТУРАЛЬНЫМ ЧИСЛОМ И БОЛЬШЕ НУЛЯ.ПОВТОРИТЕ ВВОД')
L10=input('ВВЕДИТЕ ДОПУСТИМОЕ ЧИСЛО ЭВМ 1-Й ПОДСИСТЕМЫ L10: ');
if L10==0|L10<0|L10-fix(L10)~=0
errordlg('ПОВТОРНАЯ ОШИБКА ВВОДА ЧИСЛА ЭВМ.ПРОГРАММА ПРЕРЫВАЕТСЯ')
break
end
end
%----------------------- АНАЛИЗ ВВОДА ЧИСЛА ЭВМ 2-Й ПОДСИСТЕМЫ ---------------------------------------------------
L20=input('ВВЕДИТЕ ДОПУСТИМОЕ ЧИСЛО ЭВМ 2-Й ПОДСИСТЕМЫ L20: ');
if L20==0|L20<0|L20-fix(L20)~=0
errordlg('ОШИБКА ВВОДА: ЧИСЛО ЭВМ ДОЛЖНО БЫТЬ НАТУРАЛЬНЫМ ЧИСЛОМ БОЛЬШЕ НУЛЯ. ПОВТОРИТЕ ВВОД')
L10=input('ВВЕДИТЕ ДОПУСТИМОЕ ЧИСЛО ЭВМ 2-Й ПОДСИСТЕМЫ L20: ');
if L20==0|L20<0|L20-fix(L20)~=0
errordlg('ПОВТОРНАЯ ОШИБКА ВВОДА ЧИСЛА ЭВМ.ПРОГРАММА ПРЕРЫВАЕТСЯ')
break
end
end
% -------------------------- АНАЛИЗ ИНТЕРВАЛА ВРЕМЕНИ -----------------------------
disp('---------------------------------------------------------------------')
disp('Tmin - МИНИМАЛЬНО ДОПУСТИМОЕ ВРЕМЯ ОБРАБОТКИ ДАННЫХ')
Tmin=c1/L10+c2/L20
disp('Tmax - МАКСИМАЛЬНО ДОПУСТИМОЕ ВРЕМЯ ОБРАБОТКИ ДАННЫХ')
Tmax=c1+c2
disp('---------------------------------------------------------------------')
T0=input('ВВЕДИТЕ ВРЕМЯ ОБРАБОТКИ ДАННЫХ (T0) ');
ifisempty(T0)==1|T0<=0|isreal(T0)==0|T0==inf
errordlg('ОШИБКА ВВОДА ВРЕМЕНИ ОБРАБОТКИ (Т0). ВРЕМЯ ДОЛЖНО БЫТЬ ДЕЙСТВИТЕЛЬНЫМ КОНЕЧНЫМ ЧИСЛОМ БОЛЬШЕ НУЛЯ. ПОВТОРИТЕ ВВОД')
T0=input('ВВЕДИТЕ ВРЕМЯ ОБРАБОТКИ ДАННЫХ (T0) ');
ifisempty(T0)==1|T0<=0|isreal(T0)==0|T0==inf
errordlg('ПОВТОРНАЯ ОШИБКА ВВОДА ВРЕМЕНИ ОБРАБОТКИ.ПРОГРАММА ПРЕРЫВАЕТСЯ')
break
end
end
% ДОБАВИТЬ АНАЛИЗ ИНТЕРВАЛА ВРЕМЕНИ ОПЕРЕЖЕНИЯ
dT=input('ВВЕДИТЕ dT - ДОПУСТИМОЕ ОПЕРЕЖЕНИЕ НАЧАЛА РАБОТЫ 2-Й ПОДСИСТЕМЫ: ');
ifisempty(dT)==1|dT<0|isreal(dT)==0|dT==inf
errordlg('ОШИБКА ВВОДА ВРЕМЕНИ dT, ВРЕМЯ ДОЛЖНО БЫТЬ ДЕЙСТВИТЕЛЬНЫМ КОНЕЧНЫМ ЧИСЛОМ НЕ МЕНЬШЕ НУЛЯ.ПОВТОРИТЕ ВВОД')
dT=input('ВВЕДИТЕ dT – ДОПУСТИМОЕ ОПЕРЕЖЕНИЕ НАЧАЛА РАБОТЫ 2-Й ПОДСИСТЕМЫ: ');
ifisempty(dT)==1|dT<0|isreal(dT)==0|dT==inf
errordlg('ПОВТОРНАЯ ОШИБКА ВВОДА ВРЕМЕНИ ОПЕРЕЖЕНИЯ.ПРОГРАММАПРЕРЫВАЕТСЯ')
break
end
end
T=T0+dT;
if (T<Tmin|T>Tmax)
errordlg('ОШИБКА ВВОДА ИНТЕРВАЛА Т0+dT. ПОВТОРИТЕ ВВОД T0, dT')
T0=input('ВВЕДИТЕ T0 МЕЖДУ Tmin ИTmax ');
dT=input('ВВЕДИТЕ dT - ДОПУСТИМОЕ ОПЕРЕЖЕНИЕ НАЧАЛА РАБОТЫ 2-Й ПОДСИСТЕМЫ; T0+dT ДОЛЖНО БЫТЬ В ИНТЕРВАЛЕ (Tmin, Tmax): ');
if (T<Tmin|T>Tmax)
errordlg('ОШИБКА ВВОДА ИНТЕРВАЛА Т0+dT. ПРОГРАММА ПРЕРЫВАЕТСЯ')
break
end
end
%--------------------------- РАСЧЕТ ПАРАМЕТРОВ ---------------------------------
XL=1/L10; % ПРЕДЕЛ СЛЕВА, ПРЕДЕЛ СПРАВА=1
yy=(T-c1*XL)/c2;
ifyy>1
XL=(T-c2)/c1;
end
yy=1/L20;
XR=(T-c2*yy)/c1;
if XR>1
XR=1;
end
a=rand(1);
a=a*(XR-XL)+XL;
ALPHA1=0;
while ALPHA1 <1,
L1=rand(1);
L1=L1*(L10-1)+1;
L1=round(L1);
ALPHA1=a*L1;
end
b=(T-c1*a)/c2;
ALPHA2=0;
while ALPHA2 <1,
L2=rand(1);
L2=L2*(L20-1)+1;
L2=round(L2);
ALPHA2=b*L2;
end
%----------------- ЗНАЧЕНИЯ ПАРАМЕТРОВ -------------------------
disp('---------------------------------------------------------------------')
disp('L1 - НЕОБХОДИМОЕ ЧИСЛО КОМПЬЮТЕРОВ В 1-Й ПОДСИСТЕМЕ')
L1
disp('---------------------------------------------------------------------')
disp('L2 - НЕОБХОДИМОЕ ЧИСЛО КОМПЬЮТЕРОВ ВО 2-Й ПОДСИСТЕМЕ')
L2
disp('---------------------------------------------------------------------')
disp('---------------------------------------------------------------------')
disp('ALPHA1 - КОЭФФИЦИЕНТ НЕУЧТЕННЫХ ЗАТРАТ ВРЕМЕНИ В 1-Й ПОДСИСТЕМЕ:')
ALPHA1
disp('---------------------------------------------------------------------')
% L2
disp('ALPHA2 - КОЭФФИЦИЕНТ НЕУЧТЕННЫХ ЗАТРАТ ВРЕМЕНИ ВО 2-Й ПОДСИСТЕМЕ:')
ALPHA2
disp('---------------------------------------------------------------------')
%--------------------------------------------------------------
%------------------------------------------------------------------------------
x=T/c1;y=T/c2;
x0=[0 x];y0=[y 0];
xmin=1/L10;ymin=1/L20;
disp('kvadrat - КООРДИНАТЫ ДОПУСТИМОГО РАБОЧЕГО ПРЯМОУГОЛЬНИКА НА ПЛОСКОСТИ: ')
kvadrat=[xminymin; 1 1]
disp('-----------------------------------------------------------------------')
kvadratx=[xmin 1 1 xminxmin];
kvadraty=[1 1 yminymin 1];
x0min=[0 Tmin/c1];y0min=[Tmin/c2 0];
x0max=[0 Tmax/c1];y0max=[Tmax/c2 0];
% ГРАФИЧЕСКИЕПОСТРОЕНИЯ
figure(1);
plot(kvadratx,kvadraty,'linewidth',2), grid on, hold on,
plot(x0min,y0min,'m:','linew',3),
plot(x0max,y0max,'g:','linew',3),
plot(x0,y0,'r','linew',2),
plot(a,b,'r*','linew',2),
xlabel('\bf\alpha_1/L_1'),ylabel('\bf\alpha_2/L_2'),
text(0.05,1.3,'Look for Command Window of MATLAB'),
legend('Valid square','Tmin','Tmax','T','Random point'),
set(gcf,'color','w'),hold off
В результате получили:
ВВЕДИТЕ ПАРАМЕТРЫ c1,c2,L10,L20 В КОМАНДНОЙ СТРОКЕ
ВВЕДИТЕ c1: 7
ВВЕДИТЕ c2: 5
ВВЕДИТЕ ДОПУСТИМОЕ ЧИСЛО ЭВМ 1-Й ПОДСИСТЕМЫ L10: 9
ВВЕДИТЕ ДОПУСТИМОЕ ЧИСЛО ЭВМ 2-Й ПОДСИСТЕМЫ L20: 10
---------------------------------------------------------------------
Tmin - МИНИМАЛЬНО ДОПУСТИМОЕ ВРЕМЯ ОБРАБОТКИ ДАННЫХ
Tmin =
1.2778
Tmax - МАКСИМАЛЬНО ДОПУСТИМОЕ ВРЕМЯ ОБРАБОТКИ ДАННЫХ
Tmax =
12
---------------------------------------------------------------------
ВВЕДИТЕ ВРЕМЯ ОБРАБОТКИ ДАННЫХ (T0) 2.4778
ВВЕДИТЕ dT - ДОПУСТИМОЕ ОПЕРЕЖЕНИЕ НАЧАЛА РАБОТЫ 2-Й ПОДСИСТЕМЫ: 1.7
---------------------------------------------------------------------
L1 - НЕОБХОДИМОЕ ЧИСЛО КОМПЬЮТЕРОВ В 1-Й ПОДСИСТЕМЕ
L1 =
8
---------------------------------------------------------------------
L2 - НЕОБХОДИМОЕ ЧИСЛО КОМПЬЮТЕРОВ ВО 2-Й ПОДСИСТЕМЕ
L2 =
9
---------------------------------------------------------------------
---------------------------------------------------------------------
ALPHA1 - КОЭФФИЦИЕНТ НЕУЧТЕННЫХ ЗАТРАТ ВРЕМЕНИ В 1-Й ПОДСИСТЕМЕ:
ALPHA1 =
3.5891
---------------------------------------------------------------------
ALPHA2 - КОЭФФИЦИЕНТ НЕУЧТЕННЫХ ЗАТРАТ ВРЕМЕНИ ВО 2-Й ПОДСИСТЕМЕ:
ALPHA2 =
1.8671
---------------------------------------------------------------------
kvadrat - КООРДИНАТЫ ДОПУСТИМОГО РАБОЧЕГО ПРЯМОУГОЛЬНИКА НА ПЛОСКОСТИ:
kvadrat =
0.1111 0.1000
1.0000 1.0000
----------------------------------------------------------------------
-
Пояснить работу программы при T=Tmin (T=Tmax).
clear,clc,closeall
disp('ВВЕДИТЕ ПАРАМЕТРЫ c1,c2,L10,L20 В КОМАНДНОЙ СТРОКЕ')
% АНАЛИЗ ВВОДА НОРМАТИВНОЙ ТРУДОЕМКОСТИ 1-Й ПОДСИСТЕМЫ В МИНУТАХ (ЧАСАХ)
c1=input('ВВЕДИТЕ c1: ');
if c1==0|c1<0|c1==inf|isreal(c1)==0
errordlg('ОШИБКА ВВОДА: c1 ДОЛЖНО БЫТЬ КОНЕЧНЫМ ДЕЙСТВИТЕЛЬНЫМ ЧИСЛОМ БОЛЬШЕ НУЛЯ!ПОВТОРИТЕ ВВОД')
c1=input('ВВЕДИТЕ c1: ');
ifc1==0|c1<0|c1==inf|isreal(c1)==0
errordlg(' ПОВТОРНАЯ ОШИБКА ВВОДА!ПРОГРАММА ПРЕРЫВАЕТСЯ')
break
end
end
%---------------------------------------------------------------------------------------------------------------------
% АНАЛИЗ ВВОДА НОРМАТИВНОЙ ТРУДОЕМКОСТИ 2-Й ПОДСИСТЕМЫ В МИНУТАХ (ЧАСАХ)
c2=input('ВВЕДИТЕ c2: ');
if c2==0|c2<0|c2==inf|isreal(c2)==0
errordlg('ОШИБКА ВВОДА: c2 ДОЛЖНО БЫТЬ КОНЕЧНЫМ ДЕЙСТВИТЕЛЬНЫМ ЧИСЛОМ БОЛЬШЕ НУЛЯ!ПОВТОРИТЕ ВВОД')
c2=input('ВВЕДИТЕ c2: ');
ifc2==0|c2<0|c2==inf|isreal(c2)==0
errordlg(' ПОВТОРНАЯ ОШИБКА ВВОДА!ПРОГРАММА ПРЕРЫВАЕТСЯ')
break
end
end
%-----------------------------------------------------------------------------------------------------------------
% ---------------------- АНАЛИЗ ВВОДА ЧИСЛА ЭВМ 1-Й ПОДСИСТЕМЫ -----------------------------------------------------
L10=input('ВВЕДИТЕ ДОПУСТИМОЕ ЧИСЛО ЭВМ 1-Й ПОДСИСТЕМЫ L10: ');
if L10==0|L10<0|isreal(L10)==0|L10-fix(L10)~=0
errordlg('ОШИБКА ВВОДА ЧИСЛО ЭВМ ДОЛЖНО БЫТЬ НАТУРАЛЬНЫМ ЧИСЛОМ И БОЛЬШЕ НУЛЯ.ПОВТОРИТЕ ВВОД')
L10=input('ВВЕДИТЕ ДОПУСТИМОЕ ЧИСЛО ЭВМ 1-Й ПОДСИСТЕМЫ L10: ');
if L10==0|L10<0|L10-fix(L10)~=0
errordlg('ПОВТОРНАЯ ОШИБКА ВВОДА ЧИСЛА ЭВМ.ПРОГРАММА ПРЕРЫВАЕТСЯ')
break
end
end
%----------------------- АНАЛИЗ ВВОДА ЧИСЛА ЭВМ 2-Й ПОДСИСТЕМЫ ---------------------------------------------------
L20=input('ВВЕДИТЕ ДОПУСТИМОЕ ЧИСЛО ЭВМ 2-Й ПОДСИСТЕМЫ L20: ');
if L20==0|L20<0|L20-fix(L20)~=0
errordlg('ОШИБКА ВВОДА: ЧИСЛО ЭВМ ДОЛЖНО БЫТЬ НАТУРАЛЬНЫМ ЧИСЛОМ БОЛЬШЕ НУЛЯ. ПОВТОРИТЕ ВВОД')
L10=input('ВВЕДИТЕ ДОПУСТИМОЕ ЧИСЛО ЭВМ 2-Й ПОДСИСТЕМЫ L20: ');
if L20==0|L20<0|L20-fix(L20)~=0
errordlg('ПОВТОРНАЯ ОШИБКА ВВОДА ЧИСЛА ЭВМ.ПРОГРАММА ПРЕРЫВАЕТСЯ')
break
end
end
% -------------------------- АНАЛИЗ ИНТЕРВАЛА ВРЕМЕНИ -----------------------------
disp('---------------------------------------------------------------------')
disp('Tmin - МИНИМАЛЬНО ДОПУСТИМОЕ ВРЕМЯ ОБРАБОТКИ ДАННЫХ')
Tmin=c1/L10+c2/L20
disp('Tmax - МАКСИМАЛЬНО ДОПУСТИМОЕ ВРЕМЯ ОБРАБОТКИ ДАННЫХ')
Tmax=c1+c2
disp('---------------------------------------------------------------------')
T=input('ВВЕДИТЕ ВРЕМЯ ОБРАБОТКИ ДАННЫХ T=Tmin ИЛИ Tmax (T=T0+dT): ');
ifisempty(T)==1|T<=0|isreal(T)==0|T==inf
errordlg('ОШИБКА ВВОДА ВРЕМЕНИ ОБРАБОТКИ (Т). ВРЕМЯ ДОЛЖНО БЫТЬ ДЕЙСТВИТЕЛЬНЫМ КОНЕЧНЫМ ЧИСЛОМ БОЛЬШЕ НУЛЯ. ПОВТОРИТЕ ВВОД')
T0=input('ВВЕДИТЕ ВРЕМЯ ОБРАБОТКИ ДАННЫХ (T) ');
ifisempty(T)==1|T<=0|isreal(T)==0|T==inf
errordlg('ПОВТОРНАЯ ОШИБКА ВВОДА ВРЕМЕНИ ОБРАБОТКИ.ПРОГРАММАПРЕРЫВАЕТСЯ')
break
end
end
if (T<Tmin|T>Tmax)
errordlg('ОШИБКА ВВОДА ВРЕМЕНИ Т. ПОВТОРИТЕ ВВОД ')
T=input('ВВЕДИТЕ T=Tmin ИЛИ Tmax ');
if (T<Tmin|T>Tmax)
errordlg('ОШИБКА ВВОДА ВРЕМЕНИ Т. ПРОГРАММА ПРЕРЫВАЕТСЯ')
break
end
end
%--------------------------- РАСЧЕТ ПАРАМЕТРОВ ---------------------------------
XL=1/L10; % ПРЕДЕЛ СЛЕВА, ПРЕДЕЛ СПРАВА=1
yy=(T-c1*XL)/c2;
ifyy>1
XL=(T-c2)/c1;
end
yy=1/L20;
XR=(T-c2*yy)/c1;
if XR>1
XR=1;
end
a=rand(1);
a=a*(XR-XL)+XL;
ALPHA1=0;
while ALPHA1 <1,
L1=rand(1);
L1=L1*(L10-1)+1;
L1=round(L1);
ALPHA1=a*L1;
end
b=(T-c1*a)/c2;
ALPHA2=0;
while ALPHA2 <1,
L2=rand(1);
L2=L2*(L20-1)+1;
L2=round(L2);
ALPHA2=b*L2;
end
%----------------- ЗНАЧЕНИЯ ПАРАМЕТРОВ -------------------------
disp('---------------------------------------------------------------------')
disp('L1 - НЕОБХОДИМОЕ ЧИСЛО КОМПЬЮТЕРОВ В 1-Й ПОДСИСТЕМЕ')
L1
disp('---------------------------------------------------------------------')
disp('L2 - НЕОБХОДИМОЕ ЧИСЛО КОМПЬЮТЕРОВ ВО 2-Й ПОДСИСТЕМЕ')
L2
disp('---------------------------------------------------------------------')
disp('---------------------------------------------------------------------')
disp('ALPHA1 - КОЭФФИЦИЕНТ НЕУЧТЕННЫХ ЗАТРАТ ВРЕМЕНИ В 1-Й ПОДСИСТЕМЕ:')
ALPHA1
disp('---------------------------------------------------------------------')
% L2
disp('ALPHA2 - КОЭФФИЦИЕНТ НЕУЧТЕННЫХ ЗАТРАТ ВРЕМЕНИ ВО 2-Й ПОДСИСТЕМЕ:')
ALPHA2
disp('---------------------------------------------------------------------')
%--------------------------------------------------------------
%------------------------------------------------------------------------------
x=T/c1;y=T/c2;
x0=[0 x];y0=[y 0];
xmin=1/L10;ymin=1/L20;
disp('kvadrat - КООРДИНАТЫ ДОПУСТИМОГО РАБОЧЕГО ПРЯМОУГОЛЬНИКА НА ПЛОСКОСТИ: ')
kvadrat=[xminymin; 1 1]
disp('-----------------------------------------------------------------------')
kvadratx=[xmin 1 1 xminxmin];
kvadraty=[1 1 yminymin 1];
x0min=[0 Tmin/c1];y0min=[Tmin/c2 0];
x0max=[0 Tmax/c1];y0max=[Tmax/c2 0];
% ГРАФИЧЕСКИЕПОСТРОЕНИЯ
figure(1);
plot(kvadratx,kvadraty,'linewidth',2), grid on, hold on,
plot(x0min,y0min,'m:','linew',3),
plot(x0max,y0max,'g:','linew',3),
plot(x0,y0,'r','linew',2),
plot(a,b,'r*','linew',2),
xlabel('\bf\alpha_1/L_1'),ylabel('\bf\alpha_2/L_2'),
text(0.05,1.3,'Look for Command Window of MATLAB'),
legend('Valid square','Tmin','Tmax','T','Random point'),
set(gcf,'color','w'),hold off
В результатепри Tmin получили:
ВВЕДИТЕ ПАРАМЕТРЫ c1,c2,L10,L20 В КОМАНДНОЙ СТРОКЕ
ВВЕДИТЕ c1: 7
ВВЕДИТЕ c2: 5
ВВЕДИТЕ ДОПУСТИМОЕ ЧИСЛО ЭВМ 1-Й ПОДСИСТЕМЫ L10: 9
ВВЕДИТЕ ДОПУСТИМОЕ ЧИСЛО ЭВМ 2-Й ПОДСИСТЕМЫ L20: 10
---------------------------------------------------------------------
Tmin - МИНИМАЛЬНО ДОПУСТИМОЕ ВРЕМЯ ОБРАБОТКИ ДАННЫХ
Tmin =
1.2778
Tmax - МАКСИМАЛЬНО ДОПУСТИМОЕ ВРЕМЯ ОБРАБОТКИ ДАННЫХ
Tmax =
12
---------------------------------------------------------------------
ВВЕДИТЕ ВРЕМЯ ОБРАБОТКИ ДАННЫХ T=Tmin ИЛИ Tmax (T=T0+dT): 1.2778
---------------------------------------------------------------------
L1 - НЕОБХОДИМОЕ ЧИСЛО КОМПЬЮТЕРОВ В 1-Й ПОДСИСТЕМЕ
L1 =
9
---------------------------------------------------------------------
L2 - НЕОБХОДИМОЕ ЧИСЛО КОМПЬЮТЕРОВ ВО 2-Й ПОДСИСТЕМЕ
L2 =
10
---------------------------------------------------------------------
---------------------------------------------------------------------
ALPHA1 - КОЭФФИЦИЕНТ НЕУЧТЕННЫХ ЗАТРАТ ВРЕМЕНИ В 1-Й ПОДСИСТЕМЕ:
ALPHA1 =
1.0000
---------------------------------------------------------------------
ALPHA2 - КОЭФФИЦИЕНТ НЕУЧТЕННЫХ ЗАТРАТ ВРЕМЕНИ ВО 2-Й ПОДСИСТЕМЕ:
ALPHA2 =
1.0000
---------------------------------------------------------------------
kvadrat - КООРДИНАТЫ ДОПУСТИМОГО РАБОЧЕГО ПРЯМОУГОЛЬНИКА НА ПЛОСКОСТИ:
kvadrat =
0.1111 0.1000
1.0000 1.0000
-----------------------------------------------------------------------
В результатепри Tmax получили:
ВВЕДИТЕ ПАРАМЕТРЫ c1,c2,L10,L20 В КОМАНДНОЙ СТРОКЕ
ВВЕДИТЕ c1: 7
ВВЕДИТЕ c2: 5
ВВЕДИТЕ ДОПУСТИМОЕ ЧИСЛО ЭВМ 1-Й ПОДСИСТЕМЫ L10: 9
ВВЕДИТЕ ДОПУСТИМОЕ ЧИСЛО ЭВМ 2-Й ПОДСИСТЕМЫ L20: 10
---------------------------------------------------------------------
Tmin - МИНИМАЛЬНО ДОПУСТИМОЕ ВРЕМЯ ОБРАБОТКИ ДАННЫХ
Tmin =
1.2778
Tmax - МАКСИМАЛЬНО ДОПУСТИМОЕ ВРЕМЯ ОБРАБОТКИ ДАННЫХ
Tmax =
12
---------------------------------------------------------------------
ВВЕДИТЕ ВРЕМЯ ОБРАБОТКИ ДАННЫХ T=Tmin ИЛИ Tmax (T=T0+dT): 12
---------------------------------------------------------------------
L1 - НЕОБХОДИМОЕ ЧИСЛО КОМПЬЮТЕРОВ В 1-Й ПОДСИСТЕМЕ
L1 =
9
---------------------------------------------------------------------
L2 - НЕОБХОДИМОЕ ЧИСЛО КОМПЬЮТЕРОВ ВО 2-Й ПОДСИСТЕМЕ
L2 =
10
---------------------------------------------------------------------
---------------------------------------------------------------------
ALPHA1 - КОЭФФИЦИЕНТ НЕУЧТЕННЫХ ЗАТРАТ ВРЕМЕНИ В 1-Й ПОДСИСТЕМЕ:
ALPHA1 =
9
---------------------------------------------------------------------
ALPHA2 - КОЭФФИЦИЕНТ НЕУЧТЕННЫХ ЗАТРАТ ВРЕМЕНИ ВО 2-Й ПОДСИСТЕМЕ:
ALPHA2 =
10
---------------------------------------------------------------------
kvadrat - КООРДИНАТЫ ДОПУСТИМОГО РАБОЧЕГО ПРЯМОУГОЛЬНИКА НА ПЛОСКОСТИ:
kvadrat =
0.1111 0.1000
1.0000 1.0000
-----------------------------------------------------------------------
-
Произвели проверку полученных данных по формуле (1.1):
clear,clc,close all
disp('ВВЕДИТЕ ПАРАМЕТРЫ c1,c2,L10,L20 В КОМАНДНОЙ СТРОКЕ')
% АНАЛИЗ ВВОДА НОРМАТИВНОЙ ТРУДОЕМКОСТИ 1-Й ПОДСИСТЕМЫ В МИНУТАХ (ЧАСАХ)
c1=input('ВВЕДИТЕ c1: ');
if c1==0|c1<0|c1==inf|isreal(c1)==0
errordlg('ОШИБКА ВВОДА: c1 ДОЛЖНО БЫТЬ КОНЕЧНЫМ ДЕЙСТВИТЕЛЬНЫМ ЧИСЛОМ БОЛЬШЕ НУЛЯ!ПОВТОРИТЕ ВВОД')
c1=input('ВВЕДИТЕ c1: ');
if c1==0|c1<0|c1==inf|isreal(c1)==0
errordlg(' ПОВТОРНАЯ ОШИБКА ВВОДА!ПРОГРАММА ПРЕРЫВАЕТСЯ')
break
end
end
%---------------------------------------------------------------------------------------------------------------------
% АНАЛИЗ ВВОДА НОРМАТИВНОЙ ТРУДОЕМКОСТИ 2-Й ПОДСИСТЕМЫ В МИНУТАХ (ЧАСАХ)
c2=input('ВВЕДИТЕ c2: ');
if c2==0|c2<0|c2==inf|isreal(c2)==0
errordlg('ОШИБКА ВВОДА: c2 ДОЛЖНО БЫТЬ КОНЕЧНЫМ ДЕЙСТВИТЕЛЬНЫМ ЧИСЛОМ БОЛЬШЕ НУЛЯ!ПОВТОРИТЕ ВВОД')
c2=input('ВВЕДИТЕ c2: ');
if c2==0|c2<0|c2==inf|isreal(c2)==0
errordlg(' ПОВТОРНАЯ ОШИБКА ВВОДА!ПРОГРАММА ПРЕРЫВАЕТСЯ')
break
end
end
%-----------------------------------------------------------------------------------------------------------------
% ---------------------- АНАЛИЗ ВВОДА ЧИСЛА ЭВМ 1-Й ПОДСИСТЕМЫ -----------------------------------------------------
L10=input('ВВЕДИТЕ ДОПУСТИМОЕ ЧИСЛО ЭВМ 1-Й ПОДСИСТЕМЫ L10: ');
if L10==0|L10<0|isreal(L10)==0|L10-fix(L10)~=0
errordlg('ОШИБКА ВВОДА ЧИСЛО ЭВМ ДОЛЖНО БЫТЬ НАТУРАЛЬНЫМ ЧИСЛОМ И БОЛЬШЕ НУЛЯ.ПОВТОРИТЕ ВВОД')
L10=input('ВВЕДИТЕ ДОПУСТИМОЕ ЧИСЛО ЭВМ 1-Й ПОДСИСТЕМЫ L10: ');
if L10==0|L10<0|L10-fix(L10)~=0
errordlg('ПОВТОРНАЯ ОШИБКА ВВОДА ЧИСЛА ЭВМ.ПРОГРАММА ПРЕРЫВАЕТСЯ')
break
end
end
%----------------------- АНАЛИЗ ВВОДА ЧИСЛА ЭВМ 2-Й ПОДСИСТЕМЫ ---------------------------------------------------
L20=input('ВВЕДИТЕ ДОПУСТИМОЕ ЧИСЛО ЭВМ 2-Й ПОДСИСТЕМЫ L20: ');
if L20==0|L20<0|L20-fix(L20)~=0
errordlg('ОШИБКА ВВОДА: ЧИСЛО ЭВМ ДОЛЖНО БЫТЬ НАТУРАЛЬНЫМ ЧИСЛОМ БОЛЬШЕ НУЛЯ. ПОВТОРИТЕ ВВОД')
L10=input('ВВЕДИТЕ ДОПУСТИМОЕ ЧИСЛО ЭВМ 2-Й ПОДСИСТЕМЫ L20: ');
if L20==0|L20<0|L20-fix(L20)~=0
errordlg('ПОВТОРНАЯ ОШИБКА ВВОДА ЧИСЛА ЭВМ.ПРОГРАММА ПРЕРЫВАЕТСЯ')
break
end
end
% -------------------------- АНАЛИЗ ИНТЕРВАЛА ВРЕМЕНИ -----------------------------
disp('---------------------------------------------------------------------')
disp('Tmin - МИНИМАЛЬНО ДОПУСТИМОЕ ВРЕМЯ ОБРАБОТКИ ДАННЫХ')
Tmin=c1/L10+c2/L20
disp('Tmax - МАКСИМАЛЬНО ДОПУСТИМОЕ ВРЕМЯ ОБРАБОТКИ ДАННЫХ')
Tmax=c1+c2
disp('---------------------------------------------------------------------')
T0=input('ВВЕДИТЕ ВРЕМЯ ОБРАБОТКИ ДАННЫХ (T0) ');
if isempty(T0)==1|T0<=0|isreal(T0)==0|T0==inf
errordlg('ОШИБКА ВВОДА ВРЕМЕНИ ОБРАБОТКИ (Т0). ВРЕМЯ ДОЛЖНО БЫТЬ ДЕЙСТВИТЕЛЬНЫМ КОНЕЧНЫМ ЧИСЛОМ БОЛЬШЕ НУЛЯ. ПОВТОРИТЕ ВВОД')
T0=input('ВВЕДИТЕ ВРЕМЯ ОБРАБОТКИ ДАННЫХ (T0) ');
if isempty(T0)==1|T0<=0|isreal(T0)==0|T0==inf
errordlg('ПОВТОРНАЯ ОШИБКА ВВОДА ВРЕМЕНИ ОБРАБОТКИ.ПРОГРАММА ПРЕРЫВАЕТСЯ')
break
end
end
% ДОБАВИТЬ АНАЛИЗ ИНТЕРВАЛА ВРЕМЕНИ ОПЕРЕЖЕНИЯ
dT=input('ВВЕДИТЕ dT - ДОПУСТИМОЕ ОПЕРЕЖЕНИЕ НАЧАЛА РАБОТЫ 2-Й ПОДСИСТЕМЫ: ');
if isempty(dT)==1|dT<0|isreal(dT)==0|dT==inf
errordlg('ОШИБКА ВВОДА ВРЕМЕНИ dT, ВРЕМЯ ДОЛЖНО БЫТЬ ДЕЙСТВИТЕЛЬНЫМ КОНЕЧНЫМ ЧИСЛОМ НЕ МЕНЬШЕ НУЛЯ.ПОВТОРИТЕ ВВОД')
dT=input('ВВЕДИТЕ dT – ДОПУСТИМОЕ ОПЕРЕЖЕНИЕ НАЧАЛА РАБОТЫ 2-Й ПОДСИСТЕМЫ: ');
if isempty(dT)==1|dT<0|isreal(dT)==0|dT==inf
errordlg('ПОВТОРНАЯ ОШИБКА ВВОДА ВРЕМЕНИ ОПЕРЕЖЕНИЯ.ПРОГРАММАПРЕРЫВАЕТСЯ')
break
end
end
T=T0+dT;
if (T<Tmin|T>Tmax)
errordlg('ОШИБКА ВВОДА ИНТЕРВАЛА Т0+dT. ПОВТОРИТЕ ВВОД T0, dT')
T0=input('ВВЕДИТЕ T0 МЕЖДУ Tmin И Tmax ');
dT=input('ВВЕДИТЕ dT - ДОПУСТИМОЕ ОПЕРЕЖЕНИЕ НАЧАЛА РАБОТЫ 2-Й ПОДСИСТЕМЫ; T0+dT ДОЛЖНО БЫТЬ В ИНТЕРВАЛЕ (Tmin, Tmax): ');
if (T<Tmin|T>Tmax)
errordlg('ОШИБКА ВВОДА ИНТЕРВАЛА Т0+dT. ПРОГРАММА ПРЕРЫВАЕТСЯ')
break
end
end
%--------------------------- РАСЧЕТ ПАРАМЕТРОВ ---------------------------------
XL=1/L10; % ПРЕДЕЛ СЛЕВА, ПРЕДЕЛ СПРАВА=1
yy=(T-c1*XL)/c2;
if yy>1
XL=(T-c2)/c1;
end
yy=1/L20;
XR=(T-c2*yy)/c1;
if XR>1
XR=1;
end
a=rand(1);
a=a*(XR-XL)+XL;
ALPHA1=0;
while ALPHA1 <1,
L1=rand(1);
L1=L1*(L10-1)+1;
L1=round(L1);
ALPHA1=a*L1;
end
b=(T-c1*a)/c2;
ALPHA2=0;
while ALPHA2 <1,
L2=rand(1);
L2=L2*(L20-1)+1;
L2=round(L2);
ALPHA2=b*L2;
end
%----------------- ЗНАЧЕНИЯ ПАРАМЕТРОВ -------------------------
disp('---------------------------------------------------------------------')
disp('L1 - НЕОБХОДИМОЕ ЧИСЛО КОМПЬЮТЕРОВ В 1-Й ПОДСИСТЕМЕ')
L1
disp('---------------------------------------------------------------------')
disp('L2 - НЕОБХОДИМОЕ ЧИСЛО КОМПЬЮТЕРОВ ВО 2-Й ПОДСИСТЕМЕ')
L2
disp('---------------------------------------------------------------------')
disp('---------------------------------------------------------------------')
disp('ALPHA1 - КОЭФФИЦИЕНТ НЕУЧТЕННЫХ ЗАТРАТ ВРЕМЕНИ В 1-Й ПОДСИСТЕМЕ:')
ALPHA1
disp('---------------------------------------------------------------------')
% L2
disp('ALPHA2 - КОЭФФИЦИЕНТ НЕУЧТЕННЫХ ЗАТРАТ ВРЕМЕНИ ВО 2-Й ПОДСИСТЕМЕ:')
ALPHA2
disp('---------------------------------------------------------------------')
%--------------------------------------------------------------
%------------------------------------------------------------------------------
x=T/c1;y=T/c2;
x0=[0 x];y0=[y 0];
xmin=1/L10;ymin=1/L20;
disp('kvadrat - КООРДИНАТЫ ДОПУСТИМОГО РАБОЧЕГО ПРЯМОУГОЛЬНИКА НА ПЛОСКОСТИ: ')
kvadrat=[xmin ymin; 1 1]
disp('-----------------------------------------------------------------------')
kvadratx=[xmin 1 1 xmin xmin];
kvadraty=[1 1 ymin ymin 1];
x0min=[0 Tmin/c1];y0min=[Tmin/c2 0];
x0max=[0 Tmax/c1];y0max=[Tmax/c2 0];
% ГРАФИЧЕСКИЕПОСТРОЕНИЯ
figure(1);
plot(kvadratx,kvadraty,'linewidth',2), grid on, hold on,
plot(x0min,y0min,'m:','linew',3),
plot(x0max,y0max,'g:','linew',3),
plot(x0,y0,'r','linew',2),
plot(a,b,'r*','linew',2),
xlabel('\bf\alpha_1/L_1'),ylabel('\bf\alpha_2/L_2'),
text(0.05,1.3,'Look for Command Window of MATLAB'),
legend('Valid square','Tmin','Tmax','T','Random point'),
set(gcf,'color','w'),hold off
%----------------- ПРОВЕРКА РЕЗУЛЬТАТОВ -------------------------
if ALPHA1*c1/L1+ALPHA2*c2/L2==T
helpdlg('РЕЗУЛЬТАТЫ ВЕРНЫ')
else errordlg('РЕЗУЛЬТАТЫ НЕВЕРНЫ')
end
Результат сходится.
-
Написали программу выбора точки на полученной прямой времени Т (по 1-му пункту задания) в координатной плоскости α1/L1; α2/L2 (см. рис.1.2). Полученный код программы:
clear,clc,close all
disp('ВВЕДИТЕ ПАРАМЕТРЫ c1,c2,L10,L20 В КОМАНДНОЙ СТРОКЕ')
% АНАЛИЗ ВВОДА НОРМАТИВНОЙ ТРУДОЕМКОСТИ 1-Й ПОДСИСТЕМЫ В МИНУТАХ (ЧАСАХ)
c1=input('ВВЕДИТЕ c1: ');
if c1==0|c1<0|c1==inf|isreal(c1)==0
errordlg('ОШИБКА ВВОДА: c1 ДОЛЖНО БЫТЬ КОНЕЧНЫМ ДЕЙСТВИТЕЛЬНЫМ ЧИСЛОМ БОЛЬШЕ НУЛЯ!ПОВТОРИТЕ ВВОД')
c1=input('ВВЕДИТЕ c1: ');
ifc1==0|c1<0|c1==inf|isreal(c1)==0
errordlg(' ПОВТОРНАЯ ОШИБКА ВВОДА!ПРОГРАММА ПРЕРЫВАЕТСЯ')
break
end
end
%---------------------------------------------------------------------------------------------------------------------
% АНАЛИЗ ВВОДА НОРМАТИВНОЙ ТРУДОЕМКОСТИ 2-Й ПОДСИСТЕМЫ В МИНУТАХ (ЧАСАХ)
c2=input('ВВЕДИТЕ c2: ');
if c2==0|c2<0|c2==inf|isreal(c2)==0
errordlg('ОШИБКА ВВОДА: c2 ДОЛЖНО БЫТЬ КОНЕЧНЫМ ДЕЙСТВИТЕЛЬНЫМ ЧИСЛОМ БОЛЬШЕ НУЛЯ!ПОВТОРИТЕ ВВОД')
c2=input('ВВЕДИТЕ c2: ');
ifc2==0|c2<0|c2==inf|isreal(c2)==0
errordlg(' ПОВТОРНАЯ ОШИБКА ВВОДА!ПРОГРАММА ПРЕРЫВАЕТСЯ')
break
end
end
%-----------------------------------------------------------------------------------------------------------------
% ---------------------- АНАЛИЗ ВВОДА ЧИСЛА ЭВМ 1-Й ПОДСИСТЕМЫ -----------------------------------------------------
L10=input('ВВЕДИТЕ ДОПУСТИМОЕ ЧИСЛО ЭВМ 1-Й ПОДСИСТЕМЫ L10: ');
if L10==0|L10<0|isreal(L10)==0|L10-fix(L10)~=0
errordlg('ОШИБКА ВВОДА ЧИСЛО ЭВМ ДОЛЖНО БЫТЬ НАТУРАЛЬНЫМ ЧИСЛОМ И БОЛЬШЕ НУЛЯ.ПОВТОРИТЕ ВВОД')
L10=input('ВВЕДИТЕ ДОПУСТИМОЕ ЧИСЛО ЭВМ 1-Й ПОДСИСТЕМЫ L10: ');
if L10==0|L10<0|L10-fix(L10)~=0
errordlg('ПОВТОРНАЯ ОШИБКА ВВОДА ЧИСЛА ЭВМ.ПРОГРАММА ПРЕРЫВАЕТСЯ')
break
end
end
%----------------------- АНАЛИЗ ВВОДА ЧИСЛА ЭВМ 2-Й ПОДСИСТЕМЫ ---------------------------------------------------
L20=input('ВВЕДИТЕ ДОПУСТИМОЕ ЧИСЛО ЭВМ 2-Й ПОДСИСТЕМЫ L20: ');
if L20==0|L20<0|L20-fix(L20)~=0
errordlg('ОШИБКА ВВОДА: ЧИСЛО ЭВМ ДОЛЖНО БЫТЬ НАТУРАЛЬНЫМ ЧИСЛОМ БОЛЬШЕ НУЛЯ. ПОВТОРИТЕ ВВОД')
L10=input('ВВЕДИТЕ ДОПУСТИМОЕ ЧИСЛО ЭВМ 2-Й ПОДСИСТЕМЫ L20: ');
if L20==0|L20<0|L20-fix(L20)~=0
errordlg('ПОВТОРНАЯ ОШИБКА ВВОДА ЧИСЛА ЭВМ.ПРОГРАММА ПРЕРЫВАЕТСЯ')
break
end
end
% -------------------------- АНАЛИЗ ИНТЕРВАЛА ВРЕМЕНИ -----------------------------
disp('---------------------------------------------------------------------')
disp('Tmin - МИНИМАЛЬНО ДОПУСТИМОЕ ВРЕМЯ ОБРАБОТКИ ДАННЫХ')
Tmin=c1/L10+c2/L20
disp('Tmax - МАКСИМАЛЬНО ДОПУСТИМОЕ ВРЕМЯ ОБРАБОТКИ ДАННЫХ')
Tmax=c1+c2
disp('---------------------------------------------------------------------')
T0=input('ВВЕДИТЕ ВРЕМЯ ОБРАБОТКИ ДАННЫХ (T0) ');
if isempty(T0)==1|T0<=0|isreal(T0)==0|T0==inf
errordlg('ОШИБКА ВВОДА ВРЕМЕНИ ОБРАБОТКИ (Т0). ВРЕМЯ ДОЛЖНО БЫТЬ ДЕЙСТВИТЕЛЬНЫМ КОНЕЧНЫМ ЧИСЛОМ БОЛЬШЕ НУЛЯ. ПОВТОРИТЕ ВВОД')
T0=input('ВВЕДИТЕ ВРЕМЯ ОБРАБОТКИ ДАННЫХ (T0) ');
if isempty(T0)==1|T0<=0|isreal(T0)==0|T0==inf
errordlg('ПОВТОРНАЯ ОШИБКА ВВОДА ВРЕМЕНИ ОБРАБОТКИ.ПРОГРАММА ПРЕРЫВАЕТСЯ')
break
end
end
% ДОБАВИТЬ АНАЛИЗ ИНТЕРВАЛА ВРЕМЕНИ ОПЕРЕЖЕНИЯ
dT=input('ВВЕДИТЕ dT - ДОПУСТИМОЕ ОПЕРЕЖЕНИЕ НАЧАЛА РАБОТЫ 2-Й ПОДСИСТЕМЫ: ');
if isempty(dT)==1|dT<0|isreal(dT)==0|dT==inf
errordlg('ОШИБКА ВВОДА ВРЕМЕНИ dT, ВРЕМЯ ДОЛЖНО БЫТЬ ДЕЙСТВИТЕЛЬНЫМ КОНЕЧНЫМ ЧИСЛОМ НЕ МЕНЬШЕ НУЛЯ.ПОВТОРИТЕ ВВОД')
dT=input('ВВЕДИТЕ dT – ДОПУСТИМОЕ ОПЕРЕЖЕНИЕ НАЧАЛА РАБОТЫ 2-Й ПОДСИСТЕМЫ: ');
if isempty(dT)==1|dT<0|isreal(dT)==0|dT==inf
errordlg('ПОВТОРНАЯ ОШИБКА ВВОДА ВРЕМЕНИ ОПЕРЕЖЕНИЯ.ПРОГРАММАПРЕРЫВАЕТСЯ')
break
end
end
T=T0+dT;
if (T<Tmin|T>Tmax)
errordlg('ОШИБКА ВВОДА ИНТЕРВАЛА Т0+dT. ПОВТОРИТЕ ВВОД T0, dT')
T0=input('ВВЕДИТЕ T0 МЕЖДУ Tmin И Tmax ');
dT=input('ВВЕДИТЕ dT - ДОПУСТИМОЕ ОПЕРЕЖЕНИЕ НАЧАЛА РАБОТЫ 2-Й ПОДСИСТЕМЫ; T0+dT ДОЛЖНО БЫТЬ В ИНТЕРВАЛЕ (Tmin, Tmax): ');
if (T<Tmin|T>Tmax)
errordlg('ОШИБКА ВВОДА ИНТЕРВАЛА Т0+dT. ПРОГРАММА ПРЕРЫВАЕТСЯ')
break
end
end
%--------------------------- РАСЧЕТ ПАРАМЕТРОВ ---------------------------------
XL=1/L10; % ПРЕДЕЛ СЛЕВА, ПРЕДЕЛ СПРАВА=1
yy=(T-c1*XL)/c2;
ifyy>1
XL=(T-c2)/c1;
end
yy=1/L20;
XR=(T-c2*yy)/c1;
if XR>1
XR=1;
end
a=rand(1);
a=a*(XR-XL)+XL;
ALPHA1=0;
while ALPHA1 <1,
L1=rand(1);
L1=L1*(L10-1)+1;
L1=round(L1);
ALPHA1=a*L1;
end
b=(T-c1*a)/c2;
ALPHA2=0;
while ALPHA2 <1,
L2=rand(1);
L2=L2*(L20-1)+1;
L2=round(L2);
ALPHA2=b*L2;
end
%----------------- ЗНАЧЕНИЯ ПАРАМЕТРОВ -------------------------
disp('---------------------------------------------------------------------')
disp('L1 - НЕОБХОДИМОЕ ЧИСЛО КОМПЬЮТЕРОВ В 1-Й ПОДСИСТЕМЕ')
L1
disp('---------------------------------------------------------------------')
disp('L2 - НЕОБХОДИМОЕ ЧИСЛО КОМПЬЮТЕРОВ ВО 2-Й ПОДСИСТЕМЕ')
L2
disp('---------------------------------------------------------------------')
disp('---------------------------------------------------------------------')
disp('ALPHA1 - КОЭФФИЦИЕНТ НЕУЧТЕННЫХ ЗАТРАТ ВРЕМЕНИ В 1-Й ПОДСИСТЕМЕ:')
ALPHA1
disp('---------------------------------------------------------------------')
% L2
disp('ALPHA2 - КОЭФФИЦИЕНТ НЕУЧТЕННЫХ ЗАТРАТ ВРЕМЕНИ ВО 2-Й ПОДСИСТЕМЕ:')
ALPHA2
disp('---------------------------------------------------------------------')
%--------------------------------------------------------------
%------------------------------------------------------------------------------
x=T/c1;y=T/c2;
x0=[0 x];y0=[y 0];
xmin=1/L10;ymin=1/L20;
disp('kvadrat - КООРДИНАТЫ ДОПУСТИМОГО РАБОЧЕГО ПРЯМОУГОЛЬНИКА НА ПЛОСКОСТИ: ')
kvadrat=[xminymin; 1 1]
disp('-----------------------------------------------------------------------')
kvadratx=[xmin 1 1 xminxmin];
kvadraty=[1 1 yminymin 1];
x0min=[0 Tmin/c1];y0min=[Tmin/c2 0];
x0max=[0 Tmax/c1];y0max=[Tmax/c2 0];
%----------------- ПРОВЕРКА РЕЗУЛЬТАТОВ -------------------------
ifALPHA1*c1/L1+ALPHA2*c2/L2==T
helpdlg('РЕЗУЛЬТАТЫ ВЕРНЫ')
else errordlg('РЕЗУЛЬТАТЫ НЕВЕРНЫ')
end
%-----------------ВЫБОР ТОЧКИ НА ЗАДАННОЙ ПРЯМОЙ-----------------------
ymax=1;
xmax=1;
x1=(T-c2*ymax)/c1
if x1<xmin
x1=xmin
x2=(T-c2*ymin)/c1
if x2>xmax
x2=xmax
else x2=x2
end
else x1=x1
end
n=x1+(x2-x1)*rand(1)
m=(T-n*c1)/c2
disp('АБСЦИССА ВЫБРАННОЙ ТОЧКИ')
n
disp('ОРДИНАТА ВЫБРАННОЙ ТОЧКИ')
m
% ------------ГРАФИЧЕСКИЕПОСТРОЕНИЯ--------------------------
figure(1);
plot(kvadratx,kvadraty,'linewidth',2), grid on, hold on,
plot(x0min,y0min,'m:','linew',3),
plot(x0max,y0max,'g:','linew',3),
plot(x0,y0,'r','linew',2),
plot(a,b,'r*','linew',2),
plot(n,m,'b*','linew',2),
n=[n n 0];
m=[0 m m];
plot(n,m,'b:','linew',2),
xlabel('\bf\alpha_1/L_1'),ylabel('\bf\alpha_2/L_2'),
text(0.05,1.3,'Look for Command Window of MATLAB'),
legend('Valid square','Tmin','Tmax','T','Random point','Сhoice point'),
set(gcf,'color','w'),hold off
Задание 2:
-
Выбор точки в прямоугольнике задать в соответствии с номером компьютера: (0.9;0.85) — для 1-го компьютера, для остальных уменьшать по 0.1-0.2 (что позволяет для заданного диапазона Tmin, Tmax).
-
Проанализировать программу, объяснить полученные результаты.
-
Произвести проверку полученных результатов по формуле (1.1).
-
Произвести вывод диаграмм в одном графическом окне с разбивкой на два подокна.