小兰不讲理 2021-11-26 15:38 采纳率: 100%
浏览 45
已结题

仿照文档搭建模型,运行出错。

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

我要学习模糊控制,所以仿照您《simulink实现模糊PID控制》这篇文章,按照您里边的流程我搭建了如下模型:

img

img

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

我的模糊代码:


[System]
Name='fuzzu_PID'
Type='mamdani'
Version=2.0
NumInputs=2
NumOutputs=3
NumRules=49
AndMethod='min'
OrMethod='max'
ImpMethod='min'
AggMethod='max'
DefuzzMethod='centroid'

[Input1]
Name='E'
Range=[-3 3]
NumMFs=7
MF1='NB':'trimf',[-1.333 -1 -0.6666]
MF2='NM':'trimf',[-1 -0.6666 -0.3334]
MF3='NS':'trimf',[-0.6666 -0.3334 0]
MF4='ZO':'trimf',[-0.3334 0 0.3335]
MF5='PS':'trimf',[0 0.3335 0.6665]
MF6='PM':'trimf',[0.3335 0.6665 1]
MF7='PB':'trimf',[0.6665 1 1.333]

[Input2]
Name='EC'
Range=[-3 3]
NumMFs=7
MF1='NB':'trimf',[-8 -6 -4]
MF2='NM':'trimf',[-6 -4 -2]
MF3='NS':'trimf',[-4 -2 0]
MF4='ZO':'trimf',[-2 0 2]
MF5='PS':'trimf',[0 2 4]
MF6='PM':'trimf',[2 4 6]
MF7='PB':'trimf',[4 6 8.004]

[Output1]
Name='P'
Range=[-1 1]
NumMFs=7
MF1='NB':'trimf',[-0.02333 -0.02 -0.01667]
MF2='NM':'trimf',[-0.02 -0.01667 -0.01333]
MF3='NS':'trimf',[-0.01667 -0.01333 -0.01]
MF4='ZO':'trimf',[-0.01333 -0.01 -0.006666]
MF5='PS':'trimf',[-0.01 -0.006666 -0.003334]
MF6='PM':'trimf',[-0.006666 -0.003334 0]
MF7='PB':'trimf',[-0.003334 0 0.00334]

[Output2]
Name='I'
Range=[-1 1]
NumMFs=7
MF1='NB':'trimf',[-0.0001333 -0.0001 -6.667e-05]
MF2='NM':'trimf',[-0.000100529100529101 -6.71991005291005e-05 -3.38591005291005e-05]
MF3='NS':'trimf',[-6.667e-05 -3.333e-05 0]
MF4='ZO':'trimf',[-3.333e-05 -6.353e-22 3.333e-05]
MF5='PS':'trimf',[0 3.333e-05 6.667e-05]
MF6='PM':'trimf',[3.333e-05 6.667e-05 0.0001]
MF7='PB':'trimf',[6.667e-05 0.0001 0.0001333]

[Output3]
Name='D'
Range=[-1 1]
NumMFs=7
MF1='NB':'trimf',[-13.33 -10 -6.666]
MF2='NM':'trimf',[-10 -6.666 -3.334]
MF3='NS':'trimf',[-6.666 -3.334 0]
MF4='ZO':'trimf',[-3.334 0 3.334]
MF5='PS':'trimf',[0 3.334 6.666]
MF6='PM':'trimf',[3.334 6.666 10]
MF7='PB':'trimf',[6.666 10 13.34]

[Rules]
1 1, 7 1 5 (1) : 1
1 2, 7 1 3 (1) : 1
1 3, 6 2 1 (1) : 1
1 4, 6 2 1 (1) : 1
1 5, 5 3 1 (1) : 1
1 6, 4 4 2 (1) : 1
1 7, 4 4 5 (1) : 1
2 1, 7 1 5 (1) : 1
2 2, 7 1 3 (1) : 1
2 3, 6 2 1 (1) : 1
2 4, 5 3 2 (1) : 1
2 5, 5 3 2 (1) : 1
2 6, 4 4 3 (1) : 1
2 7, 3 4 4 (1) : 1
3 1, 6 1 4 (1) : 1
3 2, 6 2 3 (1) : 1
3 3, 6 3 2 (1) : 1
3 4, 5 3 2 (1) : 1
3 5, 4 4 3 (1) : 1
3 6, 3 5 3 (1) : 1
3 7, 3 5 4 (1) : 1
4 1, 6 2 4 (1) : 1
4 2, 6 2 3 (1) : 1
4 3, 5 3 3 (1) : 1
4 4, 4 4 3 (1) : 1
4 5, 3 5 3 (1) : 1
4 6, 2 6 3 (1) : 1
4 7, 2 6 4 (1) : 1
5 1, 5 2 4 (1) : 1
5 2, 5 3 4 (1) : 1
5 3, 4 4 4 (1) : 1
5 4, 3 5 4 (1) : 1
5 5, 3 5 4 (1) : 1
5 6, 2 6 4 (1) : 1
5 7, 2 7 4 (1) : 1
6 1, 5 4 7 (1) : 1
6 2, 4 4 3 (1) : 1
6 3, 3 5 5 (1) : 1
6 4, 2 5 5 (1) : 1
6 5, 2 6 5 (1) : 1
6 6, 2 7 5 (1) : 1
6 7, 1 7 7 (1) : 1
7 1, 4 4 7 (1) : 1
7 2, 4 4 6 (1) : 1
7 3, 2 5 6 (1) : 1
7 4, 2 6 6 (1) : 1
7 5, 2 6 5 (1) : 1
7 6, 1 7 5 (1) : 1
7 7, 1 7 7 (1) : 1

运行结果及报错内容

img

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

根据错误提示,我的错误就是这个Fuzzy Logic Controller 没有输出信号,所以,bus selector 检测不到然后报错,我不知道为什么会这样?

我想要达到的结果

能够复现您文章里的曲线对比结果

  • 写回答

1条回答 默认 最新

  • lazyn 2021-11-27 00:54
    关注

    你的PID前面那个改成圆圈形状的sum模块试一下,我对比你的框图和我原文章框图就发现此处不一样,此外我又阅读了其他一些文章,负反馈都是用的圆圈形状的,而不是你这样的矩形的。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月5日
  • 已采纳回答 11月27日
  • 创建了问题 11月26日

悬赏问题

  • ¥15 运动想象脑电信号数据集.vhdr
  • ¥15 三因素重复测量数据R语句编写,不存在交互作用
  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目