14
1 MC LC ĐỀ S1...................................................................................................................... 2 1. Xây dng hàm truyền và phương trình sai phân của h. ..................................... 2 2. Code chương trình với ngôn ngC# ................................................................... 3 3. In kết quđường cong quá độ............................................................................ 10 4. So sánh kết quvi phn mm Matlab. ............................................................. 12 5. In kết quy[k] .................................................................................................... 13 6. Các chtiêu chất lượng ca hthng ................................................................. 13 7. Nhn xét ............................................................................................................. 14 8. Tài liu tham kho ............................................................................................. 14

Mhhmp Bao Cao

Embed Size (px)

DESCRIPTION

mhhmp

Citation preview

  • 1

    MC LC

    S 1 ...................................................................................................................... 2

    1. Xy dng hm truyn v phng trnh sai phn ca h. ..................................... 2

    2. Code chng trnh vi ngn ng C# ................................................................... 3

    3. In kt qu ng cong qu ............................................................................ 10

    4. So snh kt qu vi phn mm Matlab. ............................................................. 12

    5. In kt qu y[k] .................................................................................................... 13

    6. Cc ch tiu cht lng ca h thng ................................................................. 13

    7. Nhn xt ............................................................................................................. 14

    8. Ti liu tham kho ............................................................................................. 14

  • 2

    S 1

    1. Xy dng hm truyn v phng trnh sai phn ca h. Ta c hm truyn kn ca h thng l:

    () =

    11 + 1

    2

    2 + 1

    1 +1. 2. 3

    (1 + 1)(2 + 1)

    =12

    (1 + 1)(2 + 1) + 123

    () =12

    122 + (1 + 2) + 123 + 1

    Thay =2

    .

    1

    +1 vo hm W(s) ta c:

    () =12. (

    2 .

    1 + 1)

    12. (2 .

    1 + 1)

    2

    + (1 + 2) (2 .

    1 + 1) + 123 + 1

    () =12

    2( + 1)2

    412( 1)2 + (123 + 1)2( + 1)2 + 2(1 + 2)( + 1)( 1)

    Bin i v dng:

    ()

    ()=

    122(2 + 2 + 1)

    2 + +

    Trong :

  • 3

    = 41 2 + 2(1 + 2) + (123 + 1)2

    = 81 2 + 22(123 + 1)

    = 41 2 2(1 + 2) + (123 + 1)2

    Az2Y(z) + BzY(z) + CY(z) = K1K2T2 [z2U(z) + 2zU(z) + U(z)]

    Dng tnh cht dch hm gc c bin i Z ta tm c phng trnh sai phn tng

    ng:

    AY[k+2] + BY[k+1] + CY[k] = K1K2T2 (U[k+2] + 2 U[k+1] + U[k]) V tn hiu vo l tn hiu nhy cp U(t) = 1(t) nn ta c:

    U[k+2] = U[k+1] = U[k] = 1

    AY[k+2] + BY[k+1] + CY[k] = 4K1K2T2

    Y[k+2] = (4K1K2T2 BY[k+1] CY[k]) /A

    T ta c cng thc tnh cc gi tr p ng y(t) nh sau:

    y[0] = y[1] = 0;

    y[k+2] = (4K1K2T2 By[k+1] Cy[k]) /A;

    k=0, 1, 2999; A, B, C l cc hng s tnh trn.

    2. Code chng trnh vi ngn ng C# using System;

    using System.Collections.Generic;

    using System.ComponentModel;

    using System.Data;

    using System.Drawing;

    using System.Drawing.Drawing2D;

    using System.Linq;

    using System.Text;

    using System.Threading.Tasks;

    using System.Windows.Forms;

    namespace test

    {

    public partial class Form1 : Form

  • 4

    {

    private Graphics graph;

    private int x0, y0, xMax, yMax; // ta gc O, xMax, yMax

    private int min, max;

    private int delta_x=30;

    private int delta_y=30; // lch trc ta khi v

    private double dx, x, y;

    private float x1, y1, x2, y2;

    private bool OnDinh = true;

    private float K1, K2, K3, T1, T2, T; //thng s u vo

    private float Tmin;

    private float ymax, yod, x_ymax, Tod, Tmax, xicma; //Thng s u ra cn tnh ton

    private int x_Tod; // Xc nh ta ca Tod;

    private float unit_x, unit_y; // chia v th

    private float A, B, C;

    public Form1()

    {

    InitializeComponent();

    graph = DrawArea.CreateGraphics();

    xMax = DrawArea.Width;

    yMax = DrawArea.Height;

    x0 = 0;

    y0 = DrawArea.Height;

    }

    private void button1_Click(object sender, EventArgs e)

    {

    int sopt = 1000;

    graph.Clear(Color.White);

    float[] y = new float[sopt];

    PointF[] pnt = new PointF[sopt];

    Pen blackPen = new Pen(Color.Black, 1);

    Pen redPen = new Pen(Color.Red, 1);

    Pen greenPen = new Pen(Color.Green, 3);

    int index = 0;

    for (int i = 0; i < 100; i++)

    {

    // 100 ch s im y[k] cn in ra.

    comboBox_item.Items.Add(index);

  • 5

    index += 10;

    }

    listBox1.Items.Clear(); // phi xa rng listbox mi ln cp nht li th

    // Kim tra nhp thng s hp l hay khng

    if (float.TryParse(textBoxK1.Text, out K1) && float.TryParse(textBoxK2.Text, out K2)

    && float.TryParse(textBoxT2.Text, out T2) && float.TryParse(textBoxT1.Text, out T1) &&

    float.TryParse(textBoxT.Text, out T)

    && float.TryParse(textBoxT2.Text, out K3))

    {

    if (T1 < T2) { Tmin = T1/20; }

    else { Tmin = T2 / 20; }

    if (T > Tmin)

    { MessageBox.Show("Xin nhp li chu k trich mu T, T

  • 6

    for (int j = 0; j pnt

    float toado_x = +j * T;

    float toado_y = y[j];

    pnt[j].X = (float)(delta_x + toado_x * unit_x);

    //nhn vi chia full mn hnh

    pnt[j].Y = (float)( y0 - toado_y * unit_y - delta_y);

    if (j % 10 == 0)

    { //Ly 4 ch s sau du phy

    int tmp = (int)(y[j] * Math.Pow(10, 4));

    float _item = (float)(tmp / Math.Pow(10, 4));

    listBox1.Items.Add(_item); // C 10 phn t th thm y[] vo listbox

    }

    // listBox1.DataSource = y; add c mng y

    // listBox1.Items.Add(y[0]); add tng phn t

    }

    VeTrucToaDo(); // V trc ta

    graph.DrawLines(greenPen, pnt); // V th

    // V vch chia honh

    Font f = new Font("Tahoma", 12);

    Brush b = new SolidBrush(Color.Red);

    float chi_so = 0;

    for (int i = 0; i < 10; i++)

    { chi_so += 100;

    graph.DrawLine(blackPen, delta_x + chi_so * T * unit_x, y0 - delta_y - 3, delta_x + chi_so

    * T * unit_x, y0 - delta_y + 3);

    graph.DrawString(chi_so.ToString(), f, b, delta_x + (chi_so - 15) * T * unit_x, y0 - 20);

    }

    if (OnDinh)

    {

    //==============Tnh thi gian h thng bt u n nh

    int k = 999;

    do

    {

    Tod = k * T; // Thi gian n nh

    --k;

    x_Tod = k;

    }

    while ((Math.Abs((y[k] - y[999]) / y[999]) = x_ymax));

    k = 999;

    do

    { --k; }

    while (Math.Abs((y[k] - (1 / K2)) / (1 / K2))

  • 7

    yod = 0;

    for (int i = k; i < 1000; i++)

    {

    yod += y[i];

    }

    yod = yod / (999 - k + 1);

    xicma = Math.Abs(ymax - yod) * 100 / yod;

    Tmax = x_ymax * T;

    // a ra cc thng s u ra

    textBoxHT.Text = "n nh";

    textBoxTod.Text = Tod.ToString();

    textBoxYod.Text = yod.ToString();

    textBoxTmax.Text = Tmax.ToString();

    textBoxYmax.Text = ymax.ToString();

    textBoxxicma.Text = xicma.ToString();

    // V ging ta ca ymax

    float toa_do_x = delta_x;

    float toa_do_y = y0 - ymax * unit_y - delta_y;

    do

    {

    graph.DrawLine(blackPen, toa_do_x, y0 - ymax * unit_y - delta_y, toa_do_x + 3, y0 -

    ymax * unit_y - delta_y); //giong ngang

    toa_do_x += 6;

    } while (toa_do_x

  • 8

    toa_do_x += 6;

    } while (toa_do_x

  • 9

    graph.DrawLine(p, delta_x, y0 - delta_y, xMax - 2, y0 - delta_y);//truc hoanh

    graph.DrawLine(p, delta_x, 4, delta_x, yMax - delta_y);//truc tung

    MuiTen(graph, new Pen(Color.Black), new PointF((float)(xMax - 2.5), (float)(y0 - delta_y)), new

    PointF((float)(xMax - 2), (float)(y0 - delta_x))); //mui ten Ox

    MuiTen(graph, new Pen(Color.Black), new PointF((float)delta_y, (float)0), new

    PointF((float)delta_y, (float)(-2.5))); //mui ten Oy

    VeOXY();

    }

    //============================================//

    private void VeOXY()

    { Font f = new Font("Tahoma", 12);

    Brush b = new SolidBrush(Color.Black);

    graph.DrawString("O", f, b, x0, y0 - delta_y);

    graph.DrawString("T", f, b, xMax - 20, y0 - 18);

    graph.DrawString("Y", f, b, x0 + 3, 5);

    }

    //============================================//

    public static void MuiTen(Graphics graphics, Pen p, PointF diemDau, PointF diemCuoi)

    { Pen myPen = new Pen(Color.Black);

    myPen.Width = 5;

    myPen.EndCap = LineCap.ArrowAnchor;

    PointF endPoint = new PointF((diemDau.X + diemCuoi.X) / 2, (diemDau.Y + diemCuoi.Y) / 2);

    graphics.DrawLine(myPen, diemDau, endPoint);

    }

    private void listBox1_SelectedIndexChanged(object sender, EventArgs e)

    { // a ch s ca y ra comboBox

    comboBox_item.Text = ((listBox1.SelectedIndex) * 10).ToString();

    }

    private void comboBox_item_SelectedIndexChanged(object sender, EventArgs e)

    {

    listBox1.SelectedIndex =int.Parse(comboBox_item.Text ) /10;

    }

    }

    }// END OF PROGRAM

  • 10

    Giao din chnh ca chng trnh:

    3. In kt qu ng cong qu ng vi b thng s:

    Ta c ng cong qu nh sau:

  • 11

    Trc x th hin gi tr T (1000 ln chu k trich mu).

    Trc y th hin gi tr ca y(t) theo T.

  • 12

    4. So snh kt qu vi phn mm Matlab. S simulink:

    ng cong qu thu c qua Matlab

    Nhn xt:

    th thu c bng chng trnh m phng c dng ging vi th m

    phng bi Matlab. Nh vy, nu b qua sai s khng th trnh khi trong qu trnh

    m phng, chng ta c th kim chng c phng php tm phng trnh sai phn

    ca h thng, v tnh ton ca chng trnh m phng l ng.

  • 13

    5. In kt qu y[k]

    In ra mn hnh kt qu y[k], cch 10 s in 1 ln

    S dng listbox a ra 100 gi tr, c 10 gi tr th add phn t vo listbox.

    comboBox cha ch s k ca y[k] trong listbox, listbox v comboBox tham chiu

    n nhau.

    V d: y y[160] = 0.667

    6. Cc ch tiu cht lng ca h thng Cc ch tiu cht lng ca h thng c tnh ton t ng trong giap din

    chnh ca chng trnh, ph thuc vo b tham s u vo.

  • 14

    Nu h thng n nh, textbox H thng s a ra thng bo n nh, ng

    thi cc ch tiu cht lng c a ra cc tng ng.

    Nu h thng khng n nh, textbox H thng s a ra thng bo khng

    n nh, cc ch tiu a ra thng bo N/A

    (Tnh n nh ca h thng c nh gi theo tiu chun Hurwitz)

    V d: Vi b thng s u vo nh phn trn, h thng l n nh vi cc ch tiu

    nh sau:

    7. Nhn xt Vi b thng s T1, T2, K1, K2, K3, T ph hp, h thng s n nh. Cn chn thi

    gian trch mu T nh hn hoc bng 1/10 min(T1, T2). Cc thng s trn u phi

    khc 0.

    ng cong xut pht t gc ta , vt ln ti gi tr Ymax ti thi im Tmax,

    dao ng xung quanh gi tr Yod. Gi tr vt qu ti a so vi Yod l h (%).

    n thi gian Tod, h n nh, ch dao ng trong phm vi 5% xung quanh gi

    tr Yod.

    8. Ti liu tham kho [1] Nguyn Cng Hin, Nguyn Phm Thc Anh, M hnh ha h thng v m

    phng, NXB Khoa hc v K thut, 2006

    [2] http://msdn.microsoft.com/ , C# Tutorials, truy nhp ln cui 10/04/2014

    [3] http://congdongcviet.com/ , din n C#, truy nhp ln cui 10/04/2014