精华内容
下载资源
问答
  • 鲁棒控制工具箱提供了一系列的函数和工具以支持带有不确定元素的多输入多输出控制系统的设计。在该工具箱的帮助下,你可以建立带有不确定参数和动态特性的LTI模型,也可以分析MIMO系统的稳定性裕度和最坏情况下的...
  • 案例来源于《现代鲁棒控制理论与应用》(梅生伟等) 程序已经调试通过,对于利用matlab鲁棒控制工具箱很有启发。
  • 风力发电系统中Matlab鲁棒控制工具箱的应用,黄金杰,沈恂,针对风力发电系统中风速变化的随机性、风机力矩的扰动、高频未建模的不确定性,本文利用Hinf回路成形算法对成形后的系统设计鲁棒��
  • MATLAB鲁棒控制器实现

    千次阅读 2018-05-25 12:02:22
    % 基于LMI算法鲁棒控制器设计 setlmis([]); %新建LMI不等式 C1=[1000 0 0 0; 0 200 0 0; 0 0 10 0; 0 0 0 1];% 矩阵C1的选择,可修改,影响控制器的精度 X = lmivar(1,[4 1]); % 定义实对称矩阵X 4*4 W=lmivar(2,...
     clc
     clear all
    % 平衡小车相关参数;
    g = 9.81;						% gravity acceleration重力加速度 [m/sec^2]
    M = 0.015;						% wheel weight车轮重量(个人更改) [kg]
    m = 1.5;						% body weight车体重量(个人更改) [kg]
    L = 0.045;			            % 车轮轴心到质心的距离                             
    b = 0.1;                        % 小车的摩擦系数                             
    J= m * L^2 / 3;             % 小车的转动惯量m * L^2 / 3;
    f=0.002;                       %小车的摩擦阻力距
    
    
    % 状态空间矩阵的计算
    tmp=J*(M+m)+m*M*J^2;
    
    
    % A矩阵
    A_22= -(J+m*J^2)*b/tmp;
    A_23= m*m*g*J/tmp;
    A_24= -m*L*f/tmp;
    A_42= -m*L*b/tmp;
    A_43= m*g*L*(M+m)/tmp;
    A_44= -f*(M+m)/tmp;
    %B1矩阵
    B1_2=m*L/tmp;
    B1_4=(M+m)/tmp;
    %B2矩阵
    B2_2=J+m*L*L/tmp;
    B2_4=m*L/tmp;
    
    
    % 矩阵的表示
    A=[0 1 0 0;0 A_22 A_23 A_24;0 0 0 1;0 A_42 A_43 A_44];
    B1=[0;B1_2;0;B1_4];
    B2=[0;B2_2;0;B2_4];
    D12=[0 0 0 1]';
    
    
    % 基于LMI算法鲁棒控制器设计
    setlmis([]); %新建LMI不等式
    C1=[1000 0   0    0;
        0    2
    展开全文
  • Matlab 鲁棒控制宝典

    2011-03-17 15:18:04
    Matlab 鲁棒控制宝典 对于学习鲁棒控制的仿真工具
  • 基于MATLAB鲁棒控制工具箱,设计出计算机硬盘磁头的H无穷鲁棒控制器,具有良好的性能。
  • 风力发电系统中MATLAB鲁棒控制工具箱的应用.pdf
  • 风力发电系统中MATLAB鲁棒控制工具箱的应用
  • 【实例简介】这是robust control design with matlab 书里的部分M文件,挺不错的【实例截图】【核心代码】6ded1493-7e1b-4413-aa1e-d5b2e24cca52└── Robust Control with Matlab Code├── column│ ├── clp_...

    【实例简介】

    这是robust control design with matlab 书里的部分M文件,挺不错的

    【实例截图】

    【核心代码】

    6ded1493-7e1b-4413-aa1e-d5b2e24cca52

    └── Robust Control with Matlab Code

    ├── column

    │   ├── clp_col.m

    │   ├── cola_lin.m

    │   ├── cola_lv_lin.m

    │   ├── cola_lv.m

    │   ├── colamod.m

    │   ├── colas.m

    │   ├── contents.m

    │   ├── dk_col.m

    │   ├── frs_col.m

    │   ├── hin_col.m

    │   ├── init_col.m

    │   ├── lsh_col.m

    │   ├── mod_col.m

    │   ├── ms_col.m

    │   ├── mu_col.m

    │   ├── nls_col.mdl

    │   ├── olp_col.m

    │   ├── pfr_col.m

    │   ├── prt_col.m

    │   ├── red_col.m

    │   ├── sim_col.m

    │   ├── unc_col.m

    │   ├── wfit.m

    │   └── wts_col.m

    ├── contents

    │   └── Readme.txt

    ├── flexman

    │   ├── betal_flm.m

    │   ├── clp_flm.m

    │   ├── contents.m

    │   ├── dk_flm.m

    │   ├── ffeq_flm.m

    │   ├── frs_flm.m

    │   ├── hin_flm.m

    │   ├── init_flm.m

    │   ├── koef50_flm.m

    │   ├── koef_flm.m

    │   ├── mod_flm.m

    │   ├── ms_flm.m

    │   ├── mu_flm.m

    │   ├── nls_flm.mdl

    │   ├── nophi_flm.m

    │   ├── olp_flm.m

    │   ├── par_flm.m

    │   ├── par_flm_plot.m

    │   ├── pd_flm.m

    │   ├── pdfrs_flm.m

    │   ├── pfrsa_flm.m

    │   ├── phid2v_flm.m

    │   ├── phi_flm.m

    │   ├── red_flm.m

    │   ├── refer_flm.m

    │   ├── s_flm.m

    │   ├── sim_flm.m

    │   ├── wts_flm.m

    │   └── xphiv_flm.m

    ├── hdd

    │   ├── cfr_hdd.m

    │   ├── c_hdd.mdl

    │   ├── clp_hdd.m

    │   ├── contents.m

    │   ├── ctr_hdd.m

    │   ├── dcl_hdd.m

    │   ├── ddk_hdd.m

    │   ├── dfr_hdd.m

    │   ├── d_hdd.mdl

    │   ├── dk_hdd.m

    │   ├── dlp_hdd.m

    │   ├── dms_hdd.m

    │   ├── dmu_hdd.m

    │   ├── dsl_hdd.m

    │   ├── dwt_hdd.m

    │   ├── frs_hdd.m

    │   ├── hinf_hdd.m

    │   ├── init_c_hdd.m

    │   ├── init_d_hdd.m

    │   ├── kf_hdd.m

    │   ├── lsh_hdd.m

    │   ├── mod_hdd.m

    │   ├── ms_hdd.m

    │   ├── mu_hdd.m

    │   ├── olp_hdd.m

    │   ├── prf_hdd.m

    │   ├── rbp_hdd.m

    │   ├── rbs_hdd.m

    │   ├── red_hdd.m

    │   ├── sim_hdd.m

    │   ├── vrs_hdd.m

    │   ├── wcp_hdd.m

    │   ├── worst_hdd.m

    │   ├── wpl_hdd.m

    │   └── wts_hdd.m

    ├── mds

    │   ├── clf_mds.m

    │   ├── clp_mds.m

    │   ├── contents.m

    │   ├── dk_mds.m

    │   ├── frs_mds.m

    │   ├── hin_mds.m

    │   ├── kf_mds.m

    │   ├── lsh_mds.m

    │   ├── mod_mds.m

    │   ├── ms_mds.m

    │   ├── nrp_mds.m

    │   ├── olp_mds.m

    │   ├── pcf_mds.m

    │   ├── pdc_mds.m

    │   ├── pfr_mds.m

    │   ├── ppf_mds.m

    │   ├── prf_mds.m

    │   ├── prt_mds.m

    │   ├── psf_mds.m

    │   ├── rbp_mds.m

    │   ├── rbs_mds.m

    │   ├── red_mds.m

    │   ├── rob_mds.m

    │   ├── sen_mds.m

    │   ├── sim_mds.m

    │   ├── sys_mds.m

    │   ├── wcp_mds.m

    │   └── wts_mds.m

    ├── pendul

    │   ├── act_pend.m

    │   ├── clp_pend.m

    │   ├── contents.m

    │   ├── c_pend.mdl

    │   ├── dcl_pend.m

    │   ├── dk_pend.m

    │   ├── d_pend.mdl

    │   ├── frs_pend.m

    │   ├── hinf_pend.m

    │   ├── inc_pend.m

    │   ├── init_c_pend.m

    │   ├── init_d_pend.m

    │   ├── mod_pend.m

    │   ├── ms_pend.m

    │   ├── mu_pend.m

    │   ├── olp_pend.m

    │   ├── pfr_pend.m

    │   ├── red_pend.m

    │   ├── sim_pend.m

    │   ├── s_pend.m

    │   ├── trans1.m

    │   ├── trans1_m.m

    │   ├── trans2.m

    │   ├── trans2_m.m

    │   ├── wcp_pend.m

    │   ├── wfit.m

    │   ├── wpl_pend.m

    │   ├── wsn_pend.m

    │   └── wts_pend.m

    └── rocket

    ├── acf_rock.m

    ├── air_data.m

    ├── cfn_rock.m

    ├── clp_rock.m

    ├── contents.m

    ├── c_rock.mdl

    ├── cx_fct.m

    ├── cy_fct.m

    ├── dcl_rock.m

    ├── ddk_rock.m

    ├── dfr_rock.m

    ├── dif_rock.m

    ├── dk_rock.m

    ├── dlp_rock.m

    ├── dms_rock.m

    ├── dmu_rock.m

    ├── d_rock.mdl

    ├── frc_rock.m

    ├── frs_rock.m

    ├── hin_rock.m

    ├── inc_rock.m

    ├── init_c_rock.m

    ├── init_d_rock.m

    ├── mmn_rock.m

    ├── mod_rock.m

    ├── ms_rock.m

    ├── mu_rock.m

    ├── olp_rock.m

    ├── prm_rock.m

    ├── prt_rock.m

    ├── red_rock.m

    ├── sim_rock.m

    ├── sol_rock.m

    ├── s_rock.m

    ├── sys_rock.m

    ├── theta_rock.m

    ├── wsa_rock.m

    └── wts_rock.m

    8 directories, 184 files

    展开全文
  • MATLAB鲁棒控制设计

    2015-05-01 16:34:52
    这是一本关于鲁棒控制的书,主要内容是关于如何利用MATLAB 进行相关鲁棒控制的设计
  • matlab】单摆鲁棒滑模控制matlab实现从简到繁

    千次阅读 多人点赞 2020-07-01 09:30:55
    这是前几周现代鲁棒控制课程一位同学的大作业,ppt做的很详细,但是并没有分享代码,我就根据ppt里的单摆模型以及所涉及到的鲁棒滑模控制方法和思路,自己搭了一套仿真程序,非常便捷,需要切换控制方法时只需要把...

    前言

    这是前几周现代鲁棒控制课程一位同学的大作业,ppt做的很详细,但是并没有分享代码,我就根据ppt里的单摆模型以及所涉及到的鲁棒滑模控制方法和思路,自己搭了一套仿真程序,非常便捷,需要切换控制方法时只需要把目标代码取消注释,便可以跑出相应结果,便于新手对鲁棒滑膜控制进行学习。

    鲁棒滑模控制

    知识点部分引用截图:

    定义部分

    在这里插入图片描述
    在这里插入图片描述

    基本设计过程

    在这里插入图片描述
    在这里插入图片描述

    仿真

    基本模型

    在这里插入图片描述

    %% 单摆相关参数
    theta = -1.00;                                                           %   攻角deg   x1
    omegaz =  2.00;                                                          %   俯仰角速度,deg/s   x2
    del_theta = 0.00;                                                           %   攻角微分deg   
    del_omegaz =  0.00;                                                          %   俯仰角速度微分,deg/s
    g = 9.78;                                                                   %重力加速度
    J = 1.2;                                                                   %   转动惯量kg/m^2
    L = 1.74;                                                                     %   摆长m
    V_s = 0.18;                                                                     %   摩擦系数m/s^2
    
        %二阶系统非线性微分方程
        del_theta = omegaz;
        del_omegaz = - 0.5 *g * sin(theta) / L - V_s * omegaz / J + u / J;
        f = - 0.5 *g * sin(theta) / L - V_s * omegaz / J;
    

    滑模控制

    在这里插入图片描述

        method = '滑模控制';
        s = del_theta + c * theta;                                                              %   滑模面
        u = - ep * sign(s) - f - c * omegaz;        %滑模控制基于趋近律
        u = - f - c * omegaz;        %滑模控制基于等效控制原理
    

    在这里插入图片描述

    终端滑模控制

    在这里插入图片描述

        method = '终端滑模控制';
        s = omegaz + alpha * theta^(q/p);                                                              %   终端滑模面
        u = - ep * sign(s)- f - alpha * beta * abs(theta)^(beta - 1) * omegaz;        %终端滑模控制基于趋近律
        u = - f - alpha * beta * abs(theta)^(beta - 1) * omegaz;        %终端滑模控制基于等效控制原理
    

    在这里插入图片描述

    快速终端滑模控制

    在这里插入图片描述

        method = '快速终端滑模控制';
        s = omegaz + k1 * theta^(a1) + k2 * theta^(a2);                                                              %   快速终端滑模面
        u = - f - k1 * a1 * abs(theta)^(a1 - 1) * omegaz - k2 * a2 * abs(theta)^(a2 - 1) * omegaz;        %快速终端滑模控制基于等效控制原理
    
    

    在这里插入图片描述

    非奇异终端滑模控制

    在这里插入图片描述

        method = '非奇异终端滑模控制';
        s = theta + alpha * omegaz^(p/q);                                                              %   非奇异终端滑模面
        u = - f - q/(alpha * p) * omegaz ^ (2-p/q);        %非奇异终端滑模控制基于等效控制原理
    
    

    在这里插入图片描述

    非奇异快速终端滑模控制

    在这里插入图片描述

        method = '非奇异快速终端滑模控制';
        s = theta + k3 * sign(theta)^(a3) + k4 * sign(omegaz)^(a4);                                                              %   非奇异快速终端滑模面
        u = (- omegaz - k3 * a3 * abs(theta)^(a3 - 1) * omegaz)/(k4 * a4 * abs(omegaz)^(a4 - 1))- f ;        %非奇异快速终端滑模控制基于等效控制原理
    
    

    在这里插入图片描述
    注:控制器中基于趋近律和基于等效控制原理的区别为是否带有滑模面的符号函数,可以根据前两个控制器的代码观察得出。

    整体代码

    % 单摆滑模控制测试仿真
    %根据现代鲁棒控制桑豪ppt
    % Jun 24 2020 Wed  Jonny Su
    clc;
    close all;
    clear all;
    cd ('D:\OneDrive - 徐州开放大学\NPU\program\Morphing\Robust');
    %% 单摆相关参数
    theta = -1.00;                                                           %   攻角deg   x1
    omegaz =  2.00;                                                          %   俯仰角速度,deg/s   x2
    del_theta = 0.00;                                                           %   攻角微分deg   
    del_omegaz =  0.00;                                                          %   俯仰角速度微分,deg/s
    g = 9.78;                                                                   %重力加速度
    J = 1.2;                                                                   %   转动惯量kg/m^2
    L = 1.74;                                                                     %   摆长m
    V_s = 0.18;                                                                     %   摩擦系数m/s^2
    
    %% 控制参数
    
    %   滑模面
    c = 0.3;
    ep = 0.5;
    u = 0;
    
    %   终端滑模面&非奇异终端滑模面 
    % alpha = 0,9;      %什么神仙bug
    alpha = 0.9;
    p = 9;
    q = 7;
    
    %   快速终端滑模面
    k1 = 1.1;
    k2 = 0.9;
    a1 = 9/7;
    a2 = 7/9;
    
    %   非奇异快速终端滑模面
    k3 = 1.1;
    k4 = 0.9;
    a3 = 3;
    a4 = 9/7;
    beta = q/p;  %两个奇数
    
    %% Simulation parameters
    
    step = 0.01;               %步长
    t = 0;                      %时间
    n = 1;                      %步数
    
    %% 二阶系统仿真
    
    while (t < 50)              %仿真时间50s
        %二阶系统非线性微分方程
        del_theta = omegaz;
        del_omegaz = - 0.5 *g * sin(theta) / L - V_s * omegaz / J + u / J;
        f = - 0.5 *g * sin(theta) / L - V_s * omegaz / J;
        %% 控制器设计
    
        %滑模控制
        method = '滑模控制';
        s = del_theta + c * theta;                                                              %   滑模面
        u = - ep * sign(s) - f - c * omegaz;        %滑模控制基于趋近律
    %     u = - f - c * omegaz;        %滑模控制基于等效控制原理
    
        %终端滑模控制
    %     method = '终端滑模控制';
    %     s = omegaz + alpha * theta^(q/p);                                                              %   终端滑模面
    %     u = - ep * sign(s)- f - alpha * beta * abs(theta)^(beta - 1) * omegaz;        %终端滑模控制基于趋近律
    %     u = - f - alpha * beta * abs(theta)^(beta - 1) * omegaz;        %终端滑模控制基于等效控制原理
    
        %快速终端滑模控制
    %     method = '快速终端滑模控制';
    %     s = omegaz + k1 * theta^(a1) + k2 * theta^(a2);                                                              %   快速终端滑模面
    %     u = - f - k1 * a1 * abs(theta)^(a1 - 1) * omegaz - k2 * a2 * abs(theta)^(a2 - 1) * omegaz;        %快速终端滑模控制基于等效控制原理
    
        %非奇异终端滑模控制
    %     method = '非奇异终端滑模控制';
    %     s = theta + alpha * omegaz^(p/q);                                                              %   非奇异终端滑模面
    %     u = - f - q/(alpha * p) * omegaz ^ (2-p/q);        %非奇异终端滑模控制基于等效控制原理
    
        %非奇异快速终端滑模控制
    %     method = '非奇异快速终端滑模控制';
    %     s = theta + k3 * sign(theta)^(a3) + k4 * sign(omegaz)^(a4);                                                              %   非奇异快速终端滑模面
    %     u = (- omegaz - k3 * a3 * abs(theta)^(a3 - 1) * omegaz)/(k4 * a4 * abs(omegaz)^(a4 - 1))- f ;        %非奇异快速终端滑模控制基于等效控制原理
    
    %% 状态更新 
        states_old = [theta;omegaz];      %弹道倾角 俯仰角速度
        del = [del_theta;del_omegaz];                 %微分量
        states_new = states_old + del * step;           %更新 赋值
        theta = states_new(1);
        omegaz = states_new(2);
        %   保存数据
        Vehicle_states(n,:) = [theta;omegaz]; %
        Del_states(n,:) = [del_theta;del_omegaz];         %
        Time(n) = t;   %时间记录
        Control_states(n,:) =  [u];            %控制变量
        %  时间更新
        t = t + step;  %仿真步长
        n = n + 1;  %计数+1
    end
    
    
    %% 绘图检验
    figure;
    % 速度
    plot(Time,Vehicle_states(:,1),Time,Vehicle_states(:,2),'linewidth',1.5);
    %axis([0 100 1400 1600]) ;
    legend('$\theta(^\circ)$','$\omega_z(^\circ/s)$','FontName','Times New Roman','FontSize',14,'Interpreter','latex')
    grid on;
    title(['控制方法为 ',method,' 时的响应曲线']);
    xlabel('$T(s)$','FontName','Times New Roman','FontSize',14,'Interpreter','latex');
    % ylabel('$\theta(^\circ)$','FontName','Times New Roman','FontSize',14,'Interpreter','latex');
    % set(gca,'FontName','Times New Roman','FontSize',14,'linewidth',1.5);
    
    figure;
    plot(Time,Control_states(:,1),'linewidth',1.5);
    %axis([0 100 18500 21500]) ;
    grid on;
    title(['控制方法为 ',method,' 时的输入信号']);
    xlabel('$T(s)$','FontName','Times New Roman','FontSize',14,'Interpreter','latex');
    ylabel('$input$','FontName','Times New Roman','FontSize',14,'Interpreter','latex');
    % set(gca,'FontName','Times New Roman','FontSize',14,'linewidth',1.5);
    

    以上就是单摆鲁棒滑模控制matlab实现的全部内容,欢迎讨论交流。

    欢迎访问我的个人网站 http://www.josu.top/

    展开全文
  • 利用matlab实现H-infinity鲁棒控制%------------------------------------------------------------------------- %Plant:G=200/((10s+1)(0.05s+1)^2) %方法1:直接方法,利用mu-toolsG=nd2sys(1,conv([10,1],conv(...

    利用matlab实现H-infinity鲁棒控制

    %------------------------------------------------------------------------- %Plant:G=200/((10s+1)(0.05s+1)^2) %方法1:直接方法,利用mu-tools

    G=nd2sys(1,conv([10,1],conv([0.05,1],[0.05 1])),200); %方法2:control system toolbox s=tf('s');

    Gcst=200/((10*s+1)*(0.05*s+1)^2); [a,b,c,d]=ssdata(balreal(Gcst)); G=pck(a,b,c,d);

    %权重:Ws=(s/M+w0)/(s+w0*A),Wks=1 M=1.5;w0=10;A=1.e-4;

    Ws=nd2sys([1/M w0],[1 w0*A]); Wks=1;

    %------------------------------------------------------------------------- %建立广义系统P

    %------------------------------------------------------------------------- %方法0:直接方法 %/z1\ /Ws -Ws*G\ /r\ %|z2| =|0 Wks | | | %\ v/ \I -G / \u/

    %传递函数表达方法

    Z1=sbs(Ws,mmult(-1,Ws,G)); Z2=sbs(0,Wks);

    V=sbs(1,mmult(-1,G)); P0=abv(Z1,Z2,V);

    %通常情况下P0并不是最小实现,所以需要降阶 [a,b,c,d]=unpck(P0);

    [ab,bb,cb,db]=ssdata(balreal(minreal(ss(a,b,c,d)))); P0=pck(ab,bb,cb,db); %此时得到变量为System类型

    %------------------------------------------------------------------------- %建立广义系统P

    %------------------------------------------------------------------------- %方法1:直接方法 %/z1\ /W1 -W1*G\ /r\ %|z2| =|0 W2 | | | %\ v/ \I -G / \u/

    %子系统的ss实现 [A,B,C,D]=unpck(G);

    [A1,B1,C1,D1]=unpck(Ws);

    展开全文
  • MATLAB7.8鲁棒控制宝典

    2009-08-16 16:30:07
    MATLAB7.8鲁棒控制宝典MATLAB7.8鲁棒控制宝典MATLAB7.8鲁棒控制宝典MATLAB7.8鲁棒控制宝典
  • The research of independent Application of Matlab Robust Control Toolbox for Wind Power Generation SystemHuang Jinjie1黄金杰 (1967—),男,黑龙江省哈尔滨市,哈尔滨理工大学教授,博导,研究方向为复杂...
  • 这里借助一篇综述文献讲一下鲁棒预测控制(Robust MPC)的... 鲁棒控制鲁棒控制理论便是为研究不确定性对系统带来的影响而发展起来的。鲁棒性:指控制系统在一定(结构,大小)的参数摄动下,维持某些性能的特性。由...
  • 非线性鲁棒控制simulink仿真建模 模型完整 仿真结果清晰

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,615
精华内容 1,046
关键字:

matlab鲁棒控制

matlab 订阅