声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1536|回复: 2

[控制系统类] s函数参数问题求助

[复制链接]
发表于 2009-8-10 10:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
function [sys,x0,str,ts]=exp_pidf(t,x,u,flag,T,kp,ki,kd,MTab)
switch flag,
    case 0
        [sys,x0,str,ts]=mdlInitializesSizes(T);
    case 2
        sys=mdlUpdates(x,u,T)
    case 3
        sys=mdlOutputs(t,x,u,kp,ki,kd,MTab);
    case{1,4,9}
        sys=[];
    otherwise
        error(['Unhandled flag=',num2str(flag)]);
end
function [sys,x0,str,ts]=mdlInitializesSizes(T)
x0=[0;0;0];
str=[];
ts=[-1 0];
function sys=mdlUpdates(x,u,T)
sys=[u(1);x(2)+u(1)*T;(u(1)-u(2)/T)];
function sys=mdlOutputs(t,x,u,kp,ki,kd,MTab)
i=find(abs(x(1))>MTab(:,1));
if length(i)>0
    sys=MTab(i(1),2);
else
    sys=M[kp,ki,kd]*x;
end
if x(1)*x(3)|(abs(x(3))<eps)
    if abs(x(1))>=0.05
        sys=u(3)+2*kp*x(1);
    else
        sys=u(3)+0.4*kp*x(1);
    end
end
if x(1)*x(3)<0 & x(3)*u(4)<0
    if abs(x(1))>=0.05
        sys=u(3)+2*kp*u(2);
    else
        sys=u(3)+0.6*kp*u(2);
    end
end
if  abs(x(1))<=0.001
    sys=0.5*x(1)+0.010*x(2);
end
sys=[sys;x(3)];
这个程序在仿真的时候输入s-function parameters的时候怎么填
希望各位大侠指教
回复
分享到:

使用道具 举报

 楼主| 发表于 2009-8-10 14:08 | 显示全部楼层
怎么没人?没人知道?
 楼主| 发表于 2009-8-10 14:56 | 显示全部楼层
主要是看MTab是什么意思?
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-13 11:43 , Processed in 0.062768 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表