基于运动学模型的无人机模型预测控制(MPC)-2

2023-05-16

基于无人机自身模型的模型预测控制-无约束情况

1. 模型建立

无人机运动学模型:
{ x ˙ = v x v x ˙ = u x y = v y v y ˙ = u y \left\{ \begin{aligned} \dot x & = v_x \qquad \dot{v_x}=u_x\\ y & = v_y \qquad \dot{v_y}=u_y \\ \end{aligned} \right. {x˙y=vxvx˙=ux=vyvy˙=uy
领航者模型:
{ x ˙ r = v x r v x r ˙ = u x r y r = v y r v y r ˙ = u y r \left\{ \begin{aligned} \dot x_r & = v_{x_r} \qquad \dot{v_{x_r}}=u_{x_r}\\ y_r & = v_{y_r} \qquad \dot{v_{y_r}}=u_{y_r} \\ \end{aligned} \right. {x˙ryr=vxrvxr˙=uxr=vyrvyr˙=uyr
其中 n x : 状 态 变 量 量 个 数 , n u : 控 制 变 量 个 数 , n m : 输 出 变 量 个 数 n_x:状态变量量个数,n_u:控制变量个数,n_m:输出变量个数 nxnu:nm:,我们得到如下状态空间:
[ x ˙ v ˙ x y ˙ v ˙ y ] = [ 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 ] [ x v x y v y ] + [ 0 0 1 0 0 0 0 1 ] [ u x u y ] \begin{bmatrix} \dot{x}\\ \dot v_x \\ \dot y\\ \dot v_y \end{bmatrix}= \begin{bmatrix} 0 & 1 & 0 & 0\\ 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 1\\ 0 & 0 & 0 & 0\\ \end{bmatrix} \begin{bmatrix} x\\ v_x \\ y\\ v_y \end{bmatrix}+ \begin{bmatrix} 0 & 0\\ 1 & 0 \\ 0 & 0\\ 0 & 1\\ \end{bmatrix} \begin{bmatrix} u_x \\ u_y\\ \end{bmatrix} x˙v˙xy˙v˙y=0000100000000010xvxyvy+01000001[uxuy]
[ x y ] = [ 1 0 0 0 0 0 1 0 ] [ x v x y v y ] \begin{bmatrix} x\\ y \end{bmatrix} = \begin{bmatrix} 1&0&0&0\\ 0&0&1&0\\ \end{bmatrix} \begin{bmatrix} x\\ v_x\\ y\\ v_y \end{bmatrix} [xy]=[10000100]xvxyvy
其中
A = [ 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 ] B = [ 0 0 1 0 0 0 0 1 ] C = [ 1 0 0 0 0 0 1 0 ] x ( k ) = [ x v x y v y ] u ( k ) = [ u x u y ] A = \begin{bmatrix} 0 & 1 & 0 & 0\\ 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 1\\ 0 & 0 & 0 & 0\\ \end{bmatrix} \quad B = \begin{bmatrix} 0 & 0\\ 1 & 0 \\ 0 & 0\\ 0 & 1\\ \end{bmatrix} \quad C=\begin{bmatrix} 1&0&0&0\\ 0&0&1&0\\ \end{bmatrix}\quad x(k)=\begin{bmatrix} x\\ v_x \\ y\\ v_y \end{bmatrix} \quad u(k)=\begin{bmatrix} u_x \\ u_y\\ \end{bmatrix} \quad A=0000100000000010B=01000001C=[10000100]x(k)=xvxyvyu(k)=[uxuy]

将上述模型离散化,我们得到:
A k = A ∗ Δ t + I B k = B ∗ Δ t \begin{aligned} &A_k=A*\Delta t+I\\ &B_k=B*\Delta t \end{aligned} Ak=AΔt+IBk=BΔt

即我们得到系统方程:
x ( k + 1 ) = A k ∗ x ( k ) + B k u ( k ) y ( k + 1 ) = C x ( k + 1 ) = C A k ∗ x ( k ) + C B k u ( k ) x ( k + 1 ) ∈ n x × 1 A k ∈ n x × n x B k ∈ n x × n u \begin{aligned} &x(k+1)=A_k*x(k)+B_ku(k)\\ &y(k+1) = Cx(k+1)=CA_k*x(k)+CB_ku(k)\\ &x(k+1)\in{n_{x}\times1}\quad A_k\in{n_{x}\times n_{x}}\quad B_k\in{n_{x}\times n_{u}} \end{aligned} x(k+1)=Akx(k)+Bku(k)y(k+1)=Cx(k+1)=CAkx(k)+CBku(k)x(k+1)nx×1Aknx×nxBknx×nu
递推公式推导:
{ x ( k i + 1 ∣ k i ) = A k x ( k i ) + B k u ( k i ) x ( k i + 2 ∣ k i ) = A k 2 x ( k i ) + A k B k u ( k i ) + B k u ( k i + 1 ) x ( k i + 3 ∣ k i ) = A k 3 x ( k i ) + A k 2 B k u ( k i ) + A k B k u ( k i + 1 ) + B k u ( k i + 2 ) ⋮ x ( k i + N p ∣ k i ) = A k N p x ( k i ) + A k N p − 1 B k u ( k i ) + A k N p − 2 B k u ( k i + 1 ) + ⋯ + A k N p − N c B k u ( k i + N c − 1 ) \left\{ \begin{aligned} &x(k_i+1|k_i)=A_kx(k_i)+B_ku(k_i)\\ &x(k_i+2|k_i)=A_k^{2}x(k_i)+A_kB_ku(k_i)+B_ku(k_i+1)\\ &x(k_i+3|k_i)=A_k^{3}x(k_i)+A_k^{2}B_ku(k_i)+A_kB_ku(k_i+1)+B_ku(k_i+2)\\ &\qquad\vdots\\ &x(k_i+N_p|k_i)=A_k^{N_p}x(k_i)+A_k^{N_p-1}B_ku(k_i)+A_k^{N_p-2}B_ku(k_i+1)+\cdots +A_k^{N_p-N_c}B_ku(k_i+N_c-1)\\ \end{aligned} \right. x(ki+1ki)=Akx(ki)+Bku(ki)x(ki+2ki)=Ak2x(ki)+AkBku(ki)+Bku(ki+1)x(ki+3ki)=Ak3x(ki)+Ak2Bku(ki)+AkBku(ki+1)+Bku(ki+2)x(ki+Npki)=AkNpx(ki)+AkNp1Bku(ki)+AkNp2Bku(ki+1)++AkNpNcBku(ki+Nc1)
{ y ( k i + 1 ∣ k i ) = C A k x ( k i ) + C B k u ( k i ) y ( k i + 2 ∣ k i ) = C A k 2 x ( k i ) + C A k B k u ( k i ) + C B k u ( k i + 1 ) y ( k i + 3 ∣ k i ) = C A k 3 x ( k i ) + C A k 2 B k u ( k i ) + C A k B k u ( k i + 1 ) + C B k u ( k i + 2 ) ⋮ y ( k i + N p ∣ k i ) = C A k N p x ( k i ) + C A k N p − 1 B k u ( k i ) + C A k N p − 2 B k u ( k i + 1 ) + ⋯ + C A k N p − N c B k u ( k i + N c − 1 ) \left\{ \begin{aligned} &y(k_i+1|k_i)=CA_kx(k_i)+CB_ku(k_i)\\ &y(k_i+2|k_i)=CA_k^{2}x(k_i)+CA_kB_ku(k_i)+CB_ku(k_i+1)\\ &y(k_i+3|k_i)=CA_k^{3}x(k_i)+CA_k^{2}B_ku(k_i)+CA_kB_ku(k_i+1)+CB_ku(k_i+2)\\ &\qquad\vdots\\ &y(k_i+N_p|k_i)=CA_k^{N_p}x(k_i)+CA_k^{N_p-1}B_ku(k_i)+CA_k^{N_p-2}B_ku(k_i+1)+\cdots +CA_k^{N_p-N_c}B_ku(k_i+N_c-1)\\ \end{aligned} \right. y(ki+1ki)=CAkx(ki)+CBku(ki)y(ki+2ki)=CAk2x(ki)+CAkBku(ki)+CBku(ki+1)y(ki+3ki)=CAk3x(ki)+CAk2Bku(ki)+CAkBku(ki+1)+CBku(ki+2)y(ki+Npki)=CAkNpx(ki)+CAkNp1Bku(ki)+CAkNp2Bku(ki+1)++CAkNpNcBku(ki+Nc1)


Y = [ y ( k i + 1 ∣ k i ) y ( k i + 2 ∣ k i ) y ( k i + 3 ∣ k i ) ⋯ y ( k i + N p ∣ k i ) ] ( N p ∗ n m ) × 1 T U = [ u ( k i ) u ( k i + 1 ) ⋯ u ( k i + N u ) ] ( N c ∗ n u ) × 1 T \begin{aligned} &Y=[y(k_i+1|k_i) \quad y(k_i+2|k_i) \quad y(k_i+3|k_i)\cdots y(k_i+N_p|k_i)]^{T}_{(Np *n_m)\times 1}\\ &U = [u(k_i)\quad u(k_{i}+1)\cdots u(k_{i}+N_u)]^{T}_{(N_c*n_u)\times 1}\\ \end{aligned} Y=[y(ki+1ki)y(ki+2ki)y(ki+3ki)y(ki+Npki)](Npnm)×1TU=[u(ki)u(ki+1)u(ki+Nu)](Ncnu)×1T

F = [ C A k C A k 2 ⋯ C A k N p ] ( N p ∗ n m ) × n x T Φ = [ C B k 0 0 ⋯ 0 C A k B k C B k 0 ⋯ 0 ⋮ ⋮ C A k N p B k C A k N p − 1 B k C A k N p − 2 B k ⋯ C A k N p − N c B k ] ( N p ∗ n m ) × ( n u ∗ N c ) \begin{aligned} &F=[CA_k \quad CA^{2}_k\quad\cdots CA^{N_p}_k]^{T}_{(N_p*n_m)\times n_x} \quad \\ &\Phi = \begin{bmatrix} CB_k & 0 & 0 &\cdots &0\\ CA_kB_k &CB_k&0&\cdots &0\\ \vdots &\quad&\quad&\quad & \vdots\\ CA^{N_p}_kB_k&CA^{N_p-1}_kB_k &CA^{N_p-2}_kB_k &\cdots&CA^{N_p-N_c}_kB_k \\ \end{bmatrix}_{(Np*n_m)\times(n_u*N_c)} \end{aligned} F=[CAkCAk2CAkNp](Npnm)×nxTΦ=CBkCAkBkCAkNpBk0CBkCAkNp1Bk00CAkNp2Bk00CAkNpNcBk(Npnm)×(nuNc)

即我们得到:
Y = F x ( k i ) + Φ U Y=Fx(k_i)+\Phi U Y=Fx(ki)+ΦU
性能指标:
J = ( R s − Y ) T ( R s − Y ) + U T R U = ( R s − F x ( k i ) − Φ U ) T ( R s − F x ( k i ) − Φ U ) + U T R U = ( R s − F x ( k i ) ) T ( R s − F x ( k i ) ) − 2 U T Φ ( R s − F x ( k i ) ) + U T ( Φ T Φ + R ) U \begin{aligned} J&=(R_s-Y)^{T}(R_s-Y)+U^{T}RU\\ &=(R_s-Fx(k_i)-\Phi U)^{T}(R_s-Fx(k_i)-\Phi U)+U^{T}RU\\ &=(R_s-Fx(k_i))^{T}(R_s-Fx(k_i))-2U^{T}\Phi (R_s-Fx(k_i))+U^{T}(\Phi^{T}\Phi+R)U \end{aligned} J=(RsY)T(RsY)+UTRU=(RsFx(ki)ΦU)T(RsFx(ki)ΦU)+UTRU=(RsFx(ki))T(RsFx(ki))2UTΦ(RsFx(ki))+UT(ΦTΦ+R)U
∂ J ∂ U \frac{\partial J}{\partial U} UJ得:
∂ J ∂ U = − 2 Φ T ( R s − F x ( k i ) ) + 2 ( Φ T Φ + R ) U = 0 U = ( Φ T Φ + R ) − 1 Φ T ( R s − F x ( k i ) ) \begin{aligned} &\frac{\partial J}{\partial U}=-2\Phi^{T}(R_s-Fx(k_i))+2(\Phi^{T}\Phi+R)U=0\\ &U=(\Phi^{T}\Phi+R)^{-1}\Phi^{T}(R_s-Fx(k_i)) \end{aligned} UJ=2ΦT(RsFx(ki))+2(ΦTΦ+R)U=0U=(ΦTΦ+R)1ΦT(RsFx(ki))
其中 R s R_s Rs的长度为 N p N_p Np

即我们得到迭代方程:
X ( : , i + 1 ) = A k X ( : , i ) + B k U ( 1 : n m ) X(:,i+1) = A_kX(:,i)+B_kU(1:n_m) X(:,i+1)=AkX(:,i)+BkU(1:nm)

此处直接取U进行计算,因为是利用系统自身模型构建的MPC。

2.matlab仿真代码

%================无人机模型预测控制-基与自身模型的模型预测================%
clear all;clc;close all;
%% 无人机参数设定--采用运动学模型进行轨迹跟踪
x0 = 10; y0 = 5;
vx0 = 0; vy0 = 0;
x(1) = x0; y(1) = y0;vx(1) = vx0;vy(1) = vy0;
%% 领航者参数设定
inter = 0.05;  % 采样周期
time = 60;  % 总时长
R = 2;
omega = 2;
t = 0:inter:time;
%% 八字形
for i = 1:1:length(t)
   if (mod(floor(omega*t(i)/(2*pi)),2) == 0)
    Xr(i) = R*cos(omega*t(i))-R;
    Yr(i) = R*sin(omega*t(i));
    Vxr(i) = -R*sin(omega*t(i))*omega;
    Vyr(i) = R*cos(omega*t(i))*omega;
    Uxr(i) = -R*cos(omega*t(i))*omega^2;
    Uyr(i) = -R*sin(omega*t(i))*omega^2;
   else
    Xr(i) = -R*cos(omega*t(i))+R;
    Yr(i) = R*sin(omega*t(i));   
    Vxr(i) = R*sin(omega*t(i))*omega;
    Vyr(i) = R*cos(omega*t(i))*omega;
    Uxr(i) = R*cos(omega*t(i))*omega^2;
    Uyr(i) = -R*sin(omega*t(i))*omega^2;
   end

end
%% 直线
% Xr = (2*t)';
% Yr = 3*ones(length(t),1);
% Vxr = 2*ones(length(t),1);
% Vyr = 2*zeros(length(t),1);
% Uxr = zeros(length(t),1);
% Uyr = zeros(length(t),1);
%% 圆形
% Xr = -R*cos(t);
% Yr = R*sin(t);
% Vxr = R*sin(t);
% Vyr = R*cos(t);
% Uxr = R*cos(t);
% Uyr = -R*sin(t);
% Xr = t';
% Yr = 3*ones(length*(t),1);
%%
% EX(:,1) = [x0 - Xr(1);vx0 - Vxr(1);y0 - Yr(1);vy0 - Vyr(1)];
X(:,1) = [x0;vx0;y0;vy0];
%% 领航者轨迹
% figure
% grid minor
% l1 = [];
% axis([-7 7 -7 7]);
% axis equal
% for i = 2:1:length(t)
%   hold on
%   plot([Xr(i) Xr(i-1)],[Yr(i) Yr(i-1)],'b');
%   hold on
%   delete(l1);
%   l1 =  plot(Xr(i),Yr(i),'r.','MarkerSize',20);
%   pause(0.1);
%   
% end
%% 模型预测控制参数设定
Np = 20;     % 预测步长
Nc = 5;      % 控制步长
A = [0 1 0 0;0 0 0 0;0 0 0 1;0 0 0 0];  B = [0 0;1 0;0 0;0 1]; 
C = diag([1 0 1 0]);
lena = size(A);
lenb = size(B);
R = 0.0002*eye(Nc*lenb(2));
Ak = A*inter + eye(lena(1));
Bk = B*inter;
F = cell(Np,1);
PHI = cell(Np,Nc);
for i = 1:1:Np         % 计算预测方程矩阵
  F{i,1} = C*Ak^i;
end
F = cell2mat(F);

for i = 1:1:Np
   for j = 1:1:Nc
       if (j<=i)
           PHI{i,j} = C*Ak^(i-j)*Bk;
       else
           PHI{i,j} = zeros(lena(1),lenb(2));
       end
   end
end
PHI = cell2mat(PHI);
k1 =2;k2 =2;
XX = [];
%% 迭代计算
k = 1;
for i = 1:1:length(t)-1
   for j = i:1:(Np+i-1)
     if j >= length(Xr)
         j = length(Xr);
     end
     XX = [XX;[Xr(j);0;Yr(j);0]]; 
   end
  U = inv(PHI'*PHI + R)*PHI'*(XX- F*X(:,i));
  XX = [];
  u = U(1:2,1);
%   u = u + rand(2,1);
%   u = min(max(u,-30),30);   % 限幅
  UU(:,i) = u; 
  X(:,i+1) = Ak*X(:,i) + Bk*u;
  err =[X(:,i+1) - [Xr(i+1);Vxr(i+1);Yr(i+1);Vyr(i+1)]] ;
end
x = (X(1,:))';
vx = (X(2,:))';
y = (X(3,:))';
vy = (X(4,:))';
% VV = vecnorm([Vxr;Vyr]);
% VX = vecnorm([vx;vy]);
% plot(t,VV,'r')
% hold on
% plot(t,VX(1:length(t)),'b')
figure
thetr = atan2(Yr,Xr);
thet = atan2(y,x);
plot(t,thetr(1:length(t)),'r');
hold on
plot(t,thet(1:length(t)),'k');
legend('Leader','follower1')

figure

plot(t(1:length(UU)),UU(1,:),'r');
hold on
plot(t(1:length(UU)),UU(2,:),'k');
legend('ux','uy')

l1 = [];
l2 = [];
pic_num = 1;
figure
 grid minor
 axis([-10 10 -5 5])
axis equal
Tag1 = animatedline('Color','r');
for i = 1:1:length(Xr)-1
    
    hold on
    delete(l1);
   delete(l2);

    plot([x(i) x(i+1)],[y(i) y(i+1)],'b');
   hold on
   plot([Xr(i) Xr(i+1)],[Yr(i) Yr(i+1)],'r');
   hold on
   l1 = plot(x(i+1),y(i+1),'b.','MarkerSize',20);
   hold on
   l2 = plot(Xr(i+1),Yr(i+1),'r.','MarkerSize',20);
   pause(0.1);
%    addpoints(Tag1,t(i),x(i));
%    drawnow;
%     F=getframe(gcf);
%     I=frame2im(F);
%     [I,map]=rgb2ind(I,256);
%     if pic_num == 1
%         imwrite(I,map,'test.gif','gif', 'Loopcount',inf,'DelayTime',0.2);
%     else
%         imwrite(I,map,'test.gif','gif','WriteMode','append','DelayTime',0.2);
%     end
%     pic_num = pic_num + 1;
    F = getframe(gcf);
    I = frame2im(F);
    [I,map] = rgb2ind(I,256);
    if pic_num == 1
        imwrite(I,map,'test.gif','gif','Loopcount',inf,'DelayTime',0.2);
    else
        imwrite(I,map,'test.gif','gif','WriteMode','append','DelayTime',0.2);
    end
    pic_num = pic_num + 1;
     
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于运动学模型的无人机模型预测控制(MPC)-2 的相关文章

随机推荐

  • 网卡出现“Windows 仍在设置此设备的类配置。 (代码 56)“

    原因 xff1a vmware惹的祸 1 下载cclean修复注册表 xff08 尝试无效 cclean下载网址 2 键盘按win 43 r xff0c 弹出运行窗口 xff0c 输入 redegit xff0c 进入注册表 xff0c 删
  • datax实现mysql数据同步到oracle

    一 mysql数据同步到oracle 注意 xff1a mysql不区分大小写 xff0c 但是oracle严格区分大小写 xff0c 并且oracle的库名 表名和字段名要用大写 xff0c 如果用的小写需要添加双引号说明 job set
  • 在gazebo仿真环境下对相机和激光雷达的标定

    相机和激光雷达的标定主要是为了得到两者之间的参数 xff0c 包括相机的内参和雷达到相机的外参 这样便可以完成点云到图像的投影 xff0c 从而完成信息融合 实际上gazebo中这些参数都是真值 xff0c 是不需要标定的 xff1a 相机
  • 深度学习模型过拟合问题解决办法

    深度学习模型过拟合问题解决办法 模型过拟合 xff08 如果训练集上精度比测试集上精度高很多 xff0c 说明发生了过拟合 xff09 如上图所示拟合曲线 1 图一的拟合较为简单 xff0c 不能很好的反应出变化关系 xff0c 欠拟合 2
  • strchr()函数

    如果需要对字符串中的单个字符进行查找 xff0c 那么应该使用 strchr 或 strrchr 函数 其中 xff0c strchr 函数原型的一般格式如下 xff1a char strchr const char s int c 它表示
  • MapReduce之Map阶段

    MapReduce阶段分为map xff0c shuffle xff0c reduce map进行数据的映射 xff0c 就是数据结构的转换 xff0c shuffle是一种内存缓冲 xff0c 同时对map后的数据分区 排序 reduce
  • 嵌入式开发常用的三种通信协议串口通信、SPI和IIC

    常用的三种通信协议串口通信 SPI和IIC 文章目录 常用的三种通信协议串口通信 SPI和IIC一 通信分类1 1 同步通信和异步通信1 2 单工通信 半双工通信和全双工通信1 3 串行通信与并行通信 二 串口通信2 1 UART2 2 R
  • HTML 解决css缓存

    span class token operator lt span link rel span class token operator 61 span span class token string 34 stylesheet 34 sp
  • Ubuntu18.04安装Nvidia显卡驱动教程

    0 前期准备 禁用BIOS的secure boot xff0c 即disable它 xff0c 如果不关闭 xff0c 使用第三方源安装显卡驱动会安装后不能使用 1 禁用nouveau 1 创建文件 xff0c 如果没有下载vim编辑器 x
  • VINS之estimator节点小结

    VINS的核心节点 xff0c 包括VIO的初始化过程 紧耦合的非线性化过程 边缘化处理过程 主要流程步骤 1 主函数线程 订阅了四个topic xff0c 分别调用回调函数 xff1b 创建了13个话题发布器 xff1b 开辟了一个VIO
  • 基于布谷鸟搜索算法的函数寻优算法

    文章目录 一 理论基础1 算法原理2 算法流程图 二 Matlab代码三 参考文献 一 理论基础 1 算法原理 布谷鸟采用一种特殊的寄生宿主巢穴的方式孕育繁殖 它将孵育的蛋置入寄生宿主的巢穴 xff0c 让寄生宿主孵化布谷鸟蛋 由于布谷鸟幼
  • 基于逐维反向学习的动态适应布谷鸟算法

    文章目录 一 理论基础1 布谷鸟搜索算法2 DA DOCS算法 xff08 1 xff09 逐维反向学习策略 xff08 2 xff09 动态适应 xff08 3 xff09 DA DOCS算法流程 二 实验与结果分析三 参考文献 一 理论
  • SMPL学习笔记

    文章目录 前言一 SMPL概述1 形状参数 beta 2 姿态参数
  • 多协议BGP-----MPBGP

    MPBGP是在BGP 4 基础上的扩展 xff0c 分为三种 xff1a ipv4 ipv4 ipv6 ipv6 ipv6 ipv4 ipv4 ipv6 本文主要介绍 xff1a ipv6 ipv4 xff08 在 建立ipv6 的BGP邻
  • __asm void MSR_MSP(uint32_t addr) 提示:error:expected '(' after 'asm'

    SYSTEM sys sys c 33 7 error expected 39 39 before 39 void 39 ASM void MSR MSP u32 addr 在STM32中的sys c文件编译报出这个错误时 xff1a AS
  • LTL线性时序逻辑

    https blog csdn net yuniruchujian article details 106213848https www docin com p 506137477 html
  • 强化学习资料

    强化学习资料 莫烦学习资料 莫烦学习资料 https mofanpy com bilibili视频资料 xff1a https www bilibili com video BV13W411Y75P from 61 search amp s
  • apollo学习

    知乎王方浩 https zhuanlan zhihu com p 52521739 csdn https blog csdn net u013914471 type 61 blog bilibili 忠厚老实的老王 https space
  • 求解离散黎卡提矩阵代数方程

    离散代数黎卡提方程求解 1 黎卡提方程 在LQR最优控制中 xff0c 有连续时间最优控制 xff0c 即LQR xff0c 也有离散时间最优控制DLQR xff0c 则在求解中一定会遇到解连续时间黎卡提方程和离散时间黎卡提方程的问题 xf
  • 基于运动学模型的无人机模型预测控制(MPC)-2

    基于无人机自身模型的模型预测控制 无约束情况 1 模型建立 无人机运动学模型 xff1a x