主要内容

updateErrorDynamicsFromStep

更新的值NaturalFrequencyDampingRatio属性给出理想的阶跃响应

描述

例子

updateErrorDynamicsFromStep (motionModel,settlingTime,过度)更新的值NaturalFrequencyDampingRatio给定的属性jointSpaceMotionModel对象所需的阶跃响应。

updateErrorDynamicsFromStep (motionModel,settlingTime,过度,jointIndex)更新NaturalFrequencyDampingRatio属性为一个特定的关节。在这种情况下,的值SettlingTime过度必须提供为标量,因为它们适用于单一的联合。

例子

全部折叠

这个例子显示了如何创建和使用jointSpaceMotionModel对象在关节空间机器人机械手。

创建一个机器人

机器人= loadrobot (“kinovaGen3”,“DataFormat”,“列”,“重力”[0 0 -9.81]);

建立了模拟

将时间间隔设置为1 s步伐大小为0.01 s。设置初始状态是机器人,家里配置速度为零。

tspan = 0:0.01:1;initialState = [homeConfiguration(机器人);0 (7,1)];

定义一个参考状态与目标位置,零速度,加速度为零。

targetState =[π/ 4;π/ 3;π/ 2;-π/ 3;π/ 4;-π/ 4;3 *π/ 4;0 (7 - 1);0 (7,1)];

创建运动模型

模型与计算转矩控制和误差动力学系统定义为一个相当快的阶跃响应超调为5%。

motionModel = jointSpaceMotionModel (“RigidBodyTree”,机器人);updateErrorDynamicsFromStep (motionModel。3 . 05);

模拟机器人

用导数的函数模型的输入数值解算器模拟行为超过1秒。

[t, robotState] =数值(@ (t,状态)导数(motionModel、州targetState) tspan, initialState);

情节的响应

情节的位置所有的关节驱动他们的目标状态。关节位移之间更高的起始位置和目标位置开动目标速度比那些较低的位移。这导致一个过度,但所有的关节都有相同的沉淀时间。

图绘制(t, robotState (: 1: motionModel.NumJoints));持有所有;情节(t, targetState (1: motionModel.NumJoints) *(1、长度(t)),”——“);标题(“联合位置(固体)和参考(虚线)”);包含(“时间(s)”)ylabel (“位置(rad)”);

图包含一个坐标轴对象。坐标轴对象与标题关节位置(固体)和引用(虚线)包含14线类型的对象。

输入参数

全部折叠

jointSpaceMotionModel对象,该对象定义运动模型的属性。

解决所需的时间达到2%的公差带秒,指定为一个标量或n元向量。nnonfixed关节数量吗rigidBodyTreejointSpaceMotionModelmotionModel论点。

相对于单位阶跃,指定为一个标量或n元向量。nnonfixed关节数量吗rigidBodyTreejointSpaceMotionModelmotionModel论点。

该指数的联合NaturalFrequencyDampingRatio更新了单位阶跃误差动力学。在这种情况下,必须指定为标量沉降时间和超调。

引用

理事长绪方[1]Katsuhiko。现代控制工程第四。恩格尔伍德悬崖,台北:普伦蒂斯·霍尔出版社,2002年。

扩展功能

C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。

版本历史

介绍了R2019b