位置跟踪仿真

1、pid控制

PlantModel.m

function dx=PlantModel(t,x,flag,para)
global S A F c alfa beta kp kd
dx=zeros(2,1);S=2;
if S==1rin=1.0;drin=0;
elseif S==2A=0.5;F=3;rin=A*sin(F*2*pi*t);drin=A*F*2*pi*cos(F*2*pi*t);
end% c=30;
% alfa=500;
% beta=10;
kp=100;
kd=1.2;
e1=rin-x(1);
e2=drin-x(2);% s=c*e1+e2;
% u=(alfa*abs(e1)+beta*abs(e2))*sign(s);u=kp*e1+kd*e2;dx(1)=x(2);
dx(2)=-(25+0*sin(3*2*pi*t))*x(2)+(133+0*sin(1*2*pi*t))*u;

pidtracking.m

clear all;
close all;
global S A F c alfa beta kp kd;xk=[0,0];ts=0.001;
T=1;
TimeSet=[0:ts:T];[t,y]=ode45('PlantModel',TimeSet,xk,[],[]);
x1=y(:,1);
x2=y(:,2);if S==1rin=1.0;drin=0;
elseif S==2rin=A*sin(F*2*pi*t);drin=A*F*2*pi*cos(F*2*pi*t);
ende1=rin-x1;
e2=drin-x2;
% s=c*e1+e2;for k=1:1:T/ts+1
%    u(k)=(alfa*abs(e1(k))+beta*abs(e2(k)))*sign(s(k));u(k)=kp*e1(k)+kd*e2(k);
endset(gca,'fontsize',20)
% figure;
subplot(211)
plot(t,rin,'r--','linewidth',2);
hold on;
plot(t,y(:,1),'b','linewidth',2)
set(gca,'fontsize',20)
xlabel('time/s');ylabel('position');
%  legend('ideal position','actual position')
subplot(212)
plot(t,u,'b','linewidth',2);
set(gca,'fontsize',20)
xlabel('time/s');ylabel('u');

2 SVC

PlantModel.m

function dx=PlantModel(t,x,flag,para)
global S A F c alfa beta
dx=zeros(2,1);S=2;
if S==1rin=1.0;drin=0;
elseif S==2A=0.5;F=3;rin=A*sin(F*2*pi*t);drin=A*F*2*pi*cos(F*2*pi*t);
endc=30;
alfa=500;
beta=10;e1=rin-x(1);
e2=drin-x(2);s=c*e1+e2;%     delta=0.08;
%   kk=1/delta;
%   if s>delta
%       sats=1;
%   elseif abs(s)<=delta
%       sats=kk*s;
%   elseif s<-delta
%       sats=-1;
%     end % u=(alfa*abs(e1)+beta*abs(e2))*sats;u=(alfa*abs(e1)+beta*abs(e2))*sign(s);
% u=(alfa*abs(x(1))+beta*abs(x(2)))*sign(s);
%  u=10*sign(s);dx(1)=x(2);
dx(2)=-(25+5*sin(3*2*pi*t))*x(2)+(133+50*sin(1*2*pi*t))*u;

svctracking.m

clear all;
close all;
global S A F c alfa betaxk=[0,0];ts=0.001;
T=1;
TimeSet=[0:ts:T];[t,y]=ode45('PlantModel',TimeSet,xk,[],[]);
x1=y(:,1);
x2=y(:,2);if S==1rin=1.0;drin=0;
elseif S==2rin=A*sin(F*2*pi*t);drin=A*F*2*pi*cos(F*2*pi*t);
ende1=rin-x1;
e2=drin-x2;
s=c*e1+e2;delta=0.08;kk=1/delta;for k=1:1:T/ts+1
%       if s(k)>delta
%       sats(k)=1;
%   elseif abs(s(k))<=delta
%       sats(k)=kk*s(k);
%   elseif s(k)<-delta
%       sats(k)=-1;
%     end u(k)=(alfa*abs(e1(k))+beta*abs(e2(k)))*sign(s(k));
end
set(gca,'fontsize',20)
figure(1);
plot(t,rin,'--',t,y(:,1),'b');
set(gca,'fontsize',20)
xlabel('time(s)');ylabel('Position tracking');
set(gca,'fontsize',20)
figure(2);
plot(t,u,'r');
xlabel('time(s)');ylabel('u');
set(gca,'fontsize',20)
figure(3);
plot(e1,e2,'r',e1,-c*e1,'b');
xlabel('time(s)');ylabel('Phase trajectory');
set(gca,'fontsize',20)
figure;
subplot(211)
plot(t,rin,'r--','linewidth',2);
hold on;plot(t,y(:,1),'b','linewidth',2)set(gca,'fontsize',20)
xlabel('time/s');ylabel('position');
%  legend('ideal position','actual position')
subplot(212)
plot(t,u,'b','linewidth',2);
set(gca,'fontsize',20)
xlabel('time/s');ylabel('u');
set(gca,'fontsize',20)
figure
plot(t,rin-y(:,1))

matlab位置跟踪仿真相关推荐

  1. 基于Matlab鸟群跟踪仿真(附源码)

    目录 一.方案定义 二.跟踪器定义 三.追踪鸟群 四.生成的代码中跟踪器的结果 五.总结 六.程序 此示例演示如何跟踪大量对象.生成一大群鸟类,并使用全局最近邻多目标跟踪器来估计鸟群中每只鸟的运动. ...

  2. 模糊控制器的MATLAB仿真(位置跟踪和 Simulink仿真)

    模糊控制器的MATLAB仿真 模糊控制器的设计 设计模糊控制的具体详解请参照链接: https://blog.csdn.net/LOVE_105/article/details/112135599. ...

  3. 差速机器人的纯轨迹跟踪仿真(Matlab)

    差速机器人的纯轨迹跟踪仿真(Matlab) 刚入门,有的地方不对,烦请大家指正. 目录 差速机器人的纯轨迹跟踪仿真(Matlab) 1 差速机器人运动模型 1.1 运动学分析建模 1.2 差速机器人的 ...

  4. 基于Matlab的单基地雷达模拟检测和跟踪仿真(附源码)

    目录 一.介绍 1.1 统计雷达模型 1.2 场景管理 1.3 扫描控制 二.场景-空中监视 2.1 雷达系统 2.2 参考目标和雷达环路增益 2.3 构建雷达 2.4 方案和目标 2.5 可检测性 ...

  5. 四旋翼飞行器轨迹跟踪仿真MATLAB simulink/simscape

    四旋翼飞行器轨迹跟踪仿真MATLAB simulink/simscape ID:6929669117089277

  6. 脉位调制 matlab,基于Matlab的超宽带跳时脉冲位置调制仿真

    内容简介: 本科毕业设计 基于Matlab的超宽带跳时脉冲位置调制仿真 超宽带|跳时脉冲位置调制|MATLAB|仿真|毕业设计 文件格式:word+PPT 本科毕业设计 基于Matlab的超宽带跳时脉 ...

  7. matlab的svpwm逆变器,基于svpwm三相逆变器在matlab下的仿真研究.doc

    基于svpwm三相逆变器在matlab下的仿真研究.doc 基于SVPWM三相逆变器在MATLAB下的仿真研究摘要介绍了电压空间矢量脉宽调制控制算法的基本概念并简要介绍了利用多种实际矢量合成所需电压矢 ...

  8. matlab 天线设计 泰勒加权_微带天线设计尺寸MATLAB编程及其仿真验证

    龙源期刊网 http://www.qikan.com.cn 微带天线设计尺寸 MATLAB 编程及其仿真 验证 作者:杨小敏 母玉泽 严月 郭小康 马波 张栋 莫骄弟 来源:<中国科技博览> ...

  9. fvdm 跟驰模型 matlab仿真_【新书推荐】【2009.01】控制系统MATLAB计算及仿真(第3版)(黄忠霖)...

    本书包括MATLAB语言基础.控制系统MATLAB仿真基础.控制系统MATLAB计算与仿真3篇. 本书上篇介绍了MATLAB 7.1 系统的相关知识,包括MATLAB 7.1系统概述与活的笔记本Not ...

最新文章

  1. android应用测试机型,app兼容测试选择哪些机型才够全面呢?
  2. ArduinoYun的电源插座
  3. ajax 加载partial view ,并且 附加validate验证
  4. localhost、127.0.0.1对网络编程造成不通的说明
  5. 《走遍中国》珍藏版(五)
  6. java中的holder类_java – HashMap中Holder类的用途是什么?
  7. 小米全新5G旗舰手机即将登场 售价必将再创新高
  8. python画spc控制图_手把手教你SPC控制图怎么做以及SPC控制图分类
  9. ecshop 支持 php,ecshop支持PHP7的修改方法
  10. 20172315 2018-2019-1《程序设计与数据结构》课程总结
  11. 获取用户的中文姓名,手机号,邮箱,地址,年龄等随机信息,MD5加密等常用的工具。
  12. php screw 密钥,php-screw php代码加密工具用法(整理)
  13. 常用桌面端软件开发语言整理
  14. 第十二届蓝桥杯 ——国际象棋
  15. 江湖中常说的“网格交易法”到底是什么?
  16. 实验五 大学数据库系统中,使用游标编写存储过程,输入学号查询成绩
  17. C语言实现10只小猪称体重
  18. IP地址格式转换(htonl、ntohl;inet_addr、inet_ntoa)
  19. 福昕 无法高亮 解决方案及PDF快捷键
  20. BAT 批处理脚本教程(一)

热门文章

  1. 异常检测算法:Elliptic Envelope算法的python代码实现
  2. java 查看对象内存占用大小
  3. 腾讯副总裁邱岳鹏:云的发展要迈过三道关
  4. oracle11g連不上em,oracle11g em重建失败的几点解决办法
  5. c语言函数内判断嵌套常见错误,c语言不等于(c语言多个if函数怎么嵌套)
  6. Acrobat如何将PDF拆分为多个文档
  7. The Things Network LoRaWAN Stack V3 学习笔记 2.5 LoRa节点配置接入
  8. left join 和 left outer join (可解决多个表left join的问题)
  9. Objective C范型
  10. JAVA实现Excel模板填充