Bản chất của câu hỏi của tôi là như sau: Tôi có một hệ thống gồm hai ODE. Một cái có ràng buộc giá trị ban đầu và cái kia có ràng buộc giá trị cuối cùng. Điều này có thể được coi là một hệ thống duy nhất với ràng buộc giá trị ban đầu đối với một số biến và ràng buộc giá trị cuối cùng đối với các biến khác.
Đây là những thông tin chi tiết:
Tôi đang cố gắng sử dụng bộ điều khiển LQR hữu hạn thời gian liên tục để điều khiển một hệ thống động lực tuyến tính. Tôi muốn tiếp tục sử dụng hệ sinh thái Python.
Hệ thống có dạng , theo x ( 0 ) = x 0
Giải pháp LQR tạo ra ma trận sao cho đầu vào điều khiển tối ưu u (t), tuyến tính theo x ( t ) , là u ( t ) = K ( t ) x ( t ) .
Trong đó
và là giải pháp cho phương trình vi phân Riccati thời gian liên tục (lưu ý rằng P ( t ) này là một ma trận)
phụ thuộc vàoP(tf)=Q
, B , x 0 , Q , Q f , R , t f đều được đưa ra.
Trong tiếng Anh: bạn có một số hệ thống động bắt đầu ở trạng thái . Bộ điều khiển LQR tạo ra ma trận phản hồi để sử dụng giữa thời gian 0 và t f ( t f thường được gọi là chân trời thời gian của vấn đề)
Lưu ý rằng hai ODE chỉ được ghép theo một hướng - giải pháp cho không phụ thuộc vào x ( t ) . Do đó, một cách để giải quyết vấn đề là đảo ngược phương trình Riccati để biến bài toán giá trị cuối cùng thành bài toán giá trị ban đầu và tìm một giải pháp số giữa thời gian 0 và t f bằng cách sử dụng bộ tích hợp ODE tiêu chuẩn. Sau đó tôi có thể sử dụng giải pháp số này để tìm x ( t ). Điều này liên quan đến tôi bởi vì bộ giải ODE số cho x (t) sẽ không nhất thiết phải lấy mẫu ODE cùng lúc với thời gian trong giải pháp số thành $ P (t). Có lẽ có một số cách thông minh để thực thi điều này.
Một cách khác mà tôi thấy trước khi giải quyết vấn đề là cùng nhau giải quyết vấn đề này, nhưng tôi không biết làm thế nào để đối phó với sự pha trộn giữa các ràng buộc giá trị ban đầu và giá trị cuối cùng. Là những vấn đề tính toán nặng nề để giải quyết? Tôi có thể làm điều đó trong SciPy / Python không?