- θ là vị trí cơ học của motor T L là quán tính tải (N.m).
7. Tổng quan phần mềm 1 Giới thiệu
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
49
Trước khi thực hiện hệ thống phần cứng thực tế, chúng ta có thể mô phỏng các mô hình hệ thống trong MATLAB với các yếu tố đầu vào cần thiết để đạt được mức độ mong muốn kiểm soát và kết quả. Trong MATLAB đầu tiên của tất cả chúng ta có thể mô phỏng các hệ thống vòng lặp mở để kiểm tra theo không tải điều kiện cũng như điều kiện tải. Sau đó, mô phỏng điều khiển vòng khép kín của mô hình hệ thống với PD kiểm soát. Để thực hiện các bộ lọc Kalman trong hệ thống đầu tiên chúng ta có thể mô phỏng với thời gian thực ,để thực hiện trong phần cứng thực tế, sử dụng thực hiện với bộ lọc Kalman thời gian rời rạc và thời gian mở rộng rời rạc , để tìm thấy giá trị trạng thái ổn định đạt được EKF trong MATLAB. Ngoài ra, chúng tôi cần phải điều chỉnh thời gian lấy mẫu trong MATLAB bằng cách tính toán thời gian lấy mẫu trong hệ thống thời gian thực để có được các giá trị được Kalman. Để thực hiện các thuật toán thực tế trong PIC16F877 chúng tôi sử dụng ngôn ngữ C. Các thuật toán tổng thể này có thể được chia thành hai phần chính: khởi tạo và thời gian chạy các mô-đun như hình vẽ sau. Các module khởi tạo xác định và khởi tạo các biến phần mềm, các hằng số và các thanh ghi cụ thể, thanh ghi hẹn giờ, thanh ghi kết quả chính, thanh ghi địa chỉ phụ, và các thanh ghi giao tiếp nối tiếp. Một số những thanh ghi này có thể được định nghĩa lại trong các mô đun cụ thể nếu các mô-đun thuật toán được sử dụng. Các hằng số phần mềm và các biến chưa được khởi tạo phần mềm có thể được định nghĩa trong phần này hoặc khởi tạo của mỗi mô-đun. Các mô-đun thời gian chạy không liên quan đến phần chưa khởi động trừ khi nó là cần thiết. Khởi tạo của mã này sẽ được gọi là một lần vào đầu của chương trình. Vì vậy, các địa chỉ bắt đầu của mã khởi tạo phải được xác định rõ ràng và việc xử lý mã phải bắt đầu từ thời điểm này. Mã thời gian chạy được tạo ra ở dạng các mô-đun chức năng. Kỹ thuật này mô đun được ưu tiên để gỡ lỗi mã một cách dễ dàng. Hơn nữa, các mô-đun có thể được thử nghiệm riêng lẻ trước khi xây dựng các mã chính. Trong các ứng dụng điều khiển động cơ sử dụng PWM được sử dụng, thời gian chạy mô-đun bao gồm các thuật toán điều khiển tổng thể, cảm biến thời gian thực, và các lệnh chuyển đổi cuối cùng, được đồng bộ hóa. Ngoài ra, đồng bộ hóa của thời gian PWM là quan trọng đối với độ chính xác của dòng điện trên điện trở cảm biến. Chúng tạo ra các tín hiệu PWM để tạo ra sin và cô sin sóng đầu vào bằng cách sử dụng các bảng tra cứu mỗi lần chúng nhận được một ngắt. Sử dụng đo lường dòng qua một đầu vào tương tự mỗi lần chúng nhận được một ngắt. Chúng tôi thực hiện các mô-đun chức năng tính toán góc "," cập nhật trạng thái "," cập nhật trạng thái sử dụng Kalman sau "," PD kiểm soát của động cơ bước "và" giao tiếp nối tiếp ". Ở đây trong thời gian chạy mô-đun thực hiện "tính toán góc" và "cập nhật trạng thái " mô-đun chức năng cho thời gian lấy mẫu cố định và sau đó thực hiện " cập nhật trạng thái bằng cách sử dụng Kalman sau" và "kiểm soát PD" một lần để tạo ra các lệnh chuyển đổi cuối cùng về việc thay đổi tần số của động cơ. Bằng cách thay đổi tần số, chúng ta có thể thay đổi các đầu vào điều khiển mà điều chỉnh dòng điện của động cơ và chúng ta có thể thay đổi hoặc kiểm soát tốc độ của động cơ
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
50
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
51
7.2. Mã Matlab dùng cho mạch kín:
%%---kalman_Psird.m---%%
%%--Kalman filter used in mixed method---%%
function [sys,x0,str,ts] =