dlbmx.m

来自「二级倒立摆的建模及仿真」· M 代码 · 共 55 行

M
55
字号
function [sys,x0,str,ts]=dlbmx(t,x,u,flag)A=[1 -0.001682 0.001741 0.06073 0 0;    0 0.7493 -0.3947 0.2494 0.1802 -0.02049;    0 1.336 2.731 -0.2601 0.09551 0.2925;    0 -0.007999 0.01679 0.04079 -0.000909 0.001342;    0 -3.057 -4.611 1.76 0.7007 -0.3471;    0 15.73 20.23 -1.896 1.477 2.55]B=[0.07224;   -0.1294;  0.1349;   0.4976; -0.913;   0.9836;C=[1 0 0 0 0 0;   0 1 0 0 0 0;   0 0 1 0 0 0];switch flag,case 0,[sys,x0,str,ts]=mdlInitializeSizes(A,B,C);case 1,sys=mdlDerivatives(t,x,u,A,B,C);case 3,sys=mdlOutputs(t,x,u,A,B,C);case 2;sys=[];    case 4;        sys=[];    case 9;        sys=[];otherwise error(['Unhandled flag=',num2str(flag)]);endfunction [sys,x0,str,ts]=mdlInitializeSizes(A,B,C)sizes=simsizes;sizes.NumContStates=6;sizes.NumDiscStates=0;sizes.NumOutputs=3;sizes.NumInputs=1;sizes.DirFeedthrough=0;sizes.NumSampleTimes=1;sys=simsizes(sizes);x0=[0 (15/180)*3.1416 (10/180)*3.1416 0 0 0];str=[];ts=[-1 0];function sys=mdlDerivatives(t,x,u,A,B,C)sys=A*x+B*u;function sys=mdlOutputs(t,x,u,A,B,C)sys=C*x;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?