P13 最优控制系统-《Matlab/Simulink与控制系统仿真》程序指令总结
生活随笔
收集整理的這篇文章主要介紹了
P13 最优控制系统-《Matlab/Simulink与控制系统仿真》程序指令总结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
《Matlab/Simulink與控制系統仿真》程序指令總結
- Matlab_Simulink_BookExample
- 13. 最優控制系統
- 13.1 Matlab 函數
- 例題 Eg13_1
- 例題 Eg13_2
書中詳細實例代碼可見:Github
Matlab_Simulink_BookExample
圖書:《Matlab/Simulink與控制系統仿真》
13. 最優控制系統
13.1 Matlab 函數
lqr() lqr2() lqry() 求解連續系統線性二次型最優控制問題的函數
dlqr() dlqry() 求解離散系統線性二次型最優控制
例題 Eg13_1
% Page370:給定系統,求最優控制 clear; clc;% 系統的狀態空間矩陣 A = [0 1; 0 0]; B = [0; 1]; C = [1 0]; D = [0]; % 建立控制系統的狀態空間模型 sys = ss(A, B, C, D); % 計算系統的可控矩陣 control = ctrb(A, B); % 如果系統的可控矩陣矩陣 if rank(control)==2disp('系統是完全能控的!'); elsedisp('系統是不完全能控的!'); end% 最優控制與最優性能的求解 % 計算最優狀態反饋的解 R = 1; Q = [1 0; 0 1]; [K, P, E] = lqr(A, B, Q, R);% 分析閉環系統的特性 % 反饋后系統的狀態矩陣 A_new = A - B * K; % 建立閉環控制系統的數學模型 sys_new = ss(A_new, B, C, D); % figure(1) step(sys) % figure(2) hold on step(sys_new) legend('before','after')例題 Eg13_2
% Page371:給定離散系統,求最優控制 clear; clc;% 系統的狀態矩陣 A = [1 0; -1 1]; B = [1; -1]; C = [1 0]; D = [0]; % 設定指標函數中的 Q、R 矩陣 Q = [100 0; 0 1]; R = [1]; % 建立控制系統的狀態空間模型 sys = ss(A, B, C, D);% 計算最優控制的解 [K, S, E] = dlqr(A, B, Q, R); % 反饋后系統的狀態矩陣 A_new = A - B * K; % 建立反饋后的系統數學模型 sys_new = ss(A_new, B, C, D);figure(1) dstep(A, B, C, D, 1, 10) % figure(2) hold on dstep(A_new, B, C, D, 1, 10) legend('before','after')總結
以上是生活随笔為你收集整理的P13 最优控制系统-《Matlab/Simulink与控制系统仿真》程序指令总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: P12 离散控制系统-《Matlab/S
- 下一篇: 【数理知识】差分 差分方程