Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лаб1

.docx
Скачиваний:
5
Добавлен:
11.02.2015
Размер:
479.29 Кб
Скачать

Мордовский государственный университет имени Н.П.Огарёва

Специальность: автоматизированные системы обработки информации

и управления

ЛАБОРАТОРНАЯ РАБОТА №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).

  • Произвести вывод диаграмм в одном графическом окне с разбивкой на два подокна.

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