Skip to content
Go back

Xây dựng thuật toán DP cho hệ thống EMS: Từ phương trình đến không gian trạng thái

|

Written at somewhere on the Earth

Trong bài viết trước Nhập môn Dynamic Programming, chúng ta đã thống nhất rằng DP là “bản đồ” để tìm đường đi ngắn nhất. Nhưng để máy tính có thể đọc được bản đồ đó, chúng ta không thể đưa cho nó một chiếc xe thật. Chúng ta phải đưa cho nó các Phương trình Toán học.

Bước này được gọi là Mô hình hóa (Mathematical Modeling). Đây là phần “xương sống” để mô phỏng các thuật toán điều khiển. Nếu mô hình sai, mọi kết quả tối ưu đều vô nghĩa.

Hôm nay, chúng ta sẽ cùng nhau chuyển đổi bài toán vật lý của xe FCHEV sang ngôn ngữ của Toán học: Không gian trạng thái (State-Space) và Hàm mục tiêu (Cost Function). 📐

1. Mô hình hóa hệ thống (System Modeling)

Trước khi điều khiển năng lượng, ta cần biết chiếc xe cần bao nhiêu năng lượng để di chuyển. Đây là bài toán Động lực học dọc trục (Longitudinal Dynamics).

Công suất yêu cầu tại bánh xe (PreqP_{req}) tại bất kỳ thời điểm tt nào được tính dựa trên định luật II Newton:

Ftrac=Faero+Froll+Fgrade+FaccelF_{trac} = F_{aero} + F_{roll} + F_{grade} + F_{accel}

Từ lực kéo, ta tính được công suất điện mà hệ thống (Fuel Cell + Battery) phải cung cấp (sau khi trừ đi hiệu suất của Motor và Inverter):

Pelec_req(t)=v(t)ηmotor(12ρACdv(t)2+mgCrcos(α)+mgsin(α)+mdvdt)P_{elec\_req}(t) = \frac{v(t)}{\eta_{motor}} \cdot \left( \frac{1}{2}\rho A C_d v(t)^2 + mgC_r \cos(\alpha) + mg \sin(\alpha) + m \frac{dv}{dt} \right)

Lưu ý: Trong thuật toán DP, chu trình lái (v(t)v(t)α(t)\alpha(t)) đã biết trước, nên Pelec_req(t)P_{elec\_req}(t) là một hằng số đầu vào (Disturbance/Input) tại mỗi bước thời gian.

2. Thiết lập bài toán tối ưu (Optimization Problem Formulation)

Để áp dụng Dynamic Programming, chúng ta phải đưa hệ thống về dạng chuẩn của Điều khiển tối ưu rời rạc (Discrete-time Optimal Control). Cấu trúc chuẩn bao gồm 3 yếu tố: xx (Trạng thái), uu (Điều khiển), và ww (Nhiễu).

a. Biến trạng thái (State Variable - xx)

Biến trạng thái là “ký ức” của hệ thống. Trong bài toán EMS cho xe lai, biến quan trọng nhất thay đổi theo thời gian chính là Trạng thái năng lượng của Pin (State of Charge - SOC).

xk=SOCkx_k = SOC_k

Phương trình chuyển trạng thái (State Transition Equation) từ bước kk sang k+1k+1:

SOCk+1=SOCkVocVoc24RintPbatt(uk)2RintQbattΔtSOC_{k+1} = SOC_k - \frac{V_{oc} - \sqrt{V_{oc}^2 - 4 R_{int} P_{batt}(u_k)}}{2 R_{int} Q_{batt}} \cdot \Delta t

(Đừng hoảng sợ, đây chỉ là công thức tính dòng điện I=P/UI = P/U được viết lại dựa trên mô hình pin Rint đơn giản).

b. Biến điều khiển (Control Variable - uu)

Đây là biến quyết định mà chúng ta (hoặc máy tính) phải đưa ra. Chúng ta có thể chọn điều khiển dòng điện pin hoặc công suất Fuel Cell. Thông thường, mình chọn Công suất Fuel Cell làm biến điều khiển:

uk=Pfc,ku_k = P_{fc,k}

c. Cân bằng công suất (Power Balance Constraint)

Tại mọi thời điểm, năng lượng cung cấp phải bằng năng lượng tiêu thụ:

Pfc+Pbatt=Pelec_reqP_{fc} + P_{batt} = P_{elec\_req}

Suy ra, công suất pin (PbattP_{batt}) là biến phụ thuộc: Pbatt=Pelec_reqPfcP_{batt} = P_{elec\_req} - P_{fc}.

3. Hàm mục tiêu (Cost Function)

Mục tiêu của DP là tìm ra chuỗi điều khiển π={u0,u1,...,uN1}\pi = \{u_0, u_1, ..., u_{N-1}\} để cực tiểu hóa một hàm chi phí JJ.

J=k=0N1L(xk,uk)+Φ(xN)J = \sum_{k=0}^{N-1} L(x_k, u_k) + \Phi(x_N)

Trong đó:

4. Các ràng buộc (Constraints)

Toán học cho phép PfcP_{fc} là âm vô cùng hoặc dương vô cùng, nhưng Vật lý thì không. Chúng ta phải đặt ra các giới hạn cứng (Inequality Constraints):

  1. Ràng buộc Fuel Cell: 0PfcPfcmax0 \le P_{fc} \le P_{fc}^{max} ΔPdown(Pfc,kPfc,k1)ΔPup(Giới hạn toˆˊc độ ta˘ng tải)- \Delta P_{down} \le (P_{fc,k} - P_{fc,k-1}) \le \Delta P_{up} \quad (\text{Giới hạn tốc độ tăng tải})

  2. Ràng buộc Pin (Battery): SOCminSOCkSOCmax(Vıˊ dụ: 0.40.8)SOC_{min} \le SOC_k \le SOC_{max} \quad (\text{Ví dụ: } 0.4 - 0.8) PbattminPbatt,kPbattmaxP_{batt}^{min} \le P_{batt,k} \le P_{batt}^{max}

5. Ví dụ Tính toán Minh họa (Case Study)

Để hình dung rõ hơn cách DP hoạt động tại một bước thời gian (tkt_k), chúng ta hãy cùng làm một bài toán nhỏ với các số liệu giả định.

Giả thiết tại thời điểm kk:

Thuật toán DP sẽ thử nghiệm (discretize) 3 phương án điều khiển (uu) khả thi cho Fuel Cell và so sánh chúng:

Bước 1: Phân chia công suất (Power Split)

Từ phương trình cân bằng năng lượng Pbatt=PreqPfcP_{batt} = P_{req} - P_{fc}:

Bước 2: Tính toán Chi phí Tức thời (Instantaneous Cost - LL)

Tra bản đồ tiêu thụ nhiên liệu (Fuel Map) của Fuel Cell:

Bước 3: Cập nhật Trạng thái (State Transition - SOCk+1SOC_{k+1})

Tính lượng điện năng pin thay đổi trong 1 giây và SOCSOC mới. (Công thức tính nhanh: ΔSOCPbattΔtQbatt\Delta SOC \approx - \frac{P_{batt} \cdot \Delta t}{Q_{batt}})

Bước 4: Đánh giá Tổng chi phí (Cost-to-Go + Instantaneous Cost)

Đây là bước quyết định. DP không chỉ nhìn hiện tại mà còn nhìn tương lai. Giá trị tương lai (JnextJ_{next}) được lấy từ bảng kết quả đã tính ngược từ đích về (đây là ma trận Cost-to-Go).

Giả sử ma trận Cost-to-Go cho biết: Nếu SOC thấp (59.8%), chi phí tương lai sẽ rất đắt (vì sau này phải sạc bù). Nếu SOC cao (60.1%), chi phí tương lai rẻ.

Phương ánChi phí nhiên liệu hiện tại (LL)Chi phí tương lai giả định (JnextJ_{next})TỔNG CHI PHÍ (JJ)
A (Pfc=0P_{fc}=0)0 g (Rẻ nhất hiện tại)100 g (Đắt do pin cạn)100 g
B (Pfc=30P_{fc}=30)0.45 g50 g (Trung bình)50.45 g
C (Pfc=45P_{fc}=45)0.75 g (Đắt nhất hiện tại)49.8 g (Rẻ do pin đầy)50.55 g

Kết luận của DP: Tại giây này, Option B là tối ưu nhất (Total Cost thấp nhất là 50.45). Mặc dù Option A không tốn giọt Hydro nào ngay lúc này, nhưng DP biết rằng việc làm cạn pin sẽ phải trả giá đắt trong tương lai, nên nó không chọn.


Tổng kết

Chúng ta vừa hoàn thành việc “dịch” một chiếc xe vật lý thành các công thức toán học:

Khi đã có đầy đủ các thành phần này, việc còn lại chỉ là giải phương trình Bellman bằng thuật toán. Nhưng giải như thế nào trên máy tính? Làm sao để xử lý lưới trạng thái (Discretization)?

Trong bài viết tiếp theo, mình sẽ chia sẻ code MATLAB chi tiết để giải bài toán này. Hãy chuẩn bị sẵn sàng MATLAB nhé! 💻


👨🏻‍💻🏀

Previous Post
Mô hình Động lực học của Fuel Cell Vehicle: Từ cơ năng đến điện năng
Next Post
Các chiến lược tối ưu hóa năng lượng cho xe Fuel Cell: Tại sao Dynamic Programming là tiêu chuẩn vàng?