欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > windows >内容正文

windows

P13 最优控制系统-《Matlab/Simulink与控制系统仿真》程序指令总结

发布时间:2025/4/5 windows 32 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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() 求解连续系统线性二次型最优控制问题的函数

  • [K, P, E] = lqr(A, B, Q, R, N)
  • [K, P, E] = lqr2(A, B, Q, R, N)
  • [K, P, E] = lqry(sys Q, R, N)
  • 其中,输入的参数中,A 为系统的状态转移矩阵,B 为输入矩阵,Q 为给定的半正定矩阵,R 为给定的正实对称矩阵,N 为性能指标中交叉乘积项的加权系数矩阵。
  • 返回的参数中,K 表示最优反馈矩阵,P 是 Riccati 方程 P′+PA+ATP+Q−PBR−1BTP=0P'+PA+A^TP+Q-PBR^{-1}B^TP=0P+PA+ATP+QPBR1BTP=0 的解,E 则是 A−BKA-BKABK 的特征值。
  • 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与控制系统仿真》程序指令总结的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。