Лабораторные работы Вычислительные системы
1 1 1 1 1 1 1 1 1 1 Рейтинг 0.00 (0 Голоса)

Лабораторная работа по дисциплине «Вычислительные системы» на тему «Выбор оптимального быстродействия процессора ЦУС»

Цель работы.

Освоение методики расчета оптимального быстродействия процессора цифровой управляющей системы при ограничениях на время отработки сигналов и коэффициент простоя процессора.

Постановка задачи.

Составить программу для ПЭВМ расчета оптимального быстродействия процессора по алгоритму, описанному в разделе 12.3, и для заданного варианта исходных данных произвести расчет и построить графики зависимости штрафа и оптимального быстродействия от параметра .

Блок-схема алгоритма оптимизации

Блок-схема алгоритма оптимизации

Вариант задания

Вар.

b0,

w*,

10h*

Ù, с-1

q, Моп

q(2), Моп2

у.е/с

с

 

l1

l2

l3

q1

q2

q3

q1(2)

q2(2)

q3(2)

22

10

2

2

1

1

1

2

3

10

5

10

90

Расчетные данные

Для выполнения данной лабораторной работы была разработана программа в среде программирования Delphi 5.0, листинг и результаты работы которой приведены в приложении А и приложении Б, соответственно.

Выводы.

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

Приложение А. Листинг программы.

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

Grids, StdCtrls, Spin, ExtCtrls, ComCtrls, TeEngine, Series, TeeProcs,

Chart, Buttons, Menus, ExtDlgs;

type

TForm1 = class(TForm)

private

{ Private declarations }

public

{ Public declarations }

Function B0Cmin(a:integer):Real;

end;

Type

pReal =^Real;

var

Form1: TForm1;

B1,B2:Real;

B0:Real;

Beta:Real;

W:Real;

Nu:Real;

Lambda:Real;

r, r1:Real;

arrLambda:array[0..2] of pReal;

arrTeta:array[0..2] of pReal;

arrTeta2:array[0..2] of pReal;

implementation

{$R *.DFM}

procedure TForm1.SpeedButton1Click(Sender: TObject);

var

i:integer;

begin

Memo1.Clear;

Beta :=strtofloat(stringgrid1.rows[1].strings[0]);

Nu :=strtofloat(stringgrid1.rows[1].strings[2]);

W :=strtofloat(stringgrid1.rows[1].strings[1]);

Lambda:=0;

r:=0;

r1 :=0;

for i:=0 to 2 do

begin

new(arrLambda[i]);

new(arrTeta[i]);

new(arrTeta2[i]);

arrLambda[i]^ :=strtofloat(stringgrid1.cells[i+3,1]);

arrTeta[i]^ :=strtofloat(stringgrid1.cells[i+6,1]);

arrTeta2[i]^ :=strtofloat(stringgrid1.cells[i+9,1]);

Lambda :=Lambda+arrLambda[i]^;

r :=r +arrLambda[i]^*arrTeta[i]^;

r1 :=r1 +arrLambda[i]^*arrTeta2[i]^;

end;

B1 :=r/(1-Nu);

B2 :=r/2+sqrt(r*r/4+r1/(2*W));

if B1<B2 then messageDlg('Решения НЕТ!!!',mtWarning,[mbOK],0)

end;

procedure TForm1.N4Click(Sender: TObject);

begin

Close

end;

procedure TForm1.SpeedButton2Click(Sender: TObject);

var

i:integer;

b_:real;

begin

b_ :=0;

Chart1.Series[0].Clear;

Chart1.Series[1].Clear;

memo1.Lines. Clear;

if (arrLambda[0]<>nil)and(spinedit3.Text<>'') then

begin

for i:=0 to spinEdit3.Value do

begin

b_ :=B0Cmin(i);

Chart1.Series[0].AddXY (i, b_);

Chart1.Series[1].AddXY (i, B0*3);

memo1.Lines. Add (format('a=%d; B0=%.4f; Cmin=%.4f;',[i, B0,b_]));

end;

end;

end;

procedure TForm1.N3Click(Sender: TObject);

var

FName :String;

begin

if savedialog1.Execute then

begin

FName :=savedialog1.FileName;

if pos('.mt',FName)=0 then FName:=FName+'.mt';

stringgrid1.Rows[1].SaveToFile (FName);

end;

end;

procedure TForm1.N2Click(Sender: TObject);

var

FName :String;

begin

if opendialog1.Execute then

begin

FName :=opendialog1.FileName;

if pos('.mt',FName)=0 then FName:=FName+'.mt';

stringgrid1.Rows[1].LoadFromFile (FName);

end;

end;

procedure TForm1.N8Click(Sender: TObject);

var fname:string;

begin

if svPicdlg. Execute then

begin

fname :=svpicdlg. FileName;

delete(fname, pos('.',fname),length(fname)-pos('.',fname)+1);

case svPicDlg. FilterIndex of

1: begin fname:=fname+'.emf'; Chart1.SaveToMetafileEnh(fname) end;

2: begin fname:=fname+'.wmf'; Chart1.SaveToMetafile(fname);end;

end;

end;

end;

procedure TForm1.SpeedButton3Click(Sender: TObject);

var

n:String;

begin

if Savedialog2.Execute then

begin

n:=savedialog2.FileName;

delete(n, pos('.txt',n),length(n)-pos('.txt',n)+1);

n:=n+'.txt';

memo1.Lines. SaveToFile (n);

end;

end;

procedure TForm1.FormCreate(Sender: TObject);

const

SArr:array [0..11] of String = ('beta','w*','nu*', 'lambda1','lambda2','lambda3','teta1','teta2','teta3', 'teta21','teta22','teta23'

);

var i:integer;

begin

for i:=0 to 11 do StringGrid1.Rows[0].Strings [i] :=SArr[i];

opendialog1.InitialDir :=extractfiledir(application. ExeName);

savedialog1.InitialDir := opendialog1.InitialDir;

end;

procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);

begin

if key ='.' then Key :=',';

if key =#13 then

with StringGrid1 do

begin

if Col= ColCount -1 then Col :=0

else Col :=Col+1

end;

if not (Key in ['0'..'9',#08,',']) then key :=#0;

end;

function TForm1.B0Cmin(a: integer): Real;

function C(B:Real):Real;

begin

C:=Beta*(1-r/B+a*r1*Lambda/(2*B*(B-r)))

end;

var

CB1,CB2:Real;

begin

B0 :=r+0.5*(a*Lambda*r1+sqrt(a*Lambda*r1*(2*r*r+a*Lambda*r1)))/r;

if (B2>B0)or(B0>B1) then

begin

CB1 :=C(B1);

CB2 :=C(B2);

if CB1<CB2 then B0 :=B1 else B0 :=B2;

end;

Result :=C(B0)

end;

end.

Приложение Б. Результаты работы программы


Результаты работы программы

Значения B0 и Сmin на каждом шаге

a=0; B0=16,5830; Cmin=0,9546;

a=1; B0=18,7500; Cmin=24,4000;

a=2; B0=18,7500; Cmin=46,8000;

a=3; B0=18,7500; Cmin=69,2000;

a=4; B0=18,7500; Cmin=91,6000;

a=5; B0=18,7500; Cmin=114,0000;

a=6; B0=18,7500; Cmin=136,4000;

a=7; B0=18,7500; Cmin=158,8000;

a=8; B0=18,7500; Cmin=181,2000;

a=9; B0=18,7500; Cmin=203,6000;

a=10; B0=18,7500; Cmin=226,0000;

Добавить комментарий


Защитный код
Обновить

По темам:

История Украины

Культурология

Высшая математика

Информатика

Охотоведение

Статистика

География

Военная наука

Английский язык

Генетика

Разное

Технологиеские темы

Украинский язык

Филология

Философия

Химия

Экология

Социология

Физическое воспитание

Растениевосдство

Педагогика

История

Психология

Религиоведение

Плодоводство

Экономические темы

Бухгалтерские темы

Маркетинг

Иностранные языки

Ветеринарная медицина

Технические темы

Землеустройство

Медицинские темы

Творчество

Лесное и парковое хозяйство

Агрономия

Преподавателям

Юридические темы

Google