这个例子展示了如何使用If/Else子系统来构建离合器模型。“如果”子系统在锁定位置模拟离合器动力学,而“其他”子系统在解锁位置模拟离合器动力学。其中一个是使用'If'块启用的。'If'块中的虚线表示控制信号,用于启用If/Else(或其他条件)子系统。选中GUI上的任意框,将生成任意所选变量的图(相对于时间)。
在这个例子中,离合器系统由两个板组成,在发动机和变速器之间传递扭矩。有两种不同的操作模式:
1)滑动——两个板块有不同的角速度
2)锁紧-两块板一起旋转。
处理这两种模式之间的转换是一个建模挑战。当系统在锁定时失去一个自由度时,传递的扭矩会经历一个台阶间断。扭矩的大小从摩擦能力所支持的最大值下降到保持系统两半以相同速度旋转所必需的值。金宝app反向转换(即解体)同样具有挑战性,因为离合器片传递的扭矩超过了摩擦能力。
注:您可以在启用子系统的离合器模型的示例中找到该系统的详细分析,包括方程和图表。
解决该问题可以采用以下两种方法:
1)计算每时每刻传递的离合器扭矩,并直接应用于模型中。
2)使用两种不同的动态模型,并在适当的时间进行切换。
金宝appSimulink®可以对任何一种方法建模。在这个例子中,我们描述了第二种方法的模拟。必须小心地在两个动态模型之间进行切换,以确保新模型的初始化状态与切换前的状态值匹配。在任何一种方法中,Simulink都可以金宝app实现精确的模拟,因为它能够识别锁紧和滑动之间发生转换的精确时刻。
当模型打开时,要运行模拟,请单击运行.
图1:离合器模型的顶级图表
注意:模型将相关数据记录到一个名为MATLAB工作空间的结构中sldemo_clutch_if_output
.记录信号有蓝色指示灯。有关信号记录的信息,请参见配置日志信号.
If块使用LockedFlag
信号在“锁定”和“解锁”子系统之间切换。双击模型中的“If”块来设置其参数(参见图2)。LockedFlag
代表离合器的状态。LockedFlag = 1
如果离合器被锁住LockedFlag = 0
如果离合器未锁。
图2:设置“If”块参数
此模型的输入与使用启用子系统的模型相同(sldemo_clutch
).系统速度表现如下面的图3所示。正如预期的那样,从sldemo_clutch
和sldemo_clutch_if
都是相同的。
图3:默认输入的发动机、车辆和轴的角速度
关闭模式。生成的数据。
这个例子展示了如何在Simulink中使用“If”块来为一个具有拓扑不连续的系统建模。金宝app这是使用启用的子系统的一种替代方法。