声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1078|回复: 5

[编程技巧] 一个很奇怪的困扰好长时间的问题(关于if语句)

[复制链接]
发表于 2008-6-3 21:37 | 显示全部楼层 |阅读模式

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

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

x
simulink搭建的仿真模块,fun模块为m函数,程序如下:
function [y1,y2] = fcn(alfa_f,alfa_r)
if (alfa_f>=0.14)&(alfa_r>=0.1)
    y1=-342*alfa_f+7793;
    y2=-864*alfa_r+6004;
elseif (alfa_f>=0.14)&(-0.1<alfa_r<0.1)
    y1=-342*alfa_f+7793;
    y2=59180*alfa_r;
elseif (alfa_f>=0.14)&(alfa_r<=-0.1)
    y1=-342*alfa_f+7793;
    y2=-864*alfa_r-6004;
elseif (-0.14<alfa_f<0.14)&(alfa_r>=0.1)
    y1=55320*alfa_f;
    y2=-864*alfa_r+6004;
elseif (-0.14<alfa_f<0.14)&(-0.1<alfa_r<0.1)
    y1=55320*alfa_f;
    y2=59180*alfa_r;
elseif (-0.14<alfa_f<0.14)&(alfa_r<=-0.1)
    y1=55320*alfa_f;
    y2=-864*alfa_r-6004;
elseif (alfa_f<=-0.14)&(alfa_r>=0.1)
    y1=-342*alfa_f-7793;
    y2=-864*alfa_r+6004;
elseif (alfa_f<=-0.14)&(-0.1<alfa_r<0.1)
    y1=-342*alfa_f-7793;
    y2=59180*alfa_r;
elseif (alfa_f<=-0.085)&( alfa_r<=-0.072)
else
    y1=-342*alfa_f-7793;
    y2=-864*alfa_r-6004;  
end

输入alfa_f和alfa_r均为正弦曲线,输入曲线和输出y1,y2在图中都给出了,大家看看对吗??,怎么y1和y2负方向最大幅值能达到55000多??,正方向幅值还正常,负方向怎么会产生哪么大的值??

[ 本帖最后由 sigma665 于 2008-6-4 09:52 编辑 ]
simulink.JPG
回复
分享到:

使用道具 举报

发表于 2008-6-3 22:23 | 显示全部楼层
估计是数据类型引起的,可能是逻辑判断不严密
 楼主| 发表于 2008-6-4 08:58 | 显示全部楼层
我也觉得是判断逻辑有问题,可是又找不出问题,大家帮忙看看逻辑判断问题在哪?y1, y2分别是alfa_f和alfa_r的分段函数,如图所示,仅给出y1-alfa_f的关系,y2类似
y-alfa.JPG
发表于 2008-6-4 09:51 | 显示全部楼层
-0.1<alfa_r<0.1

这种表达式,matlab 不认

评分

1

查看全部评分

 楼主| 发表于 2008-6-4 09:54 | 显示全部楼层
感谢sigma665的提示
-0.1<alfa_r<0.1matlab不认,哪应该怎么写呢,?还是没弄好,急:@L

问题解决了,非常感谢sigma665朋友的建议:handshake

[ 本帖最后由 ChaChing 于 2010-8-10 21:12 编辑 ]
发表于 2008-6-4 14:09 | 显示全部楼层
-0.1<alfa_r   && alfa_r<0.1
分开写即可

[ 本帖最后由 ChaChing 于 2010-8-11 00:45 编辑 ]
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-14 02:02 , Processed in 0.078576 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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