• 大小: 0.07M
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2021-06-16
  • 语言: Matlab
  • 标签: 其他  

资源简介

2自由度机械臂PiD控制MATLAB仿真.zip

资源截图

代码片段和文件信息

function [sysx0strts] = spacemodel(txuflag)
%sys 随flag变化;x0状态变量初始值;str保留参数;ts=[ts(1)采样周期ts(2)偏移量]
%t采样时间;x状态变量;u输入;flag状态标志
switch flag
    case 0%系统初始化
        [sysx0strts]=mdlInitializeSizes;
    case 1%是否要求导数
        sys=[];
    case 2%是否有离散状态,没有sys=[]
        sys=[];
    case 3%计算输出,没有sys=[]
        sys=mdlOutputs(txu);
    case 4%计算下一状态采样时间,连续系统sys=[]
        sys=[];
    case 9%结束,一般sys=[]
        sys=[];
    otherwise
        error([‘Unhandled flag=‘num2str(flag)]);
end

function [sysx0strts]=mdlInitializeSizes
%初始化
sizes = simsizes;
sizes.NumOutputs     = 2;
%模块输出变量个数
sizes.NumInputs      = 6;
%模块输入变量个数
sizes.DirFeedthrough = 1;
%模块输入是否能直接控制输出
sizes.NumSampleTimes = 1;
%采样时间个数,至少是1
sys = simsizes(sizes);
x0  = [];
%状态变量
str = [];
ts  = [0 0];
%ts(1)=0表示连续系统
function sys=mdlOutputs(txu)
km=100;
qm1=u(1);
dqm1=u(2);
qm2=u(3);
dqm2=u(4);
qm=[qm1;qm2];
dqm=[dqm1;dqm2];
Bm=100;
L1=0.7;
L2=0.5;
g=9.81;
m1=10;
m2=5;
a=L2*L2*m2+L1*L1*(m1+m2);
b=L1*L2*m2;
c=L2*L2*m2;
G=[1/L2*g*c*cos(qm1+qm2)+1/L1*(a-c)*cos(qm1);1/L2*g*c*cos(qm1+qm2)];
tolm=-km*(qm-[u(5);u(6)])-Bm*dqm+G;
sys(1)=tolm(1);
sys(2)=tolm(2);




 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        1347  2018-09-21 19:37  ctrl11.m
     文件        1322  2018-09-21 19:02  ctrl12.m
     文件        1147  2018-09-20 09:36  F.m
     文件       28270  2018-09-26 19:47  fed.slx
     文件        1680  2018-09-26 10:23  plant11.m
     文件        1679  2018-09-26 10:30  plant12.m
     文件        8701  2018-09-26 19:32  tled.png
     文件        8757  2018-09-26 19:40  u2ntitled.png
     文件        9713  2018-09-26 19:36  un2titled.png
     文件        8212  2018-09-26 19:26  untitled.png
     文件       10311  2018-09-26 19:43  untitlQQed.png

评论

共有 条评论