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
- 下一篇: 【控制】系统典型环节及其拉氏变换并绘制阶