3.2.1 Các lệnh hỗ trợ hồi quy
Hàm Regress
Nguyễn Nhật Hải Triều Trang 27 Cấu trúc: b = regress(y,X) [b,bint] = regress(y,X) [b,bint,r] = regress(y,X) [b,bint,r,rint] = regress(y,X) [b,bint,r,rint,stats] = regress(y,X) [...] = regress(y,X,alpha) Mô tả
b = regress(y,X): trả về một vector có b kích thước p*1 chứa các hệ số ước lượng của quá trình hồi quy tuyến tính đa cấp với các giá trị y và X được xác
định trước đó. X là một ma trận có kích thước n*p, y là một ma trận có kích thước n*1. Quá trình hồi qui sẽ bỏ qua giá trị NaNs (null) cũng như các giá trị thiếu của X và y. Nếu giá trị X là phụ thuộc tuyến tính thì quá trình hồi qui sẽ đạt được nhiều phần tử zero nhất.
[b,bint] = regress(y,X): trả về thêm một ma trận bint có kích thước p*2 chứa các hệ
số ước lượng nằm trong khoảng 95%. Cột đầu tiên và cột 2 của ma trận bint tương
ứng là giá trị cận dưới và cận trên của hệ sốước lượng p. Nếu X là phụ thuộc tuyến tính thì kết quả hồi quy cho ra nhiều giá trị zero trong bint cũng như trong b.
[b,bint,r] = regress(y,X): trả về thêm một vector r có kích thước n*1 chứa giá trị
phát sinh thêm trong quá trình hồi qui.
[b,bint,r,rint] = regress(y,X): trả về thêm một ma trận rint chứa bước nhảy được sử
dụng để chuẩn đoán giá trị ngoại lai. Nếu giá trị dòng i của rint không chứa giá trị 0 thì kết quả phát sinh thêm là lớn hơn mong đợi 95%, lúc đó giá trị mới được xem như là 1 ngoại lai. Trong mô hình tuyến tính, giá trị tham khảo y là một giá trị ngẫu nhiên, và giá trị phát sinh thêm cũng vậy.
[b,bint,r,rint,stats] = regress(y,X): trả về thêm một vector stats có kích thước 1*4 chứa phương sai bình phương R2, thống kê F, giá trị xác suất p và phương sai lỗi. [...] = regress(y,X,alpha): sử dụng mức độ tin tưởng 100*(1-alpha)% cho việc tính toán bint và rint.
Nguyễn Nhật Hải Triều Trang 28
Ví dụ
Lấy dữ liệu của xe: weight và horsepower cho mô hình dự đoán và kết quả
tương ứng như sau: load carsmall x1 = Weight;
x2 = Horsepower; % Contains NaN data y = MPG;
Tính toán hằng số hồi quy cho mô hình tuyến tính như sau: X = [ones(size(x1)) x1 x2 x1.*x2];
b = regress(y,X) % Removes NaN data b = 60.7104 -0.0102 -0.1882 0.0000 NonLinearModel
Mô hình hồi quy phi tuyến. Cấu trúc
mdl = NonLinearModel.fit(ds,modelfun,beta0)
mdl = NonLinearModel.fit(X,y,modelfun,beta0)
mdl = NonLinearModel.fit(...,modelfun,beta0,Name,Value) Mô tả
mdl= NonLinearModel.fit(ds,modelfun,beta0): ước lượng hệ số của mô hình hồi quy phi tuyến bằng cách sử dụng quá trình đệ qui từ giá trị bắt đầu là beta0.
mdl= NonLinearModel.fit(X,y,modelfun,beta0): ước lượng hệ số của mô hình hồi qui phi tuyến bằng cách sử dụng vector y và ma trận X.
mdl= NonLinearModel.fit(...,modelfun,beta0,Name,Value): ước lượng hệ số của mô hình hồi qui tuyến với sự trợ giúp thêm của cặp giá trị Name và Value.
Nguyễn Nhật Hải Triều Trang 29
Thông sốđầu vào:
Ds Mảng Dataset, mặc định trong đó cột cuối cùng là giá trị kết quảđo được, những cột còn lại là giá trị biến.
Để thay đổi sự mặc định đó ta dùng đến cặp giá trị
Name-Value.
X Matrix of giá trị các biến.
Y Vector chứa kết quả đo được với mỗi dòng giá trị biến X.
Modelfun Mô hình phi tuyến. Có 2 dạng thể hiện: § @modelfunor@(b,x)modelfun, trong đó: § b là vector hệ số. § x là ma trận biến x tương ứng với các cột trong ds. § Dạn chuỗi : 'y~f(b1,b2,...,bk,x1,x2,...,xk)' f thể hiện hàm tương ứng với hệ số b1,...,bk và giá trị biến x1,...,xk. beta0 Hệ số khởi tạo. Thông sốđầu ra:
Mdl Kết quả của mô hình phi tuyến.
Ví dụ:
Mô hình phi tuyến từ mảng Dataset load carbig
ds = dataset(Horsepower,Weight,MPG);
modelfun = @(b,x)b(1) + b(2)*x(:,1).^b(3) + ... b(4)*x(:,2).^b(5);
Nguyễn Nhật Hải Triều Trang 30
mdl = NonLinearModel.fit(ds,modelfun,beta0)
Kết quả:
mdl = Nonlinear regression model:
MPG ~ b1 + b2*Horsepower^b3 + b4*Weight^b5 Coefficients:
Estimate SE tStat pValue b1 -49.383 119.97 -0.41164 0.68083 b2 376.43 567.05 0.66384 0.50719 b3 -0.78193 0.47168 -1.6578 0.098177 b4 422.37 776.02 0.54428 0.58656 b5 -0.24127 0.48325 -0.49926 0.61788
Number of observations: 392, Error degrees of freedom: 387 Root Mean Squared Error: 3.96
R-Squared: 0.745, Adjusted R-Squared 0.743
F-statistic vs. constant model: 283, p-value = 1.79e-113
Mô hình phi tuyến từ dữ liệu ma trận load carbig X = [Horsepower,Weight]; y = MPG; modelfun = @(b,x)b(1) + b(2)*x(:,1).^b(3) + ... b(4)*x(:,2).^b(5); beta0 = [-50 500 -1 500 -1]; mdl = NonLinearModel.fit(X,y,modelfun,beta0) Kết quả:
mdl = Nonlinear regression model: y ~ b1 + b2*x1^b3 + b4*x2^b5
Estimated Coefficients:
Estimate SE tStat pValue b1 -49.383 119.97 -0.41164 0.68083 b2 376.43 567.05 0.66384 0.50719
Nguyễn Nhật Hải Triều Trang 31 b3 -0.78193 0.47168 -1.6578 0.098177
b4 422.37 776.02 0.54428 0.58656 b5 -0.24127 0.48325 -0.49926 0.61788
Number of observations: 392, Error degrees of freedom: 387 Root Mean Squared Error: 3.96
R-Squared: 0.745, Adjusted R-Squared 0.743
F-statistic vs. constant model: 283, p-value = 1.79e-113
3.2.2 Chỉ số đánh giá kết quả hồi quy
Thông thường để đánh giá một kết quả hồi quy, người ta thường dùng kết hợp các chỉ số sau:
- Sai số trung bình: chỉ số càng nhỏ thì kết quả hồi quy càng đáng tin cậy,
được tính bằng công thức 3.6.
ℎ = ∑ ( − ) (3.6)
- Phương sai bình phương R2: là một chỉ số cho biết kết quả hồi quy của bạn tốt như thế nào. Giá trị của chỉ số này dao động từ 0 cho đến 1, được tính bằng công thức 3.7. Nếu giá trị là 1 thì kết quả hồi quy rất tốt, còn ngược lại nếu giá trị là 0 thì kết quả hồi quy này không tốt, không nên tin tưởng, tin cậy.
= 1 − (3.7)
Trong đó:
= ∑( − )
Tổng hiệu bình phương của giá trị y ban đầu với giá trị tính mới tính được thông qua hàm tìm được.
= −
Tổng hiệu bình phương của giá trị y ban đầu với giá trị y trung bình của tất cả giá trị
Nguyễn Nhật Hải Triều Trang 32
- Thống kê F: là một chỉ số nói về mật độ, nếu chỉ số này càng cao thì kết quả hồi quy càng tốt và ngược lại được tính bằng công thức (3.8). Và chỉ số này dùng để tính ra chỉ số p ở sau
= ( ) (3.8)
- Giá trị xác suất p: đây là một trong những chỉ số quan trọng khác dùng để đánh giá kết quả hồi qui như công thức 3.9. Nếu giá trị xác suất càng cao thì kết quả
hồi qui càng đúng và ngược lại.
= ∑ ( ) (3.9)
- Phương sai lỗi: chỉ số này càng nhỏ, kết quả hồi qui càng chính xác theo công thức 3.10.
= ( ) (3.10)
Trong đó:
( ) = ( ( − ) ) =
√
Với µ là giá trị mong đợi, σ là độ lệch chuẩn của phân phối Gaussian.
- SSE (sum of square error): là tổng sự khác biệt bình phương của giá trị đo
được với giá trị trung bình trong tập dữ liệu đầu vào theo công thức 3.11
= ∑ ( − ) (3.11) 3.2.3 Kết quả mô hình Với dữ liệu đầu vào đo được thực tế như bảng 3.1: Đối với mô hình bậc 2 = + + Ta được kết quả như sau: Hệ số của phương trình bậc 2: R=AP^2+BP+C A = -0.079899 B = -41.351518 C = 1748.162965 SaiSoTrungBinh = 80.904475 PhuongSaiBinhPhuong R^2 = 0.945458
Nguyễn Nhật Hải Triều Trang 33 Thong ke F = 60.671293 Gia tri P = 0.000038 PhuongSaiLoi = 9350.762895 Đối với mô hình hàm mũ dạng R theo I = [ + − ] Ta được kết quả như sau:
He so cua phuong trinh: R=[A_0+A_(1 ) e^(-A_2 I)-A_3 e^(-A_4 I) ]/I A0 = -21.129934 A1 = 72.836821 A2 = 0.141025 A3 = -72.837231 A4 = 0.141161 SaiSoTrungBinh= 81.655344 PhuongSaiBinhPhuong R^2 = 0.0282 Thong ke F = 0.0362 Gia tri P = 0.997 PhuongSaiLoi = 11.1 Đối với mô hình hàm mũ dạng R theo P = + Ta được kết quả như sau:
He so cua phuong trinh: R=Ae^BP+Ce^DP A = 1113.594417 B = -0.049513 C = 1113.591791 D = -0.049448 SaiSoTrungBinh= 97.821861 PhuongSaiBinhPhuong R^2 = 0.92 Thong ke F = 23.1
Nguyễn Nhật Hải Triều Trang 34
Gia tri P = 0.00108
PhuongSaiLoi = 126
3.3. Công cụ Cftool để xây dựng mô hình 3.3.1 Giới thiệu công cụ Cftool 3.3.1 Giới thiệu công cụ Cftool
Trong matlab có cung cấp cho người sử dụng một bộ công cụ Curve Fiting Tool. Bộ công cụ này cung cấp cho người dùng một giao diện đồ họa linh hoạt giúp bạn dễ dàng tương tác để chọn đường cong phù hợp với dữ liệu đầu vào của bạn. Với bộ công cụ này bạn có thể:
- Tạo, vẽ và so sánh các đường cong với nhau.
- Sử dụng hồi quy tuyến tính và phi tuyến, nội suy, hồi quy cục bộ, hoặc các phương trình tùy chỉnh.
- Xem các kết quả thống kê, khoảng tin cậy, giá trị ngoại lệ và mức độ hợp lệ
của dữ liệu ban đầu đối với từng đường cong.
- Tựđộng phát sinh ra code tương ứng với những đường cong đó.
Để sử dụng tool này trong matlab bạn gõ lệnh cftool. Giao diện công cụ hỗ
trợ sẽ xuất hiện để ta có thể nhập thông số của mô hình.
Với công cụ này thì cho ra các chỉ số đánh giá SSE, R-Square (phương sai bình phương), Adjusted R-Square (phương sai bình phương sau khi điều chỉnh), RMSE (phương sai lỗi).
3.3.2 Kết quả mô hình
Mô hình hàm mũ R_I
Nguyễn Nhật Hải Triều Trang 35
Hình 3.5 Công cụ Cftool tính thông số cho mô hình R-I. Ta được kết quả như sau:
He so cua phuong trinh: R=[A_0+A_(1 ) e^(-A_2 I)-A_3 e^(-A_4 I) ]/I A0 = -876 A1 = -2.283 A2 = -12.86 A3 = -12.86 A4 = -0.3263 SSE = 5.032e+04 PhuongSaiBinhPhuong R^2 = 0.9581 PhuongSaiLoi = 100.3
Đối với mô hình R-R theo dạng hàm bậc 2, kết quả tính toán được cho ở hình 3.6:
Nguyễn Nhật Hải Triều Trang 36
Hình 3.6 Kết quả tính toán cho mô hình R-P theo dạng hàm bậc 2. Ta được kết quả như sau:
He so cua phuong trinh bac 2: R=AP^2+BP+C A = -0.0799 B = -41.35 C = 1748 SSE = 6.546e+04 PhuongSaiBinhPhuong R^2 = 0.9455 PhuongSaiLoi = 96.7 Đối với mô hình R-P dạng hàm mũ bậc 2: = + , kết quả tính toán được thể hiện ở hình 3.7
Nguyễn Nhật Hải Triều Trang 37
Hình 3.7 Kết quả của mô hình R-P dạng hàm mũ bình phương. Ta được kết quả như sau:
He so cua phuong trinh: R=Ae^BP+Ce^DP A = 3728 B = -0.07186 C = -1.204e+04 D = -0.3125 SSE = 2.123e+04 PhuongSaiBinhPhuong R^2 = 0.9823 PhuongSaiLoi = 59.48
Thông số cho các mô hình được tổng kết trong bảng 3.2
Bảng 3.2: Tổng hợp các thông số mô hình Thông số Phương án 1 Phương án 2 Mô hình 1
Nguyễn Nhật Hải Triều Trang 38 A0 -21.129 -876 A1 72.836 -2.283 A2 0.141025 -12.86 A3 -72.837 -12.86 A4 0.141161 -0.3263 Mô hình 2 A -0.0799 -0.0799 B -41.3515 -41.35 C 1748.163 1748 Mô hình 3 A 1113.594 3728 B -0.04951 -0.07186 C 1113.592 -1.20E+04 D -0.04945 -0.3125
Bằng cách sử dụng chức năng gencode của công cụ cftool như hình 3.8, ta có thể
tạo được đoạn mã chương trình có chức năng tính toán các giá trị thông số như công cụ cftool.
Nguyễn Nhật Hải Triều Trang 39
Hình 3.8 Chức năng tạo mã tính toán bằng công cụ Cftool.
Đoạn Code tạo ra có dạng như sau:
ft = fittype( 'exp2' ); opts = fitoptions( ft ); opts.Display = 'Off';
opts.Lower = [-Inf -Inf -Inf -Inf];
opts.StartPoint = [2999.21154313076 -0.063102711842363 -25491.1647101052 -0.446523976010723]; opts.Upper = [Inf Inf Inf Inf];
% Fit model to data.
[fitresult, gof] = fit( xData, yData, ft, opts );
Theo đó lệnh được sử dụng trong cftool là lệnh fit dùng để tính toán thông số cho mô hình được định nghĩa trong biến ‘ft’. Vì kết quả tính toán của cftool có hệ số R lớn hơn nên ta chọn các mô hình bằng Cftool để thực hiện việc mô phỏng.
Nguyễn Nhật Hải Triều Trang 40
Chương 4
MÔ HÌNH BALLAST ĐIỆN TỬ
4.1 Ballast điện tử
Đèn huỳnh quang là thiết bị có đặc tính trở kháng âm, có nghĩa là đặc tuyến dòng
điện- điện áp của nó trái với các điện trở thường. Trong điện trở thường, nếu điện áp tăng thì dòng điện cũng sẽ tăng tương ứng theo định luật Ohm. Tuy nhiên đối với
điện trở âm, dòng điện sẽ giảm nếu điện áp tăng và ngược lại. Một số thiết bị khác cũng có điện trở âm đó là diode hoặc op-amp. Vì vậy để thiết bị này có thể hoạt
động tốt, đặc biệt ở chế độ thay đổi công suất thì mạch ballast điện tử đi kèm phải
được thiết kế phù hợp.
4.1.1 Cấu tạo ballast điện tử
Do đặc điểm của đèn, ballast điện tử phải tạo ra một điện áp cao ngay khi đèn bắt
đầu làm việc, sau đó hạn dòng khi đèn đã ở chế độ xác lập. Có hai loại ballast thường dùng là ballast điện từ và ballast điện tử. Ballast điện từ hoạt động ở điện áp và tần số 50Hz trong khi ballast điện tử hoạt động ở tần số lớn hơn 25KHz. Người ta chứng minh rằng khi làm việc ở tần số cao, đèn huỳnh quang sẽ có hệ số
công suất cao hơn, hiệu suất chiếu sáng cũng tăng lên tờ 10-20% so với ballast điện từ thông thường. Ngày nay, các ballast điện tử trên thị trường ngoài việc hoạt động
ở tần số cao còn cho phép khả năng thay đổi công suất làm việc để tạo nhiều hiệu
ứng phục vụ cho các mục đích thương mại khác nhau.
Để có thểđáp ứng cho yêu cầu thay đổi tần số, một mạch nghịch lưu dạng bán cầu thường được sử dụng như Hình 4.1.
Trong mạch trên, điện áp xoay chiều 50/60Hz được qua một mạch chỉnh lưu để tạo
điện áp một chiều DC, điện áp này dùng để tạo ra điện áp xoay chiều thông qua một mạch nghịch lưu một pha, các linh kiện đóng cắt Q1, Q2 được điều khiển theo nguyên tắc Q1+Q2=0. Khi Q1 đóng, Q2 mở, điện áp trên tải đạt được là Vdc trong
Nguyễn Nhật Hải Triều khi nếu Q2 đóng Q1 mở thì chặn dòng chạy ngược nhằm Hình 4.1 Nhằm đạt được điện áp cao mạch dao động nối tiếp, song so Hình 4.2 Trong Hình 4.2 , khi Q1 và xung vuông được tạo ra tại một mạch lọc dao động gồ động này có tác dụng hạn dòng đểđảm bảo điện áp cao cho đ với tải đèn. Đểđiện áp khở tụ Cs nhiều lần. Vì vậy giá tr thì điện áp ngõ ra là –Vdc. Các diode đượ m bảo vệ cho các thiết bịđóng cắt. Hình 4.1 Cấu tạo mạch nghịch lưu bán cầu. cao khi khởi động và hạn dòng trong chế độ
, song song được sử dụng như Hình 4.2.
Hình 4.2 Sơđồ nguyên lý ballast điện tử.
và Q2 đóng cắt tại tần số cao với chu kỳ 50%, i ngõ ra của bộ nghịch lưu. Điện áp này đư ồm cuộn dây Ls và tụ điện Cs mắc nối tiế
dòng cho đèn khi hoạt động ở chế độ xác l cho đèn khi khởi động, một tụđiện Cf được m
ởi động cao, tổng trở của tụ Cf phải lớn hơn giá trị Cs thường được chọn lớn hơn Cf khoảng 10 l
Trang 41
ợc sử dụng để
ộ xác lập, một
%, một điện áp y được đưa vào
ếp. Mạch dao c lập. Ngoài ra, mắc song song
ơn tổng trở của ng 10 lần.
Nguyễn Nhật Hải Triều Trang 42
4.1.2 Nguyên tắc hoạt động
Gọi Vs(t) là điện áp ngõ ra của bộ nghịch lưu, thành phần hài cơ bản của điện áp này là Vs. Điện áp hài bậc cơ bản của Vs được tính bằng công thức = √ .
Để thuận lợi cho việc khảo sát hoạt động của đèn, một số giả thiết sau được áp dụng:
(1). Các thiết bị chuyển mạch được giả thiết hoạt động ở chếđộ lý tưởng, vì vậy có thể bỏ qua tổn hao về công suất cũng như các hài bậc cao xuất hiện khi đóng cắt thiết bị.
(2). Điện trở các dây nối cho đèn là không đáng kể. (3). Mối liên hệ giữa CS và Cf là: CS = kCf
Để cung cấp đủđiện áp mồi, giảđịnh rằng CS>>Cf và k≥ 10.
Điều này cho phép ta giả thiết có thể bỏ qua ảnh hưởng của Cs khi khởi động và bỏ
qua ảnh hưởng của Cf khi đèn làm việc ở chếđộ xác lập. (4) Đèn được coi là có điện trở cực lớn khi vừa khởi động. Chếđộ khởi động
Hình 4.3 thể hiện một mạch tương đương khi vừa bắt đầu cấp điện. Dựa vào các giả