1. Trang chủ
  2. » Luận Văn - Báo Cáo

Dùng máy tính khảo sát trình độ hệ điều khiển tự động u cầu: Chương trình viết ngơn ngữ C/C++

17 3 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 17
Dung lượng 485,36 KB

Nội dung

MỤC LỤC ĐỀ BÀI: Dùng máy tính khảo sát trình độ hệ điều khiển tự động u cầu: Chương trình viết ngơn ngữ C/C++,visual,VB,matlab, Cho phép người dùng nhập tham số T1,T2,T3,K1,K2,K3, Cho phép người dùng nhập bước cắt mẫu T Hiển thị đường cong độ trục có khắc tọa độ để đánh giá tính ổn định hệ thống Thể tiêu ymax , δmax (%), yod,Tmax ,Tod… đồ thị In hình 100 điểm y[k] ( 10 điểm in giá trị) 1.XẬY DỰNG HÀM TRUYỀN-THIẾT LẬP PHƯƠNG TRÌNH SAI PHÂN Hàm truyền kín hệ thống là: Thay vào hàm W(s) ta có: Biến đổi dạng: Trong đó:  Az2Y(z) + BzY(z) + CY(z) = K1K2T2 [z2U(z) + 2zU(z) + U(z)] Dùng tính chất dịch hàm gốc biến đổi Z ta tìm phương trình sai phân tương ứng:  AY[k+2] + BY[k+1] + CY[k] = K1K2T2 (U[k+2] + U[k+1] + U[k]) Vì tín hiệu vào tín hiệu nhảy cấp U(t) = 1(t) nên ta có: U[k+2] = U[k+1] = U[k] =  AY[k+2] + BY[k+1] + CY[k] = 4K1K2T2  Y[k+2] = (4K1K2T2 – BY[k+1] – CY[k]) /A Từ ta có cơng thức tính giá trị đáp ứng y(t) sau: y[0] = y[1] = 0; y[k+2] = (4K1K2T2 – By[k+1] – Cy[k]) /A; k=0, 1, 2…999; A, B, C số tính 2.CODE CHƯƠNG TRÌNH MƠ PHỎ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 { private Graphics graph; private int x0, y0, xMax, yMax; // tọa độ gốc O, xMax, yMax private int min, max; private int delta_x=30; private int delta_y=30; // độ lệch trục tọa độ vẽ private double dx, x, y; private float x1, y1, x2, y2; private bool OnDinh = true; private float K1, K2, K3, T1, T2, T; //thông số đầu vào private float Tmin; private float ymax, yod, x_ymax, Tod, Tmax, xicma; //Thơng số đầu cần tính toán private int x_Tod; // Xác định tọa độ Tod; private float unit_x, unit_y; private float A, B, C; // Độ chia để vẽ đồ thị 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 số điểm y[k] cần in comboBox_item.Items.Add(index); index += 10; } listBox1.Items.Clear(); // phải xóa rỗng listbox lần cập nhật lại đồ thị // Kiểm tra nhập thông số hợp lệ hay không 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 nhập lại chu kỳ trich mẫu T, T

Ngày đăng: 23/12/2022, 16:05

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w