Simulin金宝appk上的Guy

金宝appSimulink &基于模型的设计

机械臂模型和修理哈勃望远镜

正如你们所知,亚特兰蒂斯号航天飞机将于本周末结束人类对哈勃望远镜的最后一次访问返回。这些宇航员冒着很大的风险来修理我们最喜欢和最著名的科学仪器。他们在太空行走中使用的工具之一是加拿大航天局的机械臂(机械臂)。

图片来源:Nasa - STS125哈勃在亚特兰蒂斯号航天飞机货舱上方

图片来源:NASA

我从来没有机会操作CSA机械臂,但是我的同事家伙卷轴!Guy告诉我他创造了一个Simulink金宝app s函数来帮助控制Simulink中的机械臂。

在模拟过程中改变块的颜色

盖·鲁洛著

机器人专家Guy Rouleau

在攻读学士学位期间,我在加拿大航天局实习,留下了许多美好的回忆。在实习期间,我正在为机械臂开发控制逻辑。金宝appSimulink用于开发控制器,并作为命令机器人的用户界面。

使用操纵杆控制机械臂Simulink模型的输入。金宝app

当使用操纵杆驾驶机械臂模拟时,如果接近关节极限或奇点,并不总是容易可视化。可以在模型中显示状态值,但很难知道是否要锁定手臂的控制。为了帮助驾驶机器人的人,我们认为让Simulink图中的块在接近极限时变为红色可能很酷。金宝app这是它在SimMechanics mech_robot_vr中的样子。mdl模型。

虚拟现实机械臂的动画,红色和绿色显示器表示关节状态。

下面是如何用简单的2级M-file S-Function改变块的颜色的快速解释。

作为模板,我建议从演示m文件开始msfcn_times_two.m.在MATLAB安装中,您可以使用以下命令打开该文件:

>> edit msfcn_times_two.m

只需要做一些修改,就可以使文件根据连接到s函数的信号的值来改变块的颜色。

首先,将文件保存为ChangeColor.m对于这个例子。的代码至少需要修改输出部分。首先,我创建了一个名为Test的模型我们将改变名为Display的块的颜色

金宝appSimulink测试模型显示s函数的工作情况。

最简单的实现可以查看输入值,然后使用set_param修改块写成BackgroundColor

输出s函数的代码

在上面的代码中,“Test/Display”块的颜色被设置为绿色或红色,这取决于输入是大于还是小于零。

为了使代码可重用,我可能想自动确定哪个块连接到S-Function。我们还可以向块添加一个参数来设置颜色切换的值。在这种情况下,我们将这些行添加到setup函数中:

块设置代码

注意,目标块的句柄存储在s函数的“UserData”中。UserData通常用于存储需要使用s函数进行持久化的任何数据,但不符合连续或离散状态的定义。输出函数现在看起来像这样:

块输出使用User Data来获得块句柄

最后,如果你想在模拟结束时块返回白色,你可以将这些行添加到terminate函数中:

终止函数,将块设置回白色背景。

你可以在我的文件交换提交中找到这个例子:在模拟运行时更改块的颜色

现在轮到你了

你是研究机械臂还是哈勃望远镜?你是否使用s函数来定制Simulink的外观?金宝app分享你的经验并留下这里的评论

|

댓글

댓글을남기려면링크를클릭하여MathWorks계정에로그하거나계정을새로만드십시오。