Tải bản đầy đủ - 0 (trang)
TÀI LIỆU THAM KHẢO

TÀI LIỆU THAM KHẢO

Tải bản đầy đủ - 0trang

Kết luận và hướng phát triển đề tài



PHỤ LỤC



Trang 53



Kết luận và hướng phát triển đề tài



Trang 54



Kết luận và hướng phát triển đề tài



Chương trình nguồn chính form2

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Threading;

using System.Data.OleDb;

using System.Runtime.InteropServices;

using System.Diagnostics;

namespace power_control_UMTS

{

public partial class Form2 : DevExpress.XtraBars.Ribbon.RibbonForm

{

public Form2()

{

InitializeComponent();

}

public delegate void Getdata(double dt0,double dt1,double dt2,double dt3,double

dt4,double dt5);

public double R, Powbs, Ims_bs, Ibs_bs, It,Ith, SIRbd,SIRtarget,Powms,TS;

public double siroptmax, siroptmin, sirmax, sirmin, betamax, betamin;

public double testP3gpp, testPdsspc, testPaspc, testSIR3gpp, testSIRdsspc,

testSIRaspc;

public double sizemin, sizemax, ACF, AF,DF;

public double[] TPC=new double[150000];

public double powdsspc, powaspc,sirdsspc,siraspc,I12,I144,I384;

public int channel, l, select, testfr2, dau;

public int[] N = new int[101];

public string[] erl = new string[101];

public double[] nhieu = new double[100];

public double tam,t3gpp,tdsspc,taspc,Achuan;

public double[] tInh1=new double[100000];

public double[] tInh2=new double[100000];

public double[] tInh3=new double[100000];

private void Form2_Load(object sender, EventArgs e)

{

comboBoxEx1.Items.Add("12.2 kbps cho thoại");

comboBoxEx1.Items.Add("144 kbps cho real time data");

comboBoxEx1.Items.Add("384 kbps cho non real time data");

groupControl1.Hide();

groupControl2.Hide();

groupControl3.Hide();

groupControl4.Hide();

textEdit19.Text = "3.84";

}

private void barStaticItem1_ItemClick(object sender,

DevExpress.XtraBars.ItemClickEventArgs e)

{

Form1 present = new Form1();

present.Show();

}



Trang 55



Kết luận và hướng phát triển đề tài



private void comboBoxEx1_SelectedIndexChanged(object sender, EventArgs e)

{

Random Pms = new Random();

Random tnhieuran = new Random();

Random ttu = new Random();

Random tmau = new Random();

select= comboBoxEx1.SelectedIndex;

if (select == 0)

{

Achuan = 0.025;

R = 12.2;

//MS

textEdit1.Text = "21";

textEdit2.Text = "0";

textEdit3.Text = "3";

textEdit21.Text = "5";

//BS

textEdit12.Text = "-174";

textEdit11.Text = "5";

textEdit10.Text = "3";

textEdit9.Text = "18";

textEdit8.Text = "2";

textEdit4.Text = "4";

textEdit6.Text = "7.3";

textEdit7.Text = "3";

textEdit23.Text = "0.67";

textEdit24.Text = "0.65";

textEdit25.Text = "8";

textEdit5.Text = Convert.ToString(Pms.Next(1, int.Parse(textEdit1.Text) - 19));



}

else

{

if (select == 1)

{

Achuan = 0.05;

R = 144;

textEdit1.Text = "24";

textEdit2.Text = "2";

textEdit3.Text = "0";

textEdit21.Text = "1.5";

//BS

textEdit12.Text = "-174";

textEdit11.Text = "5";

textEdit10.Text = "3";

textEdit9.Text = "18";

textEdit8.Text = "2";

textEdit4.Text = "4";



textEdit6.Text = "4.2";

textEdit7.Text = "2";

textEdit23.Text = "1";

textEdit24.Text = "0.65";

textEdit25.Text = "15";

textEdit5.Text = Convert.ToString(Pms.Next(2, int.Parse(textEdit1.Text) - 20));

}

else

{



Trang 56



Kết luận và hướng phát triển đề tài



Achuan = 0.075;

select = 2;

R = 384;

textEdit1.Text = "24";

textEdit2.Text = "2";

textEdit3.Text = "0";

textEdit21.Text = "1";

//BS

textEdit12.Text = "-174";

textEdit11.Text = "5";

textEdit10.Text = "3";

textEdit9.Text = "18";

textEdit8.Text = "2";

textEdit4.Text = "4";

textEdit6.Text = "7.3";

textEdit7.Text = "0";

textEdit23.Text = "1";

textEdit24.Text = "0.65";

textEdit25.Text = "0";

textEdit5.Text = Convert.ToString(Pms.Next(3, int.Parse(textEdit1.Text) - 19));



}

}

simpleButton2.Enabled = false;

simpleButton3.Enabled = false;

simpleButton4.Enabled = false;

for (int k = 0; k < l; k++)

{

tInh1[k] = Ith + tnhieuran.Next(-10, 10) * Math.Sin(ttu.Next(0, 255));

tInh2[k] = Ith + tnhieuran.Next(-7, 7) * Math.Sin(ttu.Next(0, 255));

tInh3[k] = Ith + tnhieuran.Next(-5, 5) * Math.Sin(ttu.Next(0, 255));

}

}

private void barButtonItem2_ItemClick(object sender,

DevExpress.XtraBars.ItemClickEventArgs e)

{

groupControl1.Show();

groupControl2.Show();

groupControl3.Show();

groupControl4.Show();

}



private void simpleButton1_Click(object sender, EventArgs e)

{

if (select == 0 && int.Parse(textEdit26.Text) > 80)

MessageBox.Show("Số User Maximum là 80. Vui lòng nhập lại!", "Cảnh báo",

MessageBoxButtons.OK, MessageBoxIcon.Warning);

else

if (select == 1 && int.Parse(textEdit26.Text) > 11)

MessageBox.Show("Số User Maximum là 11. Vui lòng nhập lại giá trị!", "Cảnh

báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);

else

if (select == 2 && int.Parse(textEdit26.Text) > 6)

MessageBox.Show("Số User Maximum là 6. Vui lòng nhập lại giá trị!", "Cảnh

báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);

else

{



Trang 57



Kết luận và hướng phát triển đề tài



//EIRRPmax

textEdit13.Text = Convert.ToString(int.Parse(textEdit1.Text) +

int.Parse(textEdit2.Text) - int.Parse(textEdit3.Text));

//Công suất nhiễu BS

textEdit14.Text = Convert.ToString(Math.Round(int.Parse(textEdit11.Text) +

int.Parse(textEdit12.Text) + 10 * Math.Log10(3840000), 2));

//Độ lợi xử lý PG

textEdit22.Text = Convert.ToString(Math.Round(10 * Math.Log10(3840 / R),

2));

//Độ nhạy máy thu

textEdit15.Text = Convert.ToString(float.Parse(textEdit14.Text) +

float.Parse(textEdit10.Text) - float.Parse(textEdit22.Text) + float.Parse(textEdit21.Text));

//maximum pathloss

textEdit16.Text = Convert.ToString(Math.Round(float.Parse(textEdit13.Text)

+ float.Parse(textEdit9.Text) - float.Parse(textEdit8.Text) - float.Parse(textEdit4.Text) float.Parse(textEdit15.Text), 2));

//suy hao cho phép

textEdit17.Text = Convert.ToString(float.Parse(textEdit16.Text) +

float.Parse(textEdit7.Text) - float.Parse(textEdit6.Text) - float.Parse(textEdit25.Text));

// Công suất thu được ở BS

double phu = Math.Round(float.Parse(textEdit17.Text), 0);

Random lp = new Random();

float suyhao12, suyhao144, suyhao384, suyhao;

suyhao12 = lp.Next(100, Convert.ToInt32(phu));

suyhao144 = lp.Next(100, Convert.ToInt32(phu) - 20);

suyhao384 = lp.Next(90, 100);

if (select == 0)

suyhao = suyhao12;

else

if (select == 1)

suyhao = suyhao144;

else suyhao = suyhao384;

Powbs = Math.Round(float.Parse(textEdit5.Text) + float.Parse(textEdit2.Text)

- float.Parse(textEdit3.Text) - suyhao + float.Parse(textEdit9.Text) float.Parse(textEdit8.Text), 2);

tam = float.Parse(textEdit2.Text) - float.Parse(textEdit3.Text) - suyhao +

float.Parse(textEdit9.Text) - float.Parse(textEdit8.Text);

//lưu lượng của N user

string A;

A = (Achuan * float.Parse(textEdit26.Text)).ToString();

// phan truy cap data access

try

{

int i = 1;

OleDbConnection con = new OleDbConnection();

con.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source

=./erlangB.mdb";

con.Open();

OleDbCommand comm = new OleDbCommand();

comm.Connection = con;

comm.CommandText = "SELECT * FROM gos22;";

OleDbDataReader read = comm.ExecuteReader();

while (read.Read())

{

N[i] = read.GetInt32(0);

erl[i] = read.GetString(1);

i = i + 1;

}



Trang 58



Kết luận và hướng phát triển đề tài



con.Close();

con.Dispose();

read.Close();

read.Dispose();

}

catch (Exception ex)

{

MessageBox.Show(ex.Message);

}

int j;

float t, k;

for (j = 1; j <= 101; j++)

{

t = float.Parse(erl[j]);

k = float.Parse(A);

if (t >= k)

{

channel = N[j];

textEdit20.Text = channel.ToString();

break;

}

}

// nhiễu của các MS ở cùng BTS

Ims_bs = Powbs + 10 * Math.Log10(channel - 1) + 10 *

Math.Log10(float.Parse(textEdit23.Text)) - 10 * Math.Log10(3840000);

// nhiễu giao thoa ở các trạm di động thuộc BTS khác

Ibs_bs = Ims_bs + 10 * Math.Log10(1 / float.Parse(textEdit24.Text) - 1);

// nhiễu tổng của MS

It = 10 * Math.Log10(Math.Pow(10, 0.1 * Ims_bs) + Math.Pow(10, 0.1 *

Ibs_bs));

// tổng hợp thêm nhiễu nhiệt

Ith = Math.Round(10 * Math.Log10(Math.Pow(10, 0.1 * It) + Math.Pow(10,

0.1 * -169)), 2);

// Tính SIR ban đầu

SIRbd = Math.Round(float.Parse(textEdit22.Text) + Powbs - Ith - 10 *

Math.Log10(3840000) - 30, 3);

// Tính SIR target

SIRtarget = float.Parse(textEdit21.Text) - float.Parse(textEdit22.Text);

textEdit20.Text = SIRtarget.ToString();

Powms = float.Parse(textEdit5.Text);

//

progressBar1.Minimum = 0;

//và chỉ cho phép nấc này chạy đến giá trị tối đa là 2000 sử dụng thuộc tính

Maximum

//khởi tạo giá trị ban đầu cho progress bar sử thuộc tính Value

progressBar1.Value = 0;

//khoảng tăng giữa các nấc trong ProgressBar

Random nhieuran = new Random();

Random tu = new Random();

Random mau = new Random();

double Inh;

l = int.Parse(textEdit18.Text);

progressBar1.Maximum = l;

progressBar1.Step = 1;



Trang 59



Kết luận và hướng phát triển đề tài



sirmax = SIRtarget +2 ;

sirmin = SIRtarget - 2;

siroptmax = SIRtarget + Math.Abs(SIRtarget/100);

siroptmin = SIRtarget - Math.Abs(SIRtarget / 100);

betamax = 2;

betamin = 0.5;

powaspc = Powbs;

powdsspc = Powbs;

sirdsspc = SIRbd;

siraspc = SIRbd;

I12 = Ith;

I144 = Ith;

I384 = Ith;

ACF = 10;

DF = 1;

TPC[0] = 1;

sizemin = 0.5;

sizemax = 2;

//lấy lại các tham số cho tính time

testP3gpp = Powbs;

testPdsspc = Powbs;

testPaspc = Powbs;

testSIR3gpp = SIRbd;

testSIRdsspc = SIRbd;

testSIRaspc = SIRbd;



for (int s = 0; s < l; s++)

{

progressBar1.PerformStep();

// tính theo 3gpp1

if (SIRbd < SIRtarget)

{

Powbs = Powbs + 1;

}

else

{

Powbs = Powbs - 1;

}

// tính theo dsspc

if (sirdsspc > sirmax)

powdsspc = powdsspc - betamax;

else

{

if (siroptmax < sirdsspc && sirdsspc <= sirmax)

powdsspc = powdsspc - betamin;

else

{

if (siroptmin <= sirdsspc && sirdsspc <= siroptmax)

powdsspc = powdsspc + 0;

else

{

if (sirmin <= sirdsspc && sirdsspc < siroptmin)



Trang 60



Kết luận và hướng phát triển đề tài



powdsspc = powdsspc + betamin;

else

{

if (sirdsspc < sirmin)

powdsspc = powdsspc + betamax;

}

}



}



}

if (siraspc < SIRtarget)

{

TPC[s + 1] = 1;

dau = 1;

}

else

{

TPC[s + 1] = 0;

dau = -1;

}

DF = DF - Math.Abs(TPC[s + 1] - TPC[s]) + 1;

AF = Math.Min(Math.Max((ACF + DF) / ACF, sizemin), sizemax);

powaspc = powaspc + AF * dau;

OleDbConnection con2 = new OleDbConnection();

con2.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source =./SIR.mdb";

con2.Open();

DataTable objtable = new DataTable("abc");

OleDbDataAdapter adap = new OleDbDataAdapter("select * from bangSIR", con2);

adap.Fill(objtable);

DataRow row = objtable.NewRow();

row["TS"] = s;

row["SIR3GPP"] = SIRbd.ToString();

row["Pt3GPP"] = (Powbs - tam).ToString();

row["SIRDSSPC"] = sirdsspc.ToString();

row["PtDSSPC"] = (powdsspc - tam).ToString();

row["SIRNASPC"] = siraspc.ToString();

row["PtNASPC"] = Math.Round((powaspc - tam), 1).ToString();

objtable.Rows.Add(row);

OleDbCommand comm2 = new OleDbCommand();

comm2.Connection = con2;

comm2.CommandType = CommandType.Text;

comm2.CommandText = "Insert into bangSIR values

(@TS,@SIR3GPP,@Pt3GPP,@SIRDSSPC,@PtDSSPC,@SIRNASPC,@PtNASPC)";

comm2.Parameters.Add("@TS", OleDbType.Integer, 20, "TS");

comm2.Parameters.Add("@SIR3GPP", OleDbType.VarChar, 20, "SIR3GPP");

comm2.Parameters.Add("@Pt3GPP", OleDbType.VarChar, 20, "Pt3GPP");

comm2.Parameters.Add("@SIRDSSPC", OleDbType.VarChar, 20, "SIRDSSPC");

comm2.Parameters.Add("@PtDSSPC", OleDbType.VarChar, 20, "PtDSSPC");

comm2.Parameters.Add("@SIRNASPC", OleDbType.VarChar, 20, "SIRNASPC");

comm2.Parameters.Add("@PtNASPC", OleDbType.VarChar, 20, "PtNASPC");

// comm2.ExecuteNonQuery();

adap.InsertCommand = comm2;

adap.Update(objtable);

// suyhao = lp.Next(100, Convert.ToInt32(phu));



Trang 61



Kết luận và hướng phát triển đề tài



if (select == 0)

{

Inh = Ith + nhieuran.Next(-10, 10) * Math.Sin(tu.Next(0, 255));

SIRbd = Math.Round(float.Parse(textEdit22.Text) + Powbs - Inh - 10 *

Math.Log10(3840000) - 30, 3);

sirdsspc = Math.Round(float.Parse(textEdit22.Text) + powdsspc - Inh - 10 *

Math.Log10(3840000) - 30, 3);

siraspc = Math.Round(float.Parse(textEdit22.Text) + powaspc - Inh - 10 *

Math.Log10(3840000) - 30, 3);

}

else

{

if (select == 1)

{

Inh = Ith + nhieuran.Next(-7, 7) * Math.Sin(tu.Next(0, 255));

SIRbd = Math.Round(float.Parse(textEdit22.Text) + Powbs - Inh - 10 *

Math.Log10(3840000) - 30, 3);

sirdsspc = Math.Round(float.Parse(textEdit22.Text) + powdsspc - Inh - 10 *

Math.Log10(3840000) - 30, 3);

siraspc = Math.Round(float.Parse(textEdit22.Text) + powaspc - Inh - 10 *

Math.Log10(3840000) - 30, 3);

}

else

{

if (select == 2)

{

Inh = Ith + nhieuran.Next(-5, 5) * Math.Sin(tu.Next(0, 255));

SIRbd = Math.Round(float.Parse(textEdit22.Text) + Powbs - Inh - 10 *

Math.Log10(3840000) - 30, 3);

sirdsspc = Math.Round(float.Parse(textEdit22.Text) + powdsspc - Inh - 10 *

Math.Log10(3840000) - 30, 3);

siraspc = Math.Round(float.Parse(textEdit22.Text) + powaspc - Inh - 10 *

Math.Log10(3840000) - 30, 3);

}



}



}

con2.Close();

con2.Dispose();

}

if (progressBar1.Value == l)

MessageBox.Show("Đã hoàn thành 100% ... Please press OK", "Thông

báo", MessageBoxButtons.OK, MessageBoxIcon.Information);

testfr2 = 0;

simpleButton2.Enabled = true;

simpleButton3.Enabled = true;

simpleButton4.Enabled = true;

}



}



private void barStaticItem1_ItemClick_1(object sender,

DevExpress.XtraBars.ItemClickEventArgs e)

{

Form1 back = new Form1();



Trang 62



Kết luận và hướng phát triển đề tài



back.Show();

this.Hide();

}

private void simpleButton2_Click(object sender, EventArgs e)

{

Random Pms = new Random();

textEdit5.Text = Convert.ToString( Pms.Next(8 , int.Parse(textEdit1.Text)-8));

}

private void barButtonItem4_ItemClick(object sender,

DevExpress.XtraBars.ItemClickEventArgs e)

{

testfr2 = 1;

TS = int.Parse(textEdit18.Text);

Form3 frm = new Form3();

Getdata data = new Getdata(frm.layData);

data(TS, SIRtarget,double.Parse(textEdit1.Text),t3gpp,tdsspc,taspc);

// frm.Show();

Form2 fr1 = new Form2();

frm.Show();

fr1.Hide();

}

private void barButtonItem1_ItemClick_1(object sender,

DevExpress.XtraBars.ItemClickEventArgs e)

{

DialogResult result = new DialogResult();

result = MessageBox.Show("Bạn muốn xóa data của File SIR access !", "Thơng báo",

MessageBoxButtons.YesNo, MessageBoxIcon.Stop);

if (result == DialogResult.Yes)

{

OleDbConnection con2 = new OleDbConnection();

con2.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source

=./SIR.mdb";

con2.Open();

OleDbCommand objcommand = new OleDbCommand();

objcommand.Connection = con2;

objcommand.CommandType = CommandType.Text;

objcommand.CommandText = "Delete From bangSIR ";

objcommand.ExecuteNonQuery();

con2.Close();

con2.Dispose();

con2 = null;

}

}

private void barButtonItem6_ItemClick(object sender,

DevExpress.XtraBars.ItemClickEventArgs e)

{

if (testfr2 != 1)

MessageBox.Show("Chức năng này chỉ có thể thực hiện khi đã mở Open form",

"Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);

}



Trang 63



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

TÀI LIỆU THAM KHẢO

Tải bản đầy đủ ngay(0 tr)

×