You are on page 1of 32

ĐẠI HỌC BÁCH KHOA HÀ NỘI

TRƯỜNG ĐIỆN – ĐIỆN TỬ

ĐỒ ÁN I
Permanent Split Capacitor Single-Phase
Induction Motors

Giảng viên hướng dẫn : Nguyễn Thanh Sơn


Họ và tên sinh viên : Vũ Hùng Dũng
Mã số sinh viên : 20217834
Mã lớp học : 737903

Lớp học : Kỹ thuật điện 01 - K66

Ha Noi, ngày 6 tháng 1 năm 2024


I. Khởi động động cơ một pha bằng tụ ................................................................................................... 3
1. Giới thiệu. ....................................................................................................................................... 3
2. Ước tính thông số động cơ .............................................................................................................. 4
2.1. Ước tính tham số cuộn dây chính ............................................................................................ 4
a. Test DC. .................................................................................................................................. 4
b. Test không tải. ........................................................................................................................ 4
c. Test rôto bị khóa..................................................................................................................... 6
2.2. Ước tính tham số cuộn dây phụ trợ .......................................................................................... 7
a. Test DC ................................................................................................................................... 7
b. Test không tải. ........................................................................................................................ 8
c. Kiểm tra rôto bị khóa ............................................................................................................. 8
3. Xác nhận thử nghiệm ................................................................................................................... 10
II. Tính toán kết quả trên matlab-simulink .......................................................................................... 11
Phần I: Mô hình thử nghiệm động cơ khởi động bằng tụ khi cấp nguồn xoay chiều....................... 11
1. Tính toán điện áp hiệu dụng và đồ thị ...................................................................................... 12
2. Tính toán dòng điện hiệu dụng và vẽ đồ thị .............................................................................. 13
3. Tính toán công suất biểu kiến, công suất tiêu thụ và hệ số công suất ....................................... 15
4. Tính độ méo hài ........................................................................................................................ 16
Phần II: Mô phỏng khởi động động cơ bằng nguồn xoay chiều dạng sóng vuông........................... 20
Kết Luận ........................................................................................................................................... 23
Phần III: Thực hiện code vi điều khiển stm32f411vet6 đo dòng điện và điện áp trên động cơ xoay
chiều một pha ................................................................................................................................... 24
Tài liệu tham khảo................................................................................................................................ 32

2|Page
I. Khởi động động cơ một pha bằng tụ
1. Giới thiệu.
So với động cơ cảm ứng ba pha, động cơ cảm ứng một pha (SPIMs) có nhiều ưu
điểm hơn, thường được sử dụng cho mục đích thương mại và dân cư. Ngoài ra,
động cơ một pha còn đơn giản trong thiết kế, giá rẻ, đáng tin cậy cùng với dễ sửa
chữa và bảo trì. Do những điều này ưu điểm của SPIMs là có thể tìm thấy trong
nhiều thiết bị gia dụng khác nhau như máy hút bụi, quạt, máy giặt, máy bơm ly
tâm, máy thổi, máy giặt, v.v. Thông thường, SPIMs là được thiết kế với cuộn dây
chính và cuộn dây phụ như trên Hình 1. Tụ điện phân SPIMs được thiết kế gắn với
một rôto và hai cuộn dây là cuộn dây chính và cuộn dây phụ. Tụ điện được mắc
mắc nối tiếp với cuộn dây phụ để khởi động động cơ. Trong cả điều kiện khởi động
và điều kiện chạy, tụ điện luôn được nối trong mạch. Mạch tương đương của SPIM
động cơ và tụ điện được hiển thị trong Hình 1.

Hình 1: Mạch tương đương của động cơ cảm ứng một pha có tụ điện vĩnh cửu.

Hình 2: Mạch tương đương cuộn dây Hình 3: Mạch tương đương cuộn dây phụ.
chính.

3|Page
Các mạch tương đương của cuộn dây chính và cuộn dây phụ thể hiện trên Hình 2
và Hình 3 với các thông số sau:

𝑅𝑠𝑚 : Điện trở của cuộn dây chính


𝑚
𝑋𝑙𝑠 : Điện kháng của cuộn dây chính
𝑚
𝑋𝑠 :Điện kháng tự cảm của cuộn dây chính
𝑅𝑟𝑚 :Điện trở của cuộn dây rôto quy về cuộn dây chính
𝑅𝑠𝑎 : Điện trở của cuộn dây phụ
𝑎
𝑋𝑙𝑠 : Điện kháng rò rỉ của cuộn dây phụ
𝑎
𝑋𝑠 : Điện kháng tự cảm của cuộn dây phụ
𝑎
𝑋𝑙𝑟 : Độ tự cảm rò rỉ của cuộn dây rôto quy về cuộn dây phụ
𝑎
𝑅𝑟 : Điện trở của cuộn dây rôto quy về cuộn dây phụ.
𝑅𝑐𝑟 : Khả năng chống mất lõi

SPIMs có những ưu điểm sau:


 Không cần công tắc ly tâm.
 Có thể đạt được hiệu quả cao.
 Vì tụ điện được mắc cố định trong mạch nên hệ số công suất cũng
cao.

2. Ước tính thông số động cơ

2.1. Ước tính tham số cuộn dây chính


Để ước tính các thông số của mạch tương đương của động cơ, cần thực hiện các
phép thử sau:
 Test DC
 Test không tải
 Test rôto bị khóa

a. Test DC.
Bước này được thực hiện bằng cách sử dụng đồng hồ vạn năng để đo trực tiếp
điện trở của cuộn dây chính 𝑅𝑠𝑚 .

b. Test không tải.


Rôto được quay với tốc độ gần như đồng bộ và độ trượt xấp xỉ với một giá trị nhỏ.
𝑚 𝑚
Trong thử nghiệm này, điện áp hiệu dụng đầu cực 𝑉𝑁𝐿 , dòng điện hiệu dụng 𝐼𝑁𝐿 ,
𝑚 𝑚
công suất tác dụng 𝑃𝑁𝐿 , công suất phản kháng 𝑄𝑁𝐿 phải được đo.
Các giả định sau đây cũng được đưa ra:
 Khả năng chống tổn hao lõi 𝑅𝑐𝑟 đủ lớn để loại bỏ.
4|Page
 Vì tốc độ trượt s rất nhỏ nên số hạng 𝑅𝑙𝑠𝑚
/2s có thể được coi là rất
lớn bị loại bỏ.
 Khả năng tự phản kháng của cuộn dây chính 𝑋𝑠𝑚 lớn hơn nhiều so
𝑚 𝑚 𝑚
với độ rò rỉ của rôto điện kháng 𝑋𝑙𝑟 (𝑋𝑆 >> 𝑋𝑙𝑟 ).
 Khả năng tự phản kháng của cuộn dây chính 𝑋𝑠 cũng lớn hơn nhiều
𝑚

so với điện trở rôto gọi cuộn dây chính 𝑅𝑟𝑚 (𝑋𝑆𝑚 >> 𝑅𝑟𝑚 ).

Mạch tương đương cuộn dây chính ở thử nghiệm không tải được thể hiện trên Hình
4.

Hình 4: Mạch tương đương cuộn dây chính trong thử nghiệm không tải.

𝑚
Trong mạch ở Hình 4, tổng điện kháng nối tiếp của mạch 𝑋𝑁𝐿 được cho bởi:

Trong đó:
 𝑉𝑁𝐿
𝑚
là giá trị hiệu dụng của điện áp đặt vào cuộn dây chính ở thử
nghiệm không tải.
 𝐼𝑁𝐿
𝑚
là giá trị hiệu dụng của dòng điện cuộn dây chính ở thử nghiệm
không tải.

 𝑃𝑁𝐿
𝑚
là công suất thực của cuộn dây chính.

𝑚 𝑚 𝑚
Điều này có nghĩa là 𝑉𝑁𝐿 , 𝐼𝑁𝐿 và 𝑃𝑁𝐿 cần được đo bằng hệ thống đo lường. Theo
mạch tương đương, X NL có thể được tính như sau:

5|Page
𝑋𝑆𝑚 có thể thu được dưới dạng:

c. Test rôto bị khóa


Khi rôto bị khóa không cho quay, tốc độ trượt s=1 . Các giả định sau đây là làm ra:
 Khả năng tự phản kháng của cuộn dây chính 𝑋𝑆𝑚 lớn hơn nhiều so với
𝑚 𝑚
độ tự cảm rò rỉ của cuộn dây rôto gọi cuộn dây chính 𝑋𝑙𝑟 (𝑋𝑆 >>
𝑚
𝑋𝑙𝑟 ).

 Khả năng tự phản kháng của cuộn dây chính 𝑋𝑆𝑚 lớn hơn nhiều so với
điện trở của rôto cuộn dây gọi cuộn dây chính 𝑅𝑟𝑚 (𝑋𝑆𝑚 >> 𝑅𝑟𝑚 ).

Do đó, mạch tương đương của cuộn dây chính trong thử nghiệm rôto khóa là thể
hiện trong Hình 5.

Hình 5: Mạch tương đương của cuộn dây chính trong thử nghiệm khóa rôto.

Tổng điện trở nối tiếp được cho bởi:

Điện trở của cuộn dây rôto quy vào cuộn dây chính được tính như sau:

Tổng phản ứng loạt được cho bởi:

6|Page
Trong đó:
 𝑉𝐿𝑅
𝑚
là giá trị rms của điện áp cấp vào cuộn dây chính dưới thử nghiệm
rôto khóa.

 𝐼𝐿𝑅
𝑚
là giá trị hiệu dụng của dòng điện cuộn dây chính trong thử
nghiệm khóa rôto.
 𝑃𝐿𝑅
𝑚
là công suất thực của cuộn dây chính trong thử nghiệm khóa rôto.

 𝑉𝐿𝑅
𝑚 𝑚 𝑚
, 𝐼𝐿𝑅 và 𝑃𝐿𝑅 cần được đo bằng hệ thống đo lường. Stator điện
𝑚
kháng rò rỉ 𝑋𝑙𝑠 và điện kháng rò rỉ của rôto quy cho cuộn dây chính
𝑚
𝑋𝑙𝑟 là thường được coi là bằng nhau nên chúng có thể được tính như
sau:

Khi đó:

Quy trình xác định các thông số của cuộn dây chính bao gồm các bước sau:
Bước 1: Xác định điện trở cuộn dây chính 𝑅𝑠𝑚 sử dụng thử nghiệm DC.
𝑚
Bước 2: Xác định điện kháng rò của cuộn dây chính 𝑋𝑙𝑠 và độ ròđộ tự cảm của cuộn dây
𝑚
rôto quy về cuộn dây chính 𝑋𝑙𝑟 .
Bước 3: Xác định khả năng tự cảm của cuộn dây chính 𝑋𝑠𝑚 .
Bước 4: Xác định điện trở của cuộn dây rôto quy vào cuộn dây chính 𝑅𝑟𝑚 .

2.2. Ước tính tham số cuộn dây phụ trợ


Giống như phần trên, để ước tính các thông số của cuộn dây phụ, các thử nghiệm
sau
cần thực hiện:
 Test DC
 Test không tải
 Test rôto bị khóa

a. Test DC
Bước này được thực hiện bằng cách sử dụng đồng hồ vạn năng để đo trực tiếp điện
trở của cuộn dây chính 𝑅𝑠𝑎 .

7|Page
b. Test không tải.
𝑎
Trong thử nghiệm này, tốc độ trượt s gần bằng 0, do đó số hạng 𝑅𝑙𝑟 /2s có thể được
xem là lớn đến đã bị loại trừ. Các giả định sau đây cũng được đưa ra:
 Điện kháng của cuộn dây phụ 𝑋𝑠𝑎 lớn hơn nhiều so với độ rò rỉ của
𝑎 𝑎
rôto điện kháng 𝑋𝑙𝑟 (𝑋𝑠𝑎 ≥ 𝑋𝑙𝑟 ).

 Điện kháng của cuộn dây phụ 𝑋𝑠𝑎 lớn hơn nhiều so với điện trở rôtogọi
cuộn dây chính là 𝑅𝑟𝑎 (𝑋𝑠𝑎 >> 𝑅𝑟𝑎 ).

Do đó, mạch tương đương của cuộn dây phụ trong thử nghiệm không tải được thể
hiện ởHình 6.

Hình 6: Mạch tương đương của cuộn dây phụ trong thử nghiệm không tải.

𝑎
Tổng điện kháng nối tiếp của mạch 𝑋𝐿𝑁 được cho bởi:

Theo mạch tương đương của cuộn dây phụ trên Hình 6, 𝑋𝑁𝐿 có thể tính được như
sau:

c. Kiểm tra rôto bị khóa


Trong thử nghiệm này, rôto bị khóa không cho quay. Vậy tốc độ trượt s = 1 . Các

8|Page
giả định sau:
 Điện kháng của cuộn dây phụ a Xs lớn hơn nhiều so với độ tự cảm rò
𝑎 𝑎
rỉ 𝑋𝑠𝑎 của cuộn dây rôto gọi cuộn dây phụ 𝑋𝑙𝑟 (𝑋𝑠𝑎 >> 𝑋𝑙𝑟 ).

 Khả năng tự phản kháng của cuộn dây phụ 𝑋𝑠𝑎 lớn hơn rất nhiều so
với điện trở củaCuộn dây rôto gọi cuộn dây phụ 𝑅𝑟𝑎 (𝑋𝑠𝑎 >> 𝑅𝑟𝑎 ).

Do đó, mạch tương đương của cuộn dây phụ trong thử nghiệm khóa rôto được thể
hiện
trong Hình 7.

Hình 7. Mạch tương đương của cuộn dây phụ trong thử nghiệm khóa rôto

Khi đó tổng điện kháng nối tiếp được cho bởi:

𝑎 𝑎
Điện kháng rò rỉ stato 𝑋𝑙𝑠 và điện kháng rò rỉ rôto 𝑋𝑙𝑟 thường được coi là bằng nhau
nên chúng có thể được tính như sau:

Khi đó:

Tổng điện trở nối tiếp được cho bởi:

9|Page
Điện trở của cuộn dây rôto quy cho cuộn dây phụ 𝑅𝑟𝑎 được tính toán bằng:

Quy trình xác định các thông số của cuộn dây phụ bao gồm bốn bước:
Bước 1: Xác định điện trở của cuộn dây chính 𝑅𝑠𝑎 sử dụng thử nghiệm DC.
𝑎
Bước 2: Xác định điện kháng rò của cuộn dây chính 𝑋𝑙𝑠 và độ rò độ tự cảm của cuộn dây
𝑎
rôto quy về cuộn dây chính 𝑋𝑙𝑟
Bước 3: Xác định khả năng tự cảm của cuộn dây chính 𝑋𝑠𝑎
Bước 4: Xác định điện trở của cuộn dây rôto quy vào cuộn dây chính 𝑅𝑟𝑎

3. Xác nhận thử nghiệm


.

Công thức tính toán kết quả nhận được:


Điện áp hiệu dụng có thể xác định qua công thức
1 𝑁
𝑉𝑟𝑚𝑠 = √ ∑𝑛=1 𝑉𝑁2
𝑁2
Dòng điện hiệu dụng có thể xác định qua công thức:
1 𝑁
𝐼𝑟𝑚𝑠 = √ ∑𝑛=1 𝐼𝑁2
𝑁2
Công suất biểu kiến xác định theo:
S=𝑉𝑟𝑚𝑠 . 𝐼𝑟𝑚𝑠
Công suất tiêu thụ:
𝑃 = ∑𝑁𝑛=1 𝑈𝑛 𝐼𝑛
Hệ số công suất
PF=P/S
Tính hệ số méo hài THD dòng điện:
𝑁
THD_i=√∑𝑛=2 𝐼𝑁2 /𝐼_1
Tính hệ số méo hài THD điện áp:
𝑁
THD_v=√∑𝑛=2 𝐼𝑁2 /𝑉_1

10 | P a g e
II. Tính toán kết quả trên matlab-simulink
Phần I: Mô hình thử nghiệm động cơ khởi động bằng tụ khi cấp nguồn xoay chiều

Hình 8: Mô hình thử nghiệm động cơ khởi động bằng tụ khi cấp nguồn xoay chiều

Để tiện cho việc tính toán và kiểm soát kết quả thì bài báo cáo sẽ trình bày việc tính
toán xây dựng phần mềm Guide Matlab. Mở giao diện phần mềm Guide bằng câu
lệnh Guide trên màn hình Common

Hình 9: Giao diện trang đầu


Ở đây sẽ có 4 button để chuyển trang sẽ có điện áp hiệu dụng, dòng điện hiệu
11 | P a g e
dụng, công suất và độ méo hài
1. Tính toán điện áp hiệu dụng và đồ thị
function chuyen3_Callback(hObject, function
eventdata, handles) axes2_CreateFcn(hObje
load('data_1.mat') ct, eventdata,
t = data_1.time handles)
Vs= data_1.data(:,5) load('data_1.mat')
N=length(Vs) t = data_1.time
rms_voltage=sqrt((1/N)*sum(Vs.^2)) Vs=data_1.data(:,5)
set(handles.kqrms_voltage,'string',rms_vo plot(t,Vs,'k-
ltage) ','linewidth',1.5)
// code tính điện áp hiệu dụng đầu ra của bộ nghịch lưu grid;
axis([0 max(t)
1.1*min(Vs)
1.1*max(Vs)])
xlabel('Time
(s)','FontSize',12)
ylabel('Vs
(V)','FontSize',12)
//code vẽ đồ thị điện áp đầu
ra bộ nghịch lưu

V_rms=225V

Hình 10: Tính toán điện áp và đồ thị

12 | P a g e
2. Tính toán dòng điện hiệu dụng và vẽ đồ thị
function chuyen4_Callback(hObject, function
eventdata, handles) axes1_CreateFcn(hObje
load('data_1.mat') ct, eventdata,
t = data_1.time handles)
Im = data_1.data(:,3) load('data_1.mat');
Ia = data_1.data(:,4) t = data_1.time;
Is = Im + Ia Im =
N=length(Is) data_1.data(:,3);
rms_current=sqrt((1/N)*sum(Is.^2)) Ia =
set(handles.kqrms_current,'string',rms_cu data_1.data(:,4);
rrent) Is = Im + Ia;
//code tính dòng hiệu dụng trên tải plot(t,Is,'k-
','linewidth',1.5);
grid;
axis([0 max(t)
1.1*min(Is)
1.1*max(Is)]);
xlabel('Time
(s)','FontSize',12);
ylabel('Is
(A)','FontSize',12);
// đồ thị dòng trên tải

13 | P a g e
I_rms=0.18A

Hình 11: Giá trị hiệu dụng và đồ thị đầu ra của dòng trên tải

function function chuyen7_Callback(hObject,


pushbutton3_Callback(hObject, eventdata, handles)
eventdata, handles) load('data_1.mat')
load('data_1.mat') t = data_1.time
t = data_1.time Vs= data_1.data(:,5)
Vs= data_1.data(:,5) N=length(Vs)
N=length(Vs) Is=data_1.data(:,6)
rms_voltage=sqrt((1/N)*sum(Vs.^2)) kq_cstt=(1/N)*sum(Vs.*Is)
Im = data_1.data(:,3) set(handles.kq_cstt,'string',kq_cstt)
Ia = data_1.data(:,4) // tính công suất tiêu thụ
Is = Im + Ia
N=length(Is)
rms_current=sqrt((1/N)*sum(Is.^2))
kq_csbk=rms_voltage.*rms_current
set(handles.kq_csbk,'string',kq_csbk)
// tính công suất biểu kiến

function pushbutton7_Callback(hObject, eventdata, handles)


load('data_1.mat')
t = data_1.time

14 | P a g e
Vs= data_1.data(:,5)
N=length(Vs)
Is=data_1.data(:,6)
kq_cstt=(1/N)*sum(Vs.*Is)
set(handles.kq_cstt,'string',kq_cstt)
Vs= data_1.data(:,5)
N=length(Vs)
rms_voltage=sqrt((1/N)*sum(Vs.^2))
Im = data_1.data(:,3)
Ia = data_1.data(:,4)
Is = Im + Ia
N=length(Is)
rms_current=sqrt((1/N)*sum(Is.^2))
kq_csbk=rms_voltage.*rms_current
kq_cs=kq_cstt/kq_csbk
set(handles.kq_cs,'string',kq_cs)
// tính hệ số công suất

3. Tính toán công suất biểu kiến, công suất tiêu thụ và hệ số công suất

S=42.14VA P=35W PF=0.85

Hình 12: Tính toán công suất

15 | P a g e
4. Tính độ méo hài

Để tính độ méo hài thì cần thêm function để tính THD


function [ THD, ph, amp ] = compute_THD( t,x, freq )
% function [ THD, ph, amp ] = compute_THD( t,x, freq )
%
% Written by Dr. Yoash Levron
% February 2013.
%
% computes the Total-Harmonic-Distortion (THD)
% of a signal x(t). The amplitude and phase of the
% basic harmonic are also computed. These values
% are typically useful in power systems, audio signal
% processing, and other related fields.
%
% DC offset does not affect THD.
%
% The function computes the basic harmonic
% of the signal, in the form:
% x(t) = amp*cos(w*t - ph) + (higher Harmonics)
% where : w = 2*pi*freq
% so 'amp' and 'ph' are the phase and amplitude
% of the basic harmonic.
%
% inputs:
% t - [sec] time vector. (should be periodical with basic
harmonic 'freq')
% x - signal vector.
% freq - [Hz] frequency of the basic harmonic.
%
% outputs:
% THD - total harmonic distortion (the scale is 1 = 100%).
% ph - [rad] phase of the basic harmonic.
% amp - Amplitude of the basic harmonic.
%%%%%%%%%%%% start function %%%%%%%%%%
%%% check that t,x are the same length
if (length(t) ~= length(x))
'Error: t and x should be the same length'
THD = NaN; ph = NaN; amp = NaN;
beep; return
end

16 | P a g e
if (size(t,2) == 1)
t = t.';
end
if (size(x,2) == 1)
x = x.';
end
%%% condition input time vector
input_error = 0;
%%% add two samples to complete the last cycle.
t = t - t(1); % remove any time shift
dtt = t(end) - t(end-1);
t = [t (t(end)+dtt) (t(end)+2*dtt)];
x = [x x(end) x(end)];
T = t(end);
if (T < (1/freq) )
input_error = 1;
end
if (input_error)
'Error: Input time vector is illegal. Time samples
should expand at least to 1/freq'
THD = NaN; ph = NaN; amp = NaN;
beep; return
end
% truncate extra samples, to fit in an integer number of cycles
of freq
T = floor(T * freq) /freq;
% resample on a linear grid:
% t1, x1 is the new input, not including the last sample
x = x - sum(x)/length(x); % remove any DC offset
N = max(1e6, length(x)); % number of samples
dt = T/N;
t1 = 0:dt:(T-dt);
x1 = interp1(t,x,t1,'cubic');
%%% compute cos-sin fourier coefficients
w = 2*pi*freq;
acs = (2/T) * sum(x1.*cos(w*t1))*dt; % basic frequency cos
coefficient.
bsn = (2/T) * sum(x1.*sin(w*t1))*dt; % basic frequency sin
coefficient.
amp = (acs^2 + bsn^2)^0.5;
ph = pi/2 - sign(acs) * acos(bsn/amp);
rms22 = (2/T) * sum(x1.^2) * dt;

17 | P a g e
THD = (rms22/amp^2 - 1)^0.5;
% correct phase to be in the range [-pi : pi]
if (ph > pi)
ph = ph - 2*pi;
end
if (ph < -pi)
ph = ph + 2*pi;
end

end

Tiếp tục vào guide để code (chọn tính THD ở tần số cơ bản 50Hz)

function function
chuyen7_Callback(hObject, chuyen8_Callback(hObject,
eventdata, handles) eventdata, handles)
load data_1.mat; load data_1.mat;
t = data_1.time; t = data_1.time;
Im = data_1.data(:,3); Im = data_1.data(:,3);
Ia = data_1.data(:,4); Ia = data_1.data(:,4);
Is = Im + Ia; Is = Im + Ia;
Vs = data_1.data(:,5); Vs = data_1.data(:,5);
N= length(Vs); N= length(Vs);
Fs= 0:0.0001:1.5; Fs= 0:0.0001:1.5;
freq = 50; freq = 50;
[ThDv,ph,ampe] = [ThDi,ph,ampe] =
compute_THD(Fs,Vs,freq); compute_THD(Fs,Is,freq);
// tính toán thd_v ở tần số cơ bản f=50Hz // tính toán thd_i ở tần số cơ bản f=50Hz
function function
axes5_CreateFcn(hObject, axes6_CreateFcn(hObject,
eventdata, handles) eventdata, handles)
load data_1.mat; load data_1.mat;
t = data_1.time; t = data_1.time;
Im = data_1.data(:,3); Im = data_1.data(:,3);
Ia = data_1.data(:,4); Ia = data_1.data(:,4);
Is = Im + Ia; Is = Im + Ia;
Vs = data_1.data(:,5); Vs = data_1.data(:,5);
N= length(Vs); N= length(Vs);
Fs= 10000; Fs= 10000;
f1= fft(Vs)*2/N; f1= fft(Is)*2/N;

18 | P a g e
freq=(0:N-1)*Fs/N; freq=(0:N-1)*Fs/N;
plot(freq,abs(f1),'k- plot(freq,abs(f1),'k-
','linewidth',1.5); ','linewidth',1.5);
xlabel('Frequency(Hz)','FontSiz xlabel('Frequency(Hz)','FontSiz
e',12); e',12);
ylabel('Vs(V)','FontSize',12); ylabel('Is(V)','FontSize',12);
grid; grid;
axis([0 500 0 1.5*max(Vs)]); axis([0 500 0 1.5*max(Is)]);
// vẽ đồ thị thd_v grid on ;
// vẽ đồ thị thd_i

THD_v=1.77e-3% THD_i=48%

Hình 13: Tính THD điện áp và dòng điện và vẽ đồ thị

Ngoài ra có thể kiểm chứng bằng dùng FFT_Analizer trong Simulink ở như ở hai hình dưới
để kiểm tra:

19 | P a g e
Hình 14: Tính THD điện áp bằng Hình 15: Tính THD dòng điện bằng
FFT_Analizer FFT_Analizer

Phần II: Mô phỏng khởi động động cơ bằng nguồn xoay chiều dạng sóng vuông

Hình 16: Mô hình thử nghiệm động cơ khởi động bằng tụ khi cấp nguồn xoay chiều
dạng xung vuông

Phần code sẽ giống hoàn toàn với code ở phần I nên ở phần này sẽ chỉ trình bày lại
kết quả tính toán trên matlab-simulink

20 | P a g e
Hình 17: Giao diện trang đầu

I_rms=0.2A

Hình 18: Tính giá trị dòng điện hiệu dụng và vẽ đồ thị

21 | P a g e
V_rms=286V
Hình 19: Tính toán điện áp hiệu dụng

S=50VA P=44W PF=0.75

Hình 20: Tính toán công suất và hệ số công suất

22 | P a g e
THD_v=30% THD_i=50%

Hình 21: Tính độ méo hài THD điện áp và dòng điện

Hình 22: Sử dụng FFT_Analyzer để tính Hình 23: Sử dụng FFT_Analyzer để tính
THD dòng điện THD điện áp

Kết Luận
Nghiên cứu trình bày một quy trình chi tiết về ước tính tham số của SPIM dựa trên
kiểm tra DC, kiểm tra rôto không tải và khóa. Một hệ thống đo lường cũng đã được
phát triển để nắm bắt các thông tin về các thông số vận hành của động cơ. Ngoài
ra, sự kết hợp giữa dữ liệu đo được và mô phỏng động lực dựa trên Simulink của
động cơ có thể cho phép ước tính các thông số cơ và điện của động cơ. Cuối cùng,

23 | P a g e
một cuộc điều tra về hiệu suất của động cơ được cung cấp bởi biến tần cũng được
thực hiện. Hệ thống này rất phù hợp với sử dụng hệ thống quạt năng lượng mặt
trời.
Nghiên cứu này trình bày một quy trình chi tiết về ước lượng tham số hiệu quả của
một động cơ cảm ứng một pha có tụ điện chia vĩnh viễn. Thủ tục bao gồm trực tiếp
và bước gián tiếp. Bước trực tiếp dựa trên các thử nghiệm DC, không tải và khóa
rôto. Bước này là cần thiết để thu được các giá trị của các thông số điện của cuộn
dây chính và phụ. Kế tiếp, bước gián tiếp để ước tính các thông số cơ học có thể
được thực hiện bằng cách điều chỉnh chúng các giá trị trong mô hình động lực học
động cơ dựa trên Simulink cho đến khi các thông số cơ học của mô hình có thể phù
hợp với các thông số điện ước tính. Nghiên cứu cũng khảo sát ảnh hưởng của nguồn
điện áp không hình sin đến hiệu suất của động cơ.

Phần III: Thực hiện code vi điều khiển stm32f411vet6 đo dòng điện và điện áp trên
động cơ xoay chiều một pha
Ý tưởng: Sử dụng modul ADC stm32f411 đo dòng điện và điện áp của một động
cơ xoay chiều 1 pha bất kì rồi gửi dữ liệu lên matlab vẽ đồ thị. Sử dụng nút nhận
để chọn chế độ gửi dòng điện hay điện áp
Thực hiện đề tài:
 Sẽ sử dụng thư viện Hal cho việc code vi điều khiển stm32f411 sử
dụng StmCubeIDE.
 Sử dụng ADC1 đo dòng điện và điện áp của một động cơ xoay chiều
1 pha trên 2 kênh sử dụng Port4 và Port5
 Sử dụng UART với baudrate 921600 (921600 bit/s) qua cổng COM3,
nạp code debug qua cổng COM4
 Sử dụng nút nhấn PA0 để điều chỉnh dữ liệu truyền lên. Cụ thể nếu
nút nhấn PA0 được nhấn thì led 12 sáng và giá trị điện áp sẽ được
truyền lên, khi bấm nút nhấn reset thì sẽ xóa trạng thái nút nhấn PA0
trả về trạng thái ban đầu thì led 13 sáng và giá trị dòng điện sẽ được
truyền lên.
Sử dụng Matlab để nhận dữ liệu và vẽ đồ thị, code được trình bày bên dưới. Chú ý
cổng COM vật lý trên mỗi máy sử dụng Computer manager và cấu hình lại tốc độ
baurate cho phù hợp. Khi sử dụng có thể sử dụng thêm một số lệnh để scale được
đồ thị xem ở trong hình

Các tính toán trên mạch điện với Opamp LM324 khá đơn giản nhưng vẫn cần sử
dụng Vôn kế để đo để có được kết quả chính xác

24 | P a g e
Hình 24: Cấu hình các peripheral của stm32 như hình

Hình 25: Chọn tần số xung nhịp

while (1) Chú ý:


{ #include "stdio.h"

25 | P a g e
if(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0) #include "string.h"
== GPIO_PIN_SET) #include "math.h"
{ khai báo
for (int i=1;;i++){ float Tro[2];
HAL_GPIO_TogglePin(GPIOD, float rawVoltage;
GPIO_PIN_12); float GTHD[0]
HAL_ADC_Start(&hadc1);
Tro[0]=HAL_ADC_GetValue(&hadc1); Khi cấu hình UART chọn
Tro[1]=HAL_ADC_GetValue(&hadc1); tốc độ Baudrate 921600
rawVoltage = (Tro[0]*5/4096-2.14); và only Transmit. Bởi vì
đây là tốc độ cao nhất mà
sprintf(&GTHD[0],"%f\n",(float)rawVoltage); vi điều khiển cho phép.
Tuy nhiên khi thực hiện
HAL_UART_Transmit(&huart2,&GTHD[0],sizeof(GTHD),10); xong đề tài sẽ nhận thấy
HAL_ADC_Stop_DMA(&hadc1); thỉnh thoảng chế độ
}} truyền này sẽ bị mất 1 vài
if(HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_0) dữ liệu và hiển thị trên
== GPIO_PIN_RESET) Matlab là 1 số NaN. Đây
{ là yếu điểm lớn nhất mà
HAL_GPIO_TogglePin(GPIOD, GPIO_PIN_13); của đề tài này. Một số
HAL_ADC_Start(&hadc1); giải pháp có thể đưa ra
Tro[0]=HAL_ADC_GetValue(&hadc1); để hoàn thiện đề tài như:
Tro[1]=HAL_ADC_GetValue(&hadc1); sử dụng DMA để nhận dữ
rawVoltage = (Tro[1]*5/4096-2)/1000; liệu – nghĩa là sẽ sử dụng
cả Recieve và Transmit và
sprintf(&data_trans[0],"%f\n",(float)rawVoltage); khi vi điều khiển nhận
được tín hiệu thì nó mới
HAL_UART_Transmit(&huart2,&data_trans[0], gửi dữ liệu. Khi đó sẽ
sizeof(data_trans),10); tránh được xung đột và
HAL_ADC_Stop_DMA(&hadc1); có thể sẽ giải quyết được
} vấn đề. Vì vấn đề thời
gian nên đề tài sẽ bỏ dở ở
đây

delete(instrfind({'Port'},{'COM3'})); Code trên Matlab


close all;clear all; Code khá dễ hiểu. Có một
s_0=serial('COM3','BaudRate',921600); điểm khó hiểu ở đây là khi
fopen(s_0); vẽ đồ thị ở lệnh plot tại

26 | P a g e
i=1; sao cần nhân data nhận
a=1; được với 220*sqrt(2)?
tong=0; Giải thích: Có thể hiểu vì
while(1) sử dụng biến áp và mạch
subplot(2,1,1); điện chuyển đổi để đưa
data_0(i)=str2double(fscanf(s_0)); vào ADC thì thao tác này
if i<=300 đã làm giảm áp này
plot(data_0*220*(sqrt(2))); xuống 220*sqrt(2) nên
khi vẽ trên matlab cần
else nhân 220*sqrt(2).
plot(data_0(end-300:end)*220*sqrt(2)); Nhưng tại sao lại không
end thự hiện thao tác này
ngay trên vi điều khiển?
pause(0); Giải thích: Thao tác này
i=i+1; mang tính hiệu chỉnh để
kết quả phù hợp với kết
end quả đo bằng Vôn kế nên
thay đổi trên Matlab sẽ
đơn giản hơn trên vi điều
khiển.

Hình 26: Dạng đồ thị điện áp nhận được

27 | P a g e
Hình 27: Dạng đồ thị dòng điện nhận được

Nhận xét :
Có thể thấy dòng điện không được sin có thể do:
 Biến dòng sử dụng
 Cần sử dụng điện trở Sun
Vì sử dụng thư viện HAL nên việc lập trình stm32f411 khá đơn giản. Vân đề ở đây
là làm thế nào để có thể đo được dòng điện và điện áp xoay chiều vì không thể đo
được một cách trực tiếp nên:
 Cần xây dựng được bộ chuyển đổi
 Cần xác định được offset độ chênh lệch trên ADC

Cái khó của việc xây dựng bộ chuyển đổi là ADC không thể đo được giá trị âm. Ở
đây có thể sử dụng một phương pháp đơn giản cả trong tính toán và chế tạo đó là
sử dụng opamp lm324. Ý tưởng là sẽ hạ điện áp 220VAC xuống 5VAC và opamp sẽ
có vai trò mạch trừ- lấy 5VDC trừ đi 5VAC khi đó điện áp vẫn giữ sóng sine mà vẫn
ở giá trị dương và trong khoảng 0-5V

28 | P a g e
Hình 28: Sử dụng PSIM để xây dựng modul đo điện áp

Hình 29: Kết quả nhận được

Đến đây thì cần xác định offset của mỗi ADC để có thể thêm vào công thức xác định
đầu ra cần tính bằng cách đưa vào input một giá trị 0 xem đầu ra thay đổi như nào.
Như trong báo cáo thì sẽ lấy offset cho điện áp là 2.14 và offset cho dòng là 2.0
Tương tự có thể xây dựng modul đo dòng điện. Khác với điện áp thì ADC của vi điều

29 | P a g e
khiển stm32f4 chỉ nhận đầu vào điện áp 0-5V nên không thể đo trực tiếp được dòng
điện. Ở đây, sẽ sử dụng biến dòng song song với điện trở 1 kí và khi đấy ta chỉ cần
đo điện áp trên điện trở 1 kí này và sử dụng stm32 để tính toán ra giá trị điện áp
tương ứng bằng cách chia cho giá trị điện trở là 1000. Trong PSIM có thay thế biến
dòng và bằng một nguồn dòng

Hình 30: Sử dụng PSIM để xâyy dựng moadul đo dòng điện

Hình 31: Kết quả nhận được

30 | P a g e
Hình 32: Mô hình thực nghiệm

31 | P a g e
Tài liệu tham khảo
-Parameter Estimation and Dynamic Performance Analysis of Permanent Split Capacitor
Single-Phase Induction Motors of Son T. Nguyen,*, Tu M. Pham , Anh Hoang , Linh V. Trieu,
Tuan V. Pham Hanoi University of Science and Technology, Vietnam (HUST) Vinh
University of Technology Education, Vietnam.

-https://www.mathworks.com/help/matlab/matlab_external/getting-started-with-
com.html

-Chrome-
extension://efaidnbmnnnibpcajpcglclefindmkaj/https://www.st.com/resource/en/
reference_manual/rm0008-stm32f101xx-stm32f102xx-stm32f103xx-stm32f105xx-and-
stm32f107xx-advanced-armbased-32bit-mcus-stmicroelectronics.pdf

---------The End--------

32 | P a g e

You might also like