การเปรียบเทียบโมเดลการทำนายที่ขับเคลื่อนด้วยข้อมูลและในอุดมคติในตัวควบคุม MPC
ฉันได้ใช้ตัวควบคุม MPC แบบไม่เชิงเส้นสำหรับระบบที่มีพลวัตที่ไม่รู้จักโดยสันนิษฐานโดยที่โมเดลการคาดการณ์จะได้รับจากโมเดล NARX แบบแยกตาม
$$y_{k+1} = f(w_k) = f(x_k, x_{k-1}, y_k, y_{k-1}, y_{k-2})$$
สำหรับ $y_{k+1} \in \mathbb{R}^{1 \times 1}$โดยมีความล่าช้าในการป้อนข้อมูล 2 ครั้งอธิบายโดย $x$และ 3 ความล่าช้าของเอาต์พุตแสดง $y$. ที่นี่$f(\cdot)$ประมาณจากข้อมูลอินพุตและเอาต์พุตที่มีอยู่ ผลลัพธ์ในรูปแบบพื้นที่สถานะต่อไปนี้:
$$x_{k+1} = \begin{bmatrix} y_{k+1} \\ y_{k} \\ y_{k-1} \\ u_{k-1} \end{bmatrix} = \begin{bmatrix} f(w_k) \\ y_{k} \\ y_{k-1} \\ u_{k-1} \end{bmatrix} $$
เพื่อเปรียบเทียบประสิทธิภาพของตัวควบคุม MPC ที่ขับเคลื่อนด้วยข้อมูลฉันต้องการเปรียบเทียบกับตัวควบคุม MPC ที่ใช้ ODE เป็นแบบจำลองการคาดคะเนตามที่ฉันมีให้ ODE ถูกแยกออกและนำไปใช้เป็นแบบจำลองความแตกต่างที่ไม่ต่อเนื่องตาม
$$z_{k+1} = g(z_k, u_k)$$
ที่ไหน $z_{k+1} \in \mathbb{R}^{3 \times 1}$. การทำนายจะได้รับโดยใช้สิ่งนั้น
$$ y_{k+1} = C^{T}z_{k+1}$$
ที่ไหน $C = \begin{bmatrix}1 & 0 & 0 \end{bmatrix}$.
ตอนนี้ฉันต้องสร้างโมเดล NARX โดยใช้โมเดลการคาดการณ์ที่แน่นอน คำถามคือตอนนี้เพื่อที่จะทำให้ตัวควบคุมทั้งสองสามารถเทียบเคียงกันได้มากที่สุดหากการแสดงพื้นที่ของรัฐโดยใช้แบบจำลองการทำนายที่แน่นอนเป็นดังนี้
$$x_{k+1} = \begin{bmatrix} y_{k+1} \\ y_{k} \\ y_{k-1} \\ u_{k-1} \end{bmatrix} = \begin{bmatrix} C^{T}g(z_k, u_k) \\ y_{k} \\ y_{k-1} \\ u_{k-1} \end{bmatrix} $$
สิ่งนี้สมเหตุสมผลหรือไม่เมื่อพิจารณาจากข้อเท็จจริงที่ว่า $g(z_k, u_k)$ ไม่ขึ้นอยู่กับเวกเตอร์สถานะ NARX ทั้งหมดในแบบจำลองโดยประมาณ?
คำตอบ
สำหรับทั้งสองสถานการณ์เช่นที่ขับเคลื่อนด้วยข้อมูลและแบบจำลองคุณจะมีสถานะเอาต์พุตและอินพุตที่แตกต่างกัน นั่นคือสำหรับกรณีที่ขับเคลื่อนด้วยข้อมูลสมมติว่าตัวควบคุม MPC ของคุณคือ$\mathcal{D}$ ที่สร้างอินพุต $u_k$. ที่นี่คุณมีระบบดังต่อไปนี้$$ \begin{array}{ccl} x_{k+1} &=& \left[\begin{array}{c} f(w_k) \\ y_k \\ y_{k-1} \\ u_{k-1} \end{array}\right] \\ y_{k+1} &=& f(w_k). \end{array} $$
สำหรับสถานการณ์จำลองสมมติว่าตัวควบคุม MPC ของคุณคือ $\mathcal{M}$ (มีโครงสร้างเดียวกันกับ $\mathcal{D}$ แต่ต้องพึ่งพาโมเดล) ที่สร้างอินพุต $\hat{u}_k$. ที่นี่ระบบของคุณมีดังต่อไปนี้$$ \begin{array}{ccl} \hat{x}_{k+1} &=& \left[\begin{array}{c} C^T z_{k+1} \\ \hat{y}_k \\ \hat{y}_{k-1} \\ \hat{u}_{k-1} \end{array}\right] \\ z_{k+1} &=& g(z_k,\hat{u}_k) \\ \hat{y}_{k+1} &=& C^T z_{k+1}. \end{array} $$
ตอนนี้คุณสามารถเปรียบเทียบพวกมันในแง่ของพลังงานที่ตัวควบคุมทั้งสองกระทำได้นั่นคือ $$ \sum_{k=1}^T \|u_k\|_2 \quad \text{vs.} \quad \sum_{k=1}^T \|\hat{u}_k\|_2. $$ หากคุณรักษาเสถียรภาพหรือควบคุมคุณจะเห็นช่วงเวลาของ $x_k$ เทียบกับ $\hat{x}_k$ฯลฯ