на тему рефераты
 
Главная | Карта сайта
на тему рефераты
РАЗДЕЛЫ

на тему рефераты
ПАРТНЕРЫ

на тему рефераты
АЛФАВИТ
... А Б В Г Д Е Ж З И К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Э Ю Я

на тему рефераты
ПОИСК
Введите фамилию автора:


Курсовая работа: Технология строительства метрополитена


;

;

;

;

;

;

;

;

;

;

;

;

;

;

;

 - коэффициент Пуассона материала обделки, принимаемый равным 0.25 для бетонной и железобетонной,  0.23 - 0.27 - для чугунной и 0.3 - для остальных.

При определении области применения типовой тюбинговой обделки ствола на различное сочетание нагрузок , ,  следует построить паспорт прочности конструкции в координатах  - . Несущая способность конструкции будет обеспечена если комбинации нагрузок  ,  и  лежат в области, ограниченной нижними границами линий, характеризующих условия прочности по сжимающим и растягивающим напряжениям в спинке и ребре тюбинга и условия положительности нагрузок по формуле .

:

3.3. Расчет параметров и построение паспорта прочности несущей способности тюбинговых обделок вертикальных стволов метрополитенов.

 

Параметры паспорта несущей способности тюбинговой обделки, т.е. координаты точек пересечения линий с осями  и , определяются по формулам:

1. Железобетонная тюбинговая обделка:

  линия 1 - условие прочности по сжимающим напряжениям в ребре тюбинга:

;

;

  линия 2 - условие прочности по растягивающим напряжениям в ребре тюбинга:

;

;

  линия 3 - условие положительности нагрузок:

;

  линия 4 - условие прочности по сжимающим напряжениям в спинке тюбинга:

;

;

  линия 5 - условие прочности по растягивающим напряжениям в спинке тюбинга:

;

;

2. Чугунная тюбинговая обделка:

  линия 1 - условие прочности по сжимающим напряжениям в ребре тюбинга:

;

;

  линия 2 - условие прочности по растягивающим напряжениям в ребре тюбинга:

;

;

  линия 3 - условие положительности нагрузок:

;

  линия 4 - условие прочности по сжимающим напряжениям в спинке тюбинга:

;

;

  линия 5 - условие прочности по растягивающим напряжениям в спинке тюбинга:

;

;

Примечание: при построении паспортов прочности тюбинговых обделок можно использовать программу для ЭВМ, приведенную в приложении 1.

При  несущую способность железобетонных обделок конструкции ВНИИМШС, марка бетона 400 для стволов диаметром 4.5 - 8.0 м можно определить по паспортам прочности приведенным на листах 3 и 4.

При  несущую способность чугунных тюбинговых обделок конструкции Шахтспецстрой, чугун марки СЧ 12-28 для стволов диаметром 6.0 - 7.0 м можно определить по паспортам прочности приведенным на листе 4.

3.4. Проверка устойчивости тюбинговых обделок вертикальных стволов метрополитенов.

 

Проверку устойчивости обделки вертикальных стволов метрополитенов, т.е. способности сопротивляться выпучиванию в сторону ствола, производится исходя из условия:

;

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

4. Приложения

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

 

unit Calc1;

interface

uses

  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,

  Forms, Dialogs, DBTables, DB, DBFilter, Grids, DBGrids, StdCtrls,

  RXLookup, ExtCtrls, Buttons;

type

  TForm1 = class(TForm)

    Panel1: TPanel;

    Panel2: TPanel;

    rxDBLookupCombo1: TrxDBLookupCombo;

    Edit1: TEdit;

    Label1: TLabel;

    Label2: TLabel;

    Edit2: TEdit;

    Label3: TLabel;

    DBGrid1: TDBGrid;

    Label4: TLabel;

    TableSTUFF: TTable;

    DataSourceSTUFF: TDataSource;

    rxDBFilter1: TrxDBFilter;

    DataSourceDATA: TDataSource;

    TableDATA: TTable;

    TableDATAR: TFloatField;

    TableDATAMass: TFloatField;

    TableDATAR_press: TFloatField;

    TableDATAR_stretch: TFloatField;

    TableDATAPuasson: TFloatField;

    TableDATAR1: TFloatField;

    TableDATARb: TFloatField;

    TableDATAA: TFloatField;

    TableDATAB: TFloatField;

    TableDATAStuff: TSmallintField;

    BitBtn1: TBitBtn;

    RadioGroup1: TRadioGroup;

    RadioButton1: TRadioButton;

    RadioButton2: TRadioButton;

    RadioButton3: TRadioButton;

    procedure rxDBLookupCombo1Change(Sender: TObject);

    procedure DBGrid1DblClick(Sender: TObject);

    procedure RadioButton1Click(Sender: TObject);

    procedure RadioButton2Click(Sender: TObject);

    procedure RadioButton3Click(Sender: TObject);

    private

       { Private declarations }

    public

       { Public declarations }

end;

var

  Form1: TForm1;

implementation

uses

   Draw;

{$R *.DFM}

procedure TForm1.rxDBLookupCombo1Change(Sender: TObject);

var

  S: String;

begin

  rxDBFilter1.Deactivate;

  rxDBFilter1.Filter.Clear;

  s:='Stuff = '+TableSTUFF.FieldByName('Code').AsString;

  rxDBFilter1.Filter.Add(S);

  rxDBFilter1.Activate;

end;

procedure TForm1.DBGrid1DblClick(Sender: TObject);

var

  Mass, R_press, R_stretch, Puasson, PuassonP, R1, Rb, R, A, B: Double;

  P0, P2: Double;

  C1, C2: Double;

  K0, K1, K2, K3, K4: Double;

  L, L1: Double;

  ALFA1, ALFA2: Double;

  BETA, BETA1, BETA2: Double;

  DELTA1, DELTA2: Double;

  GAMMA1, GAMMA2: Double;

  D1, D2: Double;

  F: Double;

  SIGMARS, SIGMARR, SIGMASS, SIGMASR: Double;

  i: Integer;

  Pkr, PkrOld: Double;

  Eo, Ep, J: Double;

procedure Calc;

begin

    C1 := R1/Rb;

    C2 := R/R1;

    F := (C2*C2-1)/(C1*C1-1)*(C2*C2-1)/(C1*C1-1)*

         (C2*C2-1)/(C1*C1-1)*(1+B/A);

    D2 := (C2*C2+1)*(C2*C2+1)*(C2*C2+1)/(Puasson+1);

    D1 := (C1*C1-1)*(C1*C1-1)/(Puasson+1);

    DELTA2 := C2*C2*(C2*C2+1);

    DELTA1 := C2*C2*(3-C2*C2);

    GAMMA2 := C2*C2*(2*C2*C2*C2*C2+C2*C2+1);

    GAMMA1 := C2*C2*(3+C2*C2);

    BETA := (3+R/Rb*R/Rb)/(3-R/Rb*R/Rb);

    BETA2 := C2*C2*C2*C2*(C2*C2+1)-D2+F*(C1*C1+1+D1);

    BETA1 := 3*C2*C2-1-D2+F*((3-C2*C2)*C1*C1*C1*C1+D1);

    ALFA2 := C2*C2*(2+C2*C2+C2*C2*C2*C2)-          

             D2+F*(2*C1*C1*C1*C1+C1*C1+1+D1);

    ALFA1 := 3*C2*C2+1+D2+F*((C1*C1+3)*C1*C1*C1*C1-D1);

    K4 := (ALFA2*DELTA1-ALFA1*DELTA2)/(ALFA2*BETA1-ALFA1*BETA2);

    K3 := (ALFA1*GAMMA2-ALFA2*GAMMA1)/(ALFA2*BETA1-ALFA1*BETA2);

    K2 := (BETA2*DELTA1-BETA1*DELTA2)/(ALFA2*BETA1-ALFA1*BETA2);

    K1 := (BETA1*GAMMA2-BETA2*GAMMA1)/(ALFA2*BETA1-ALFA1*BETA2);

    L1 := 4*C2*C2*(C2*C2+1-BETA)-(K1+BETA*K2)*((C1*C1+1)*(C1*C1+1)

          +4*C2*C2)+2*(K3+BETA*K4)*((C2*C2+1)*(C2*C2+1)-2);

    L := (K1+BETA*K2)*(C1*C1+1)-(K3+BETA*K4);

    K0 := 3*C2*C2/((1+B/A)*(C2*C2-1)/(C1*C1-1)*(2+C1*C1)+2*C2*C2+1);

  end;

begin

  with TableDATA do begin

    Mass := FieldByName('Mass').AsFloat;

    R_press := FieldByName('R_press').AsFloat;

    R_stretch := FieldByName('R_stretch').AsFloat;

    Puasson := FieldByName('Puasson').AsFloat;

    R1 := FieldByName('R1').AsFloat;

    Rb := FieldByName('Rb').AsFloat;

    R := FieldByName('R').AsFloat;

    A := FieldByName('A').AsFloat;

    B := FieldByName('B').AsFloat;

  end;

  if RadioButton1.Checked then begin

    Calc;

    if TableDATA.FieldByName('Stuff').AsInteger = 0 {Железо-бетон} then begin

      PLines[isP0,1] := (C1*C1-1)*Mass*R_press/2*C1*C1*K0*(1+B/A);

      PLines[isP2,1] := (C1*C1-1)*(C1*C1-1)*

                        Mass*R_press/4*C1*C1*K0*(1+B/A);

      PLines[isP0,2] := -(C1*C1-1)*Mass*R_stretch/2*C1*C1*K0*(1+B/A);

      PLines[isP2,2] := (C1*C1-1)*(C1*C1-1)*

                        Mass*R_stretch/4*C1*C1*K0*(1+B/A);

      PLines[isP0,4] := (C2*C2-1)*Mass*R_press/(2*C2*C2-K0*

                        (C2*C2+1));

      PLines[isP2,4] := (C2*C2-1)*(C2*C2-1)*Mass*R_press/L1;

      PLines[isP0,5] := -(C2*C2-1)*

                        Mass*R_stretch/(2*C2*C2-K0*(C2*C2+1));

      PLines[isP2,5] := (C2*C2-1)*(C2*C2-1)*Mass*R_stretch/L1;

    end

    else begin         {Чугун}

      PLines[isP0,1] := (C1*C1-1)*Mass*R_press/2*C1*K0*(1+B/A);

      PLines[isP2,1] := (C2*C2-1)*(C2*C2-1)*

                        Mass*R_press/4*C1*C1*K0*(1+B/A);

      PLines[isP0,2] := -(C2*C2-1)*Mass*R_stretch/2*C1*K0*(1+B/A);

      PLines[isP2,2] := (C1*C1-1)*(C1*C1-1)*

                        Mass*R_stretch/4*C1*C1*K0*(1+B/A);

      PLines[isP0,4] := (C2*C2-1)*Mass*R_press/(2*C2*C2-K0*

                        (C2*C2+1));

      PLines[isP2,4] := (C2*C2-1)*(C2*C2-1)*Mass*R_press/L1;

      PLines[isP0,5] := -(C2*C2-1)*Mass*R_stretch/(2*C2*C2-K0*

                        (C2*C2+1));

      PLines[isP2,5] := (C2*C2-1)*(C2*C2-1)*Mass*R_stretch/L1;

    end;

    DrawForm.ShowModal;

  end

  else if RadioButton2.Checked then begin

    Calc;

    P0 := StrToFloat(Edit1.Text);

    P2 := StrToFloat(Edit2.Text);

    SIGMARS := ABS(2*C1*C1/(C1*C1-1)*(1+B/A)*(P0*K0+2*P2*L/

                  (C1*C1-1)));

    SIGMARR := ABS(2*C1*C1/(C1*C1-1)*(1+B/A)*(P0*K0-2*P2*L/

                  (C1*C1-1)));

    SIGMASS := ABS(P0/(C2*C2-1)*(2*C2*C2-K0*(C2*C2+1))+P2*L1/

                  (C2*C2-1)*(C2*C2-1));

    SIGMASR := ABS(P0/(C2*C2-1)*(2*C2*C2-K0*(C2*C2+1))-P2*L1/

                  (C2*C2-1)*(C2*C2-1));

    if (SIGMARS>Mass*R_press) or (SIGMARR>Mass*R_stretch) or

       (SIGMASS>Mass*R_press) or (SIGMASR>Mass*R_stretch)

    then

      MessageDlg('Несущая способность не

                  обеспечена',mtInformation,[mbOk],0)

    else

      MessageDlg('Несущая способность

                  обеспечена',mtInformation,[mbOk],0);

  end

  else begin

    i:=1;

    PkrOld :=0;

    repeat

      i := i+1;

      Pkr := (i*i-1)*Eo*J/((1-Puasson)*(1-Puasson)*R*R*R)+Ep/(2*

             (1+PuassonP))*((i+1)*(i+1)/(i*i*(i-1))+(i-1)*

             (i-1)/(i*i*(i+1)*(3-4*PuassonP)));

      if Pkr < PkrOld then PkrOld := Pkr else i:=0;

    until i = 0;

    P0 := StrToFloat(Edit1.Text);

    if P0<=Pkr then

       MessageDlg('Устойчивость обеспечена',mtInformation,[mbOk],0)

    else

       MessageDlg('Устойчивость не

                   обеспечена',mtInformation,[mbOk],0);

  end;

end;

procedure TForm1.RadioButton1Click(Sender: TObject);

begin

  Label2.Visible := False;

  Label3.Visible := False;

  Edit1.Visible := False;

  Edit2.Visible := False;

end;

procedure TForm1.RadioButton2Click(Sender: TObject);

begin

  Label2.Visible := True;

  Label3.Visible := True;

  Edit1.Visible := True;

  Edit2.Visible := True;

end;

procedure TForm1.RadioButton3Click(Sender: TObject);

begin

  Label2.Visible := True;

  Label3.Visible := False;

  Edit1.Visible := True;

  Edit2.Visible := False;

end;

end.

unit Draw;

interface

uses

  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics,  

  Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls;

type

     TDrawForm = class(TForm)

     BitBtn1: TBitBtn;

procedure FormActivate(Sender: TObject);

private

    { Private declarations }

public

    { Public declarations }

end;

  TPaintData = (isP0,isP2);

  TDiagramArray = Array[TPaintData,1..5] of Double;

var

  PLines : TDiagramArray;

  DrawForm: TDrawForm;

implementation

{$R *.DFM}

procedure TDrawForm.FormActivate(Sender: TObject);

var

  R: TRect;

  MaxX, MinX: Double;

  MaxY, MinY: Double;

  Nx, Ny: Integer;

  Kx, Ky: Double;

  i: Byte;

  PointMin, PointMax: Double;

procedure DrawLine(X0, k, b:Double);

begin

    Canvas.MoveTo(R.Left+60+Round(Kx*X0),R.Bottom-30);

    if k<0 then

      Canvas.LineTo(R.Left+60,Round(R.Bottom - 33 -  

                   (Ky*(b+(k*(10)/Kx)))))

    else

      Canvas.LineTo(R.Right-10,Round(R.Bottom - 33 -

                   (Ky*(-b+(k*((R.Right-R.Left-70)/Kx))))));

  end;

begin

  PLines[isP0,3] := 0;

  PLines[isP2,3] := 0;

  MaxX := 0.0;

  MinX := 0.0;

  MaxY := 0.0;

  MinY := 0.0;

  for i := 1 to 5 do begin

    if PLines[isP0,i] > MaxX then MaxX := PLines[isP0,i];

    if PLines[isP2,i] > MaxY then MaxY := PLines[isP2,i];

    if PLines[isP0,i] < MinX then MinX := PLines[isP0,i];

    if PLines[isP2,i] < MinY then MinY := PLines[isP2,i];

  end;

  if MaxX > 200 then Nx := 100 else Nx := 10;

   MaxX := Round(MaxX/Nx)*Nx+Nx;

  if MaxY > 200 then Ny := 100 else Ny := 10;

  MaxY := Round(MaxY/Ny)*Ny+Ny;

  with DrawForm do begin

    Canvas.Pen.Color := clBlack;

    R.Left := 10;

    R.Top := 10;

    R.Right := Width - 15;

    R.Bottom := Height - 70;

    Canvas.FrameRect(R);

    Canvas.Brush.Color := clBtnFace;

    Kx := (R.Right - R.Left - 80)/MaxX;

    Ky := (R.Bottom - R.Top - 80)/MaxY;

    {Ось Po}

    Canvas.MoveTo(R.Left+10,R.Bottom-30);

    Canvas.LineTo(R.Right-10,R.Bottom-30);

    {Ось P2}

    Canvas.MoveTo(R.Left+60,R.Top+30);

    Canvas.LineTo(R.Left+60,R.Bottom-30);

    i := 0;

    while i*Nx<MaxX do begin

      Inc(i);

      Canvas.MoveTo(R.Left+60+Round(Kx*i*Nx),R.Bottom-33);

      Canvas.LineTo(R.Left+60+Round(Kx*i*Nx),R.Bottom-27);

      Canvas.TextOut(R.Left+50+Round(Kx*i*Nx), R.Bottom-20,

                     IntToStr(i*Nx));

    end;

    i := 0;

    while i*Ny<MaxY do begin

      Inc(i);

      Canvas.MoveTo(R.Left+63,R.Bottom-30-Round(Ky*i*Ny));

      Canvas.LineTo(R.Left+57,R.Bottom-30-Round(Ky*i*Ny));

      Canvas.TextOut(R.Left+30, R.Bottom-35-Round(Ky*i*Ny),

                     IntToStr(i*Ny));

    end;

    if PLines[isP0,1] > PLines[isP0,4] then

      PointMax := PLines[isP0,4]

    else PointMax := PLines[isP0,1];

    if PLines[isP0,2] > PLines[isP0,5] then

      PointMin := PLines[isP0,2]

    else PointMin := PLines[isP0,5];

    if PointMin < 0 then PointMin := 0.0;

    DrawLine(PLines[isP0,1],

             -(PLines[isP2,1]/PLines[isP0,1]),PLines[isP2,1]);

    DrawLine(PLines[isP0,2],

             -(PLines[isP2,2]/PLines[isP0,2]),PLines[isP2,2]);

    DrawLine(0,1,0);

    DrawLine(PLines[isP0,4],

             -(PLines[isP2,4]/PLines[isP0,4]),PLines[isP2,4]);

    DrawLine(PLines[isP0,5],

             -(PLines[isP2,5]/PLines[isP0,5]),PLines[isP2,5]);

    Canvas.Brush.Color := clGreen;

    Canvas.FloodFill(Round((((PointMax-PointMin)/2)*Kx)+R.Left+60),

                     R.Bottom-55, clBlack, fsBorder);

    Canvas.Brush.Color := clBtnFace;

    Canvas.TextOut(R.Right-80, R.Bottom-50, 'P0, TC/M*2');

    Canvas.TextOut(R.Left+20, R.Top+10, 'P2, TC/M*2');

  end;

end;

end.

unit Edittub;

interface

uses

  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics,   

  Controls,Forms, Dialogs, DBFilter, DB, DBTables, Grids, DBGrids, 

  RXLookup, ExtCtrls, DBCtrls;

type

    TEditDataForm = class(TForm)

    Panel1: TPanel;

    rxDBLookupCombo1: TrxDBLookupCombo;

    TableSTUFF: TTable;

    DataSourceSTUFF: TDataSource;

    DBGrid1: TDBGrid;

    DataSourceDATA: TDataSource;

    TableDATA: TTable;

    TableDATAMass: TFloatField;

    TableDATAR_press: TFloatField;

    TableDATAR_stretch: TFloatField;

    TableDATAPuasson: TFloatField;

    TableDATAR1: TFloatField;

    TableDATARb: TFloatField;

    TableDATAR: TFloatField;

    TableDATAA: TFloatField;

    TableDATAB: TFloatField;

    rxDBFilter1: TrxDBFilter;

    TableDATAStuff: TSmallintField;

    DBNavigator1: TDBNavigator;

   procedure rxDBLookupCombo1Change(Sender: TObject);

   procedure DBNavigator1Click(Sender: TObject; Button:

                               TNavigateBtn);

   procedure DBGrid1DblClick(Sender: TObject);

private

    { Private declarations }

public

    { Public declarations }

end;

var

  EditDataForm: TEditDataForm;

implementation

{$R *.DFM}

uses

   EditForm;

procedure TEditDataForm.rxDBLookupCombo1Change(Sender: TObject);

var

  S: String;

begin

  rxDBFilter1.Deactivate;

  rxDBFilter1.Filter.Clear;

  s:='Stuff = '+TableSTUFF.FieldByName('Code').AsString;

  rxDBFilter1.Filter.Add(S);

  rxDBFilter1.Activate;

end;

procedure TEditDataForm.DBNavigator1Click(Sender: TObject; Button:

                                          TNavigateBtn);

begin

  case Button of

    nbInsert:

      begin

        EditDataTub(TableDATA, True,

                    TableSTUFF.FieldByName('Code').AsInteger);

      end;

    nbEdit:

      begin

        EditDataTub(TableDATA, False,

                    TableSTUFF.FieldByName('Code').AsInteger);

      end;

  end;

end;

procedure TEditDataForm.DBGrid1DblClick(Sender: TObject);

begin

  EditDataTub(TableDATA, False,

              TableSTUFF.FieldByName('Code').AsInteger);

end;

end.

unit Editform;

interface

uses

  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics,

  Controls, Forms, Dialogs, StdCtrls, Mask, DBCtrls, ExtCtrls, DB,  

  DBTables, Buttons;

type

    TEdTubForm = class(TForm)

    DataSource1: TDataSource;

    Panel1: TPanel;

    DBEdit1: TDBEdit;

    Label1: TLabel;

    Label2: TLabel;

    Label3: TLabel;

    DBEdit2: TDBEdit;

    DBEdit3: TDBEdit;

    Label4: TLabel;

    Label5: TLabel;

    Label6: TLabel;

    DBEdit4: TDBEdit;

    DBEdit5: TDBEdit;

    DBEdit6: TDBEdit;

    Label7: TLabel;

    DBEdit7: TDBEdit;

    Label8: TLabel;

    Label9: TLabel;

    Panel2: TPanel;

    Panel3: TPanel;

    DBEdit8: TDBEdit;

    DBEdit9: TDBEdit;

    BitBtn1: TBitBtn;

    BitBtn2: TBitBtn;

    Table1: TTable;

    Label10: TLabel;

    DBText1: TDBText;

    DataSource2: TDataSource;

    Query1: TQuery;

    Query1Material: TStringField;

procedure FormCreate(Sender: TObject);

public

    FCode: Integer;

    function EditTub( Table: TTable; IsNew: Boolean; Code: Integer):

                      Boolean;

  end;

var

  EdTubForm: TEdTubForm;

Страницы: 1, 2, 3, 4, 5


на тему рефераты
НОВОСТИ на тему рефераты
на тему рефераты
ВХОД на тему рефераты
Логин:
Пароль:
регистрация
забыли пароль?

на тему рефераты    
на тему рефераты
ТЕГИ на тему рефераты

Рефераты бесплатно, реферат бесплатно, курсовые работы, реферат, доклады, рефераты, рефераты скачать, рефераты на тему, сочинения, курсовые, дипломы, научные работы и многое другое.


Copyright © 2012 г.
При использовании материалов - ссылка на сайт обязательна.