一阶倒立摆matlab仿真.rar

  • tianbai
    了解作者
  • matlab
    开发工具
  • 158KB
    文件大小
  • rar
    文件格式
  • 0
    收藏次数
  • 10 积分
    下载积分
  • 2
    下载次数
  • 2021-03-10 01:40
    上传日期
一阶倒立摆仿真matlab程序,包含仿真结果和simulink仿真
一阶倒立摆matlab仿真.rar
  • 一阶倒立摆matlab仿真
  • 代码部分展示1.png
    33.5KB
  • lip_lqr.slxc
    4.9KB
  • lqr1_funtion.m
    158B
  • change.m
    286B
  • 角度变化曲线仿真.png
    25.5KB
  • 位移变化曲线仿真.png
    29.8KB
  • 运算结果.png
    10KB
  • simulink仿真.png
    17.7KB
  • 代码部分展示2.png
    29.2KB
  • main_lip1.m
    1.9KB
  • lip_lqr.slx
    29.1KB
内容介绍
% clear;clc A = [ 0 1 0 0; 0 0 0 0; 0 0 0 1; 0 0 29.493 0]; B = [ 0 1 0 3]'; C = [ 1 0 0 0; 0 0 1 0]; D = [0]; Q11 = 1000; %代表小车位置的权重 Q22 = 0; %小车速度的权重 Q33 = 200; %代表摆杆角度的权重 Q44 = 0; %摆杆角速度的权重 % 当Q11为100时,Q33取1,10或100对曲线影响不大,好像是代表摆杆角度权重的值不用取太大, % 太大了对结果也没有更大的贡献,待验证 Q = [Q11 0 0 0; 0 Q22 0 0; 0 0 Q33 0; 0 0 0 Q44]; R = 1; %控制能量的限制 K = lqr(A,B,Q,R) sim('lip_lqr.slx',4); PHI = C/(-A+B*K)*B % t_q11_10 = Time; % ang_q11_10 = Ang*180/pi; % pos_q11_10 = Pos; % t_q22_1000 = Time; % ang_q22_1000 = Ang*180/pi; % pos_q22_1000 = Pos; % t_q33_1000 = Time; ang_q33_1000 = Ang*180/pi; pos_q33_1000 = Pos; % t_q44_1000 = Time; % ang_q44_1000 = Ang*180/pi; % pos_q44_1000 = Pos; figure(1) set(gcf,'Units','centimeters','Position',[10 10 5*1.45 4*1.45]);%设置图片大小为 5*1.45cm× 4*1.45cm plot(Time, Ang*180/pi, 'b'); xlabel('t(s)'); ylabel('\theta (°)' ); title('角度变化曲线(仿真)') hold grid on; figure(2) set(gcf,'Units','centimeters','Position',[20 10 5*1.45 4*1.45]);%设置图片大小为 5*1.45cm× 4*1.45cm plot(Time, Pos, 'b'); xlabel('t(s)'); ylabel('x (m)'); title('位置变化曲线(仿真)') hold on grid on; % Ac = [(A-B*K)]; % % Bc = B; % Cc = [C]; % Dc = [D]; % Cn = [1 0 0 0 ]; % % s = size(A,1); % Z = [zeros(1,s) 1]; % % N = inv([A,B;Cn,0])*Z'; % Nx = N(1:s); % Nu = N(1+s); % Nbar = Nu + K*Nx; % % Bcn = [Nbar*B]; % x0 = [0 0 10*pi/180 0]; % T = 0:0.01:10; % U = zeros(size(T)); % [Y,X] = lsim(Ac,Bcn,Cc,Dc,U,T,x0); % xpos = Y(:,1); % xangle = Y(:,2); % % figure(20) % plot(T,xpos,':'); % grid on % title('位置变化曲线') % xlabel('t (s)'); ylabel('x (m)') % figure(10) % plot(T,xangle*180/pi,'--') % grid on % title('角度变化曲线') % xlabel('t (s)'); ylabel('\theta (°)')
评论
  • xmcc 2022-11-10 01:54:54
    代码不错,可以运行
相关推荐