声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1363|回复: 1

[综合讨论] s-function parameters参数设置问题!!

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

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

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

x
本帖最后由 牛小贱 于 2014-3-24 14:10 编辑
  1. function [sys,x0,str,ts]=exp_pidf(t,x,u,flag,T,kp,ki,kd,MTab)
  2. switch flag,
  3.     case 0
  4.         [sys,x0,str,ts]=mdlInitializesSizes(T);
  5.     case 2
  6.         sys=mdlUpdates(x,u,T)
  7.     case 3
  8.         sys=mdlOutputs(t,x,u,kp,ki,kd,MTab);
  9.     case{1,4,9}
  10.         sys=[];
  11.     otherwise
  12.         error(['Unhandled flag=',num2str(flag)]);
  13. end
  14. function [sys,x0,str,ts]=mdlInitializesSizes(T)
  15. x0=[0;0;0];
  16. str=[];
  17. ts=[-1 0];
  18. function sys=mdlUpdates(x,u,T)
  19. sys=[u(1);x(2)+u(1)*T;(u(1)-u(2)/T)];
  20. function sys=mdlOutputs(t,x,u,kp,ki,kd,MTab)
  21. i=find(abs(x(1))>MTab(:,1));
  22. if length(i)>0
  23.     sys=MTab(i(1),2);
  24. else
  25.     sys=M[kp,ki,kd]*x;
  26. end
  27. if x(1)*x(3)|(abs(x(3))<eps)
  28.     if abs(x(1))>=0.05
  29.         sys=u(3)+2*kp*x(1);
  30.     else
  31.         sys=u(3)+0.4*kp*x(1);
  32.     end
  33. end
  34. if x(1)*x(3)<0 & x(3)*u(4)<0
  35.     if abs(x(1))>=0.05
  36.         sys=u(3)+2*kp*u(2);
  37.     else
  38.         sys=u(3)+0.6*kp*u(2);
  39.     end
  40. end
  41. if  abs(x(1))<=0.001
  42.     sys=0.5*x(1)+0.010*x(2);
  43. end
  44. sys=[sys;x(3)];
复制代码
这个程序在仿真的时候输入s-function parameters的时候怎么填
希望各位大侠指教
:handshake

点评

反对: 2.0
反对: 2
希望LZ注意使用”代码<>复制“功能以及帖子标题要概括问题!!  发表于 2014-3-24 14:12
回复
分享到:

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-15 17:32 , Processed in 0.084025 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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