matlab 判断鼠标按下_Simulink(动静态校验模块)+Matlabgui(鼠标响应事件)+Stateflow汽车运动逻辑状态(一)...

本文介绍了如何在Simulink中使用动静态校验模块进行上下限和范围校验,并展示了动态校验模块如何通过MatlabGUI响应鼠标事件。动态校验允许外部输入改变校验值,同时详细描述了如何设置鼠标按下和移动的回调函数来实现实时曲线绘制。接着,文章简要提及了使用Stateflow构建汽车运动逻辑状态,包括移动和停止状态,以及前进和倒退的档位转换。
摘要由CSDN通过智能技术生成
e6859f53fa7135fc690edb41b669885f.gif cf5ee71e89254b04bcbe3cf5d0be3159.gif 3dfe0da8e4e49243e20ff4383da765ac.gif1 Simulink

Simulink-动静态校验模块  

a.动静态校验模块   

    如下图所示为动态和静态的校验模块,分别为上限校验,下限校验,范围校验以及区间校验;

d6a5198542d9566e794858965e445774.png

    比如如下设置了一个下限校验模块,当输入在设定值的下方时,模块无反应;当输入处于设定值的上方时,此时运行则模块将会报错;

ea7c30adfebc52d866f6edcefa0e74d0.png

    对校验模块进行设置,使输出为布尔类型的数值,满足校验范围时输出正,否则输出负;

b696aab85b7b778f28b7b7bf5216c59a.png

b.动态校验模块

    动态校验模块的使用和静态校验的使用方法是一致的,只是其设定由外部进行输入,这样在方针的过程也可以随时改变输入值。

b4b45f7d10fb80f70c564aa2e9fbfa2e.png

734272c42d20fcec418b85777445cad8.png2Matlab-gui(鼠标响应事件)

    1)在Guide界面拖出axes1,并建立WindowButtonDownFcn的回调函数,用于判断是否出现鼠标左击事件;

32fc03a87a43dffc65fdc6182ae41e1e.png

     2)在WindowButtonDownFcn中定义全局变量;

4bb2d0a703edfe4cdd0616b04d51a2b6.png

    3)使用全局变量传递数据,判断是否按下了左键;

3c8dea8cf2063fc16cffe51312836f2c.png

    4)创建鼠标移动的回调函数WindowButtionMotionFcn;

9a3871ad87436d5630626b59b80e1e71.png

    5)在WindowButtionMotionFcn中添加鼠标响应事件,当鼠标移动时,跟随鼠标响应做曲线绘制;

64c0f32bfd48b16cec94c309a5f24e45.png

   效果如下:

f8fa87fbdfd7eab632ab1d8025419734.gif

    上图可知,当鼠标离开窗口重新回来后会继续跟随鼠标绘图,现做优化,当鼠标长按时移动,跟随鼠标绘图,松开鼠标则停止曲线绘制;

添加WindowButtonUpFcn:

3dabe892972723dd7781779bf8b4435d.png

    添加回调函数,当鼠标松开时,ButtonDown定义为0,即停止曲线绘制;

d1190030e1b29d0a6e4f3292b7741d20.png

    改进后效果如下:

cdbbdffdb866d280bcbd7f031a58b0fe.gif

Stateflow-汽车运动逻辑状态(一)

1)首先搭建出一个主体的状态模型,汽车分为两个逻辑状态:移动和停止,当shift=1时(即挂挡),汽车开始行进;

8231f07c15c481dc3ab4a8d186d7aa27.png

    2)对于移动状态,可以分为前进和倒退两个档位,并添加shift_back和shift_forward(后退档/前进档)的转换事件,且移动母状态的初始运行子状态为前进;

b21a34789a4b57386ec2528a7e4cf9f4.png

    3)对于前进档,又可以分为低、中、高三位档速,并定义相应的事件进行状态转换;

9cc2bff9831d3fd791307901d41534aa.png

    4)对模型中建立的数据和事件进行定义,模型就完成了初步创建,明天再进行仿真并对模型内部进行调整以实现逻辑;

df4e883dd2eb5e3eeab3728d034dc43b.png

8a41ec9f835be5df03c8a912ef26c6a2.png日工作记录 705c7821ce6bd762805e9d4e0390ea33.gif 330980948d933d4288390ff0e5996378.png

382a207ffe8c18b75351f805f9c5e333.png

公众号ID: gh_dc943d9de6b5扫码关注最新动态
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值