SimscapeMultibody 物理建模 |
您所在的位置:网站首页 › simulink中sum模块怎么改变方向 › SimscapeMultibody 物理建模 |
Simscape Multibody 物理建模
文章目录
Simscape Multibody 物理建模简介一、创建模型二、创建机械连接块类型说明连接块图设置Solid block特性设置**Rigid Transform**块生成子系统添加旋转部件设置重力设置单摆起始位置配置求解器组装模型运行模型分析模型测量单摆运动添加以下块到模型摆角、角速度关于时间的函数无阻尼条件下摆角与角速度关系有阻尼下摆角与角速度关系有阻尼和激励下的单摆
Simscape刚体变换一、创建坐标系二、添加立体到模型中打开simulink添加块
三、建立坐标系及刚体变换刚体转动变换刚体平动变换
简介
以一个单摆为例说明如何进行物理建模。 一、创建模型在MatLab命令行输入 smnew打开一个新的simscape multibody项目 在命令行输入 sm_lib打开Simscape Multibody block library选择自己想要添加的块 Rigid Transform块在Frame and Transform 下,Solid块在Body Element下。 连接块图将长宽高用变量LHW代替,密度用rho代替,颜色用rgb代替。这里出现错误是因为我们输入的变量未定义,将在下面定义。 设置Rigid Transform块左键快速单击Rigid Transform block,在弹出的对话框中将参数设置为如下图所示: 将Rigid Transform 设置为如下图所示同时选中Rigid Transform,Rigid Transform1和solid block,在高亮的地方右键选择Create Subsystem from Selection 得到如下所示子系统:
右键单击Subsystem,在弹出的对话框中选择 Mask > Create Mask 在弹出的对话框中选择 Parameters & Dialog,在左边的栏中添加五个 在右边栏Properties > value中将各变量值设置为如下所示 L**(cm)**20W**(cm)**1H**(cm)**1rho**(kg/m^3)**2700rgb[0.25,0.40,0.70]确定,然后在simulink界面中选择Simulation > Update Diagram,更新块图,得到如下图的立体 在matlab命令行输入 smnew新建一个模型,删除不需要的块并将上述的Subsystem复制过来 从Simscape > Multibody > Joints 中添加一个 Revolute Joint(旋转节点)到图中,并连接成如下图所示 鼠标左键快速单击图中的solid block两次,在弹出的对话框中将其参数设置为如图所示
旋转节点(Revolute Joint block)使用底座和从动件坐标系的公共Z轴作为旋转轴,为了让从动件在重力的作用下旋转,需要使重力矢量偏移Z轴。鼠标左键快速单击Mechanism Configuration block两次,在弹出的窗口中将重力设置为[0 -9.81 0](-y方向)。 鼠标在左键快速单击Revolute Joint两次,在弹出的对话框中选择State Targets > Position进行设置,默认为水平。 在simulink中选择Simulation > Model Configuration Parameters,配置为如下图所示 选择确定。求解器用于模型可视化。 组装模型选择Simulation > Update diagram,得到如图所示的模型 选择View convention将其设置为Y up (XY Front),保证重力与屏幕垂直对齐,选择view > standard view 中的一项来刷新视图。选择 点击Simulation > Run,运行模型,将会看到单摆摆动 分析模型 测量单摆运动左键快速单击Revolute Joint block两次,在弹出的对话框中选择Sensing 下的Position 和Velocity PS-Simulink Converter:在Simscape > Utilities To Workspace:在Simulink > Sinks 如图 将文件另存为一个新文件 simple_pendulum_analysis。 摆角、角速度关于时间的函数打开刚刚的文件 simple_pendulum_analysis ,然后选择Simulation > Run,在matlab命令行中输入以下命令 figure; % Open a new figure hold on; plot(q); % Plot the pendulum angle plot(W); % Plot the pendulum angular velocity得出摆角(蓝色)与角速度(红色)关于时间的函数图像 在matlab命令行中输入以下命令 figure; plot(q.data, W.data);得到函数图像:纵轴为角速度,横轴为摆角。 在 Revolute Joint block State 对话框的Targets> Position中设置不同的起始角:-80, -40, 0, 40和80 °,重复上述的命令得到不同起始角下摆角与角速度的关系 左键快速单击Revolute Joint block,在弹出的对话框中将 Internal Mechanics > Damping coefficient 设为8e-5(N*m)/(deg/s),确保State Targets > specify Position Target > Value为0(初始角为0)。 在matlab命令行输入以下命令 figure; hold on; plot(q); plot(w);得到如下图所示摆角(蓝色)、角速度(红色)与时间的函数关系 在matlab命令行中输入以下命令 figure; plot(q.data, W.data);得到摆角与角速度的关系
左键快速单击Revolute Joint两次,在弹出来的对话框中设置Actuation > Torque为 `Provided by Input。 添加以下两个模块 LibraryBlockSimscape > UtilitiesSimulink-PSConverterSimulink > SourcesSine Wave连接成如下图所示 左键快速单击Sine Wave block 两次,在弹出的对话框中将Amplitude设置为0.06,在Revolute Joint block 对话框中将确认 State Targets > Position > Value为0。 运行仿真,在matlab命令行中输入以下命令画出摆角、角速度与时间的关系 figure; hold on; plot(q); plot(w);如下图所示 ![分析结果](https://img-blog.csdnimg.cn/20190815144620510.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2FuYnVxaQ==,size_16,color_FFFFFF,t_70)在matlab命令行中输入以下命令画出摆角与角速度的函数关系 plot(q.data, W.Data);以一个L梁作为示例,在matlab命令行输入 smdoc_lbeam_inertia将会弹出一个L梁的坐标关系图: 左键快速点击图中的立方体两次,弹出立体对话框
会弹出一个坐标对话框 从上到下依次为: 坐标名称 坐标原点 主轴 副轴 按自己想要的设置即可。 二、添加立体到模型中 打开simulink
将默认存在的块体删除,选择Library Browser >> Simscape >> Multibody >> Body Elements:
将两个立方体连接起来,使立方体的世界坐标系在空间上是重合的 可视化立体坐标系:将Simscape >> Utilities >> Solver Configuration 拖到模型中,并与一个立方体连接 选择Simulation > Update Diagram更新流程图,将会打开Mechanics Explorer窗口 应用刚体变换:在Multibody>Frames and Transforms拖一个rigid Transform,将它连接到两个立体的中间,左键快速单击两次,在弹出对话框中选择 Rotation > Method to Standard Axis. Rotation > Axis to -Z. Rotation > Angle to 45. 选择OK然后Simulation > Update Diagram更新流程图,如下图,完成了一个刚体转动变换。
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |