Cách vẽ biểu đồ bode bằng tay
Giới thiệu
Bài viết này sẽ hướng dẫn xử lý và lọc sơ bộ tín hiệu trước khi tính toán và vẽ giản đồ Bode. Giả sử tiến hành khảo sát hệ thống với thời gian lấy mẫu 0.01s, tín hiệu ngõ vào và ngõ ra đo được có dạng như trong bảng dưới. Sau mỗi lần khảo sát, dữ liệu được lưu vào file data.mat. Sau nhiều lần các dữ liệu được lưu vào file data1.mat, data2.mat … Các file dữ liệu mẫu download ở cuối bài viết.Kiểm tra dữ liệu
Dùng hàm plot để vẽ đồ thị tín hiệu thô, qua đó có đánh gia sơ bộ% Tien Anh% https://bmshop.vnload('data1.mat') % import datatimes = data(:,1); % timesfigure(1);grid onhold onplot(times,data(:,2),'-r'); % inputplot(times,data(:,3),'-b'); % outputKết quả:

Tín hiệu thô
Bộ lọc butterworth
Giới thiệu bộ lọc butterworth: (đang cập nhật)
load('data1.mat') % import datatimes = data(:,1); % times% su dung ham dtrend de offset data% Minh chua ro doan nay laminput=dtrend(data(:,2),3);output=dtrend(data(:,3),3);% Minh chua ro cach dung bo loc butter = butter(3,0.2);input_filted = filter(B,A,input);output_filted = filter(B,A,output);figure(3);grid onhold onplot(times,input_filted,'-r',times,output_filted,'-b');Kết quả:

Tín hiệu sau khi lọc
Vẽ giản đồ Bode
%% Plot bode from experimental data - version 0.5% Author: Tien Anh% Info: https://bmshop.vn% Info: Matlab 2014a%%clc;clear all;points_bode = <0 0 0>;% vong lap ve cho 9 mau du lieufor idx=1:9 filename=sprintf('data%s.mat',num2str(idx)); Data = importdata(filename); times = Data(:,1); t_sampling = Data(2,1)-Data(1,1); % Sampling time %% Offset data input=dtrend(Data(:,2),3); output=dtrend(Data(:,3),3); %% Butterworth Filter