⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 m05_lianxuxitong.m

📁 MATLAB仿真技术与实例应用教程
💻 M
字号:
function [sys,x0,str,ts] = m05_lianxuxitong(t,x,u,flag)
% 定义连续系统的S函数.  
% 连续状态方程: 
%    x' = Ax + Bu
%    y  = Cx + Du
% 生成连续状态系统
A=[-1   -0.05
    1     0];
B=[1     -6
   0     -2];
C=[ 0    2
    1    0];
D=[-2    0
    2     0];

switch flag,
case 0,               %初始化状态
    [sys,x0,str,ts]=mdlInitializeSizes(A,B,C,D);
case 1,               %计算连续状态变量
    sys=mdlDerivatives(t,x,u,A,B,C,D);
case 3,               %计算系统输出
    sys=mdlOutputs(t,x,u,A,B,C,D);
case { 2, 4, 9 },     %未定义标示
    sys = [];
  otherwise           %处理错误
    error(['Unhandled flag = ',num2str(flag)]);
end
%==============初始化状态===================================================
function [sys,x0,str,ts]=mdlInitializeSizes(A,B,C,D)
sizes = simsizes;     %取系统默认设置
sizes.NumContStates  = 2;    %设置连续变量的个数
sizes.NumDiscStates  = 0;    %设置离散变量的个数
sizes.NumOutputs     = 2;    %设置输出变量的个数
sizes.NumInputs      = 2;    %设置输入变量的个数
sizes.DirFeedthrough = 1;    %设置输出量的计算
sizes.NumSampleTimes = 1;    %设置采样周期的个数

sys = simsizes(sizes);       %设置系统的大小参数
x0  = zeros(2,1);            %设置为零初始状态
str = [];                    %设置字符串矩阵
ts  = [0 0];                 %设置采样周期:[0 0]系统默认;[-1 0]继承输入信号的采样周期
%%==============计算连续状态变量============================================
function sys=mdlDerivatives(t,x,u,A,B,C,D)
sys = A*x + B*u;
%===============计算系统输出================================================
function sys=mdlOutputs(t,x,u,A,B,C,D)
sys = C*x + D*u;

⌨️ 快捷键说明

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