Z2_ 2022-05-03 19:28 采纳率: 100%
浏览 21
已结题

s-function函数中灰色预测控制器设计

问题遇到的现象和发生背景

这是我从网上找到的代码,通过s-function函数封装,运用到simulink中进行仿真时和纯PID控制效果完全一样,请大家看一下代码哪里有问题。另外,我觉得是不是输出数据没有以一个序列的形式输入到灰色预测模块中导致的,求大家解答一下我的疑问,万分感谢。

问题相关代码,请勿粘贴截图

function [sys,x0,str,ts] = gm(t,x,u,flag)
switch flag,
case 0,
[sys,x0,str,ts]=mdlInitializeSizes
case 3,
sys=mdlOutputs(t,x,u)
case{1,2,4,9}
sys=[];
otherwise
error(['Unhandled flag = ',num2str(flag)])
end
function [sys,x0,str,ts]=mdlInitializeSizes
sizes = simsizes
sizes.NumContStates = 0;
sizes.NumDiscStates = 0;
sizes.NumOutputs = 1;
sizes.NumInputs = 1;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1;
sys = simsizes(sizes);
x0 = [];
str = [];
ts = [-1 0];
set_param(gcb,'UserData',[0 0 0] ); %这个语句中UserData是否是自己创建的

img

运行结果及报错内容

运行了一下和纯pid的结果没有区别

我的解答思路和尝试过的方法

这是控制结构图

img

我想要达到的结果
  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 5月11日
    • 创建了问题 5月3日