声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1710|回复: 6

[基本模块类] 怎么编写微分的S函数啊?

[复制链接]
发表于 2008-11-18 18:56 | 显示全部楼层 |阅读模式

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

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

x
请问如果用M编写S函数的话,S环节怎么写啊?输出是输入的导数,一般的用状态方程也不好写,因为分子阶数比分目高,微分环节是PID的一部分,现在想自己编写连续PID的S函数,请高手支招
回复
分享到:

使用道具 举报

发表于 2008-11-19 08:18 | 显示全部楼层
s函数有专门的导数输出
 楼主| 发表于 2008-11-19 12:42 | 显示全部楼层
哦,直接有导数输出,能不能告诉我相关的资料在哪里?
发表于 2008-11-20 13:06 | 显示全部楼层
和你碰到一样的问题哈,帮你顶一下,希望有好心人帮忙

我也不知道output那地方如何写
发表于 2008-11-21 09:24 | 显示全部楼层
看看s函数的模版
发表于 2008-11-21 18:50 | 显示全部楼层
SIGH,高手MS不屑于这些基本问题
发表于 2008-11-21 22:58 | 显示全部楼层
function [sys,x0,str,ts] = spid(t,x,u,flag,Kp,Ki,Kd)
switch flag,
case 0,
      sizes = simsizes;
      sizes.NumContStates = 1;
      sizes.NumDiscStates = 0;
      sizes.NumOutputs     = 1;
      sizes.NumInputs      = 1;
      sizes.DirFeedthrough = 1;
      sizes.NumSampleTimes = 1;
      sys = simsizes(sizes);
      x0=0;
      str=[];
      ts=[0,0];
case 1,
      sys=Ki*u;  % dx/dt=Ki*u;
case 3,           
      sys=Kp*u+x+Kd*u*?; %y=Kp*u+x+?     就剩下这一小截不会写了,请高手指点
      
case {2,4,9},
    sys = [];
end
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-5-21 11:57 , Processed in 0.054773 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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