Simscape Multibody -- 分析单摆
继续上节,https://blog.****.net/bornfree5511/article/details/103503272。
双击上节建立好的模型,我的是simple_pendulum.slx。
在本教程中,将探讨可以添加到模型中的各种力和力矩。然后,使用具有运动感知功能的块,分析模型的动态响应。最终的结果是一组时域和相位图,每种力和扭矩组合一个。使用MATLAB®命令创建这些绘图,并将Simscape™Multibody™运动输出作为参数。
你的出发点是在一个单摆模型中建立的单摆模型。通过向该模型添加力和力矩,可以逐步将钟摆从无阻尼和自由更改为阻尼和驱动。所施加的力和扭矩包括:
重力(Fg)-作用于每个物体上与其质量成正比的全局力,根据加速度矢量g指定。使用机构配置块指定此矢量。
关节阻尼(Fb)-摆锤和关节固定装置之间的内部扭矩,根据线性阻尼系数进行参数化。使用将摆锤连接到关节固定装置的旋转关节块指定此参数。
驱动力矩(FA)-摆锤和关节固定装置之间的驱动力矩,您直接将其指定为Simscape物理信号。使用连接摆锤和关节固定装置的旋转关节块指定此信号。
我们先添加关节传感器。速度和角度传感器。
双击Revolute Joint模块,
这时候会在revolute joint模块上多出两个参数,q和w
现在q和w的量代表的是物理模型的参数,不能在simulink和matlab 环境中使用,所以需要把物理模型的量转换为simulink空间和matlab空间能够识别的量,这时候需要PS-Simulink Converter模块。打开simulink的库。
从simulink library中拖两个到simple_pendulum中。
有了PS converter模块,物理参量已经可以被simulink和matlab识别,但是如果要做分析的话,还需要在工作空间中使用这个参量。这时候需要 to workspace 模块把参量写入到工作空间中。还是在simulink library中。
连接完成后如图
我们另存为一个新的文件 simple_pendulum_analysis.slx
运行这个仿真文件,运行完成后,我们回到matlab工作空间。输入
这是官网的写法,但是在我的计算机上,工作空间中只有一个out参数,它是simulinkOutput类型的。直接运行官网的例子会出现没有变量定义。所以我用另一种方法,这个地方如果有按官网可以的记得反馈给我一下。
我采用的方法。后面的所有操作都用我的方法,官网的方法都是直接的q w。
绘制相对于角位置的关节角速度,例如,在MATLAB命令提示下输入以下代码。
尝试使用不同的起始角度模拟模型。可以在“旋转关节块”对话框的“状态目标>位置”菜单中更改起始角度。此图显示了-80、-40、0、40和80度的复合相位图。
分析加阻尼后的单摆
双击Revolute joint,
运行模型。
在matlab的命令行窗口。
绘制联合相位图。为此,在MATLAB命令提示下,可以输入以下代码:
尝试使用不同的起始角度模拟模型。可以在“旋转关节块”对话框的“状态目标>位置”菜单中更改起始角度。此图显示了-240、-180、-120、-60、0和60度的复合相位图。
分析加阻尼和驱动后的单摆
双击revolute joint,
这时候多出一个参量
这时候,对于我们制定的力,需要从simulink空间转换到物理模型空间。还有添加一个外部力源。
正弦波块提供周期性扭矩输入,作为Simulink®信号。Simulink PS转换器块将Simulink信号转换为与Simscape Multibody兼容的Simscape物理信号。
如图连接
双击正弦波模块,在“正弦波块”对话框中,将“振幅”设置为0.06。此振幅对应于在-0.06 N和0.06 N之间振荡的驱动扭矩。
在“revolute joint”对话框中,确保“状态目标>位置>值”设置为0度。
运行模型。