首页 > 其他分享 > 线性二次最优控制-圆轨迹跟踪matlab

线性二次最优控制-圆轨迹跟踪matlab

时间:2022-08-29 11:44:12浏览次数:60  
标签:xita plot cos figure ts matlab 线性 sin 最优控制

点击查看代码
 
clear all;
close all;
clc;
 
%% 参数
ts=0.1;
t=30;
d=1.45;
 
%% 初始状态
x(1)=0;
y(1)=0;
xita(1)=0;
v=3;
w=0.2;
u=[v;w];
Z(:,1)=[-3;-3;0.2];
for k=1:1:t/ts
    times(k+1)=k*ts;
    X(:,k)=[cos(xita(k)) -d*sin(xita(k));
                sin(xita(k)) d*cos(xita(k));
                0 1]*u;
    %% 状态更新
    x(k+1)=x(k)+X(1,k)*ts;
    y(k+1)=y(k)+X(2,k)*ts;
    xita(k+1)=xita(k)+X(3,k)*ts;
    
    
    A=[0 0 -v*sin(xita(k))-d*w*cos(xita(k));
        0 0 v*cos(xita(k))-d*w*sin(xita(k));
        0 0 0];
    B=[cos(xita(k)) -d*sin(xita(k));
        sin(xita(k)) d*cos(xita(k));
        0 1];
    Q=[2 0 0;
        0 2 0;
        0 0 2];
    R=[1 0; 0 1];
    K=lqr(A,B,Q,R);
    Z_=(A-B*K)*Z(:,k);%每秒变化率
    Z(:,k+1)=Z(:,k)+Z_*ts;%每步变化率
    xc(k)=Z(1,k)+x(k); %跟踪轨迹
    yc(k)=Z(2,k)+y(k);
end
 
 
figure(1)
for k=1:1:length(xc)
plot(x,y,'r','Linewidth',2);
hold on;
plot(xc(k),yc(k),'sb','MarkerSize',10);
pause(0.1);
end
figure(2)
plot(times,Z(1,:),'r');
figure(3)
plot(times,Z(2,:),'r');
figure(4);
plot(times,Z(3,:),'r');

标签:xita,plot,cos,figure,ts,matlab,线性,sin,最优控制
From: https://www.cnblogs.com/wangjirui/p/16635384.html

相关文章

  • 线性布局LinearLayout
    线性布局中的下级视图有两种排列方式当orientation属性为horizontal时,线性布局中的下级视图在水平方向上从左往右排列当orientation属性为vetical时,线性布局中的下级视......
  • 【笔记】线性代数
    矩阵乘法首先给出矩阵乘法的代数意义:结合一个具体的例子来理解:设答案矩阵为\(ans\)。根据公式:\(ans_{1,1}\)是由\(a\)矩阵的第一行与\(b\)矩阵的第一列逐位相......
  • 线性排序上
    目录线性排序算法介绍桶排序(Bucketsort)计数排序(Countingsort)基数排序(Radixsort)思考线性排序算法介绍线性排序算法包括桶排序、计数排序、基数排序。因为这些排序算......
  • Python图像处理丨图像的灰度线性变换
    摘要:本文主要讲解灰度线性变换。本文分享自华为云社区《[Python图像处理]十五.图像的灰度线性变换》,作者:eastmount。一.图像灰度线性变换原理图像的灰度线性变换是通过......
  • matlab中数据结构之-tables
    作为matlab中的一种数据结构,是一种按行和列存储信息的一种表格式的数据结构,同一列中的数据具有相同的长度,和我们平常见到的表差不多。使用关键table函数创建,格式为tabl......
  • 线性回归实现
    深度学习第一章:最简单的线性回归实现1.引言AI领域的线性回归和其他领域不太一样,包括了名词和实现方式,所以必须先认识重要名词,再把所有步骤熟悉一边,并建立在之前学习线性......
  • 【线性模式】
    importnumpyasnpdefcompute_error_for_line_given_points(b,w,points):total_error=0foriinrange(0,len(points)):x=points[i,0]......
  • 有一个线性表,采用带头结点的单链表L来存储,设计一个算法将其逆置,且不能建立新节点,只能
    有一个线性表,采用带头结点的单链表L来存储,设计一个算法将其逆置,且不能建立新节点,只能通过表中已有的节点的重新组合来完成。分析:线性表中关于逆序的问题,就是用建立链表......
  • 使用matlab生成正弦波、三角波、方波
    生成余弦波数据(该示例中展示了如何输出十六进制数据到文件中)N=100;y=zeros(N,1);%生成100行*1列的矩阵y_integer=zeros(N,1);%生成100行*1列的矩阵y_h......
  • MATLAB R2022a中文版下载及安装教程(图文详解免费版)
    一、下载下载地址:点击下载二、安装激活1、如果安装有旧版本,请先卸载;2、使用WinRAR解压镜像文件,或者win10直接加载,点击“setup.exe”开始安装;3、点击右上角高级选项,选......