求解多体模型的运动学问题
KinematicsSolver
对象允许用户为他们的对象制定和数值求解运动学问题Simscape™多体™模型。您可以使用对象来解决标准正向和反向运动学问题,以及更一般的闭环运动学系统和多目标问题。
运动学问题由运动学变量表示。这些变量具有标量值,用于指定相应Simscape多体模型中帧之间的关系。有两种类型的运动学变量:关节和帧。关节变量对应于关节位置和速度状态,并在n对象已构造。您可以使用jointPositionVariables
和联合概率变量
对象函数。帧变量对应于模型中任意帧之间的位置和速度关系,必须使用addFrameVariables
对象的功能。定义后,可以使用frameVariables
对象的功能。
为了制定一个运动学问题,你必须为相关的运动学变量分配角色。有三种角色:目标、初始猜测和输出。属性将变量分配给这些角色addTargetVariables
,addInitialGuessVariables
,addOutputVariables
目标函数。要解决指定变量的问题,请使用解决
对象的功能。从初始状态开始,求解器试图找到与目标变量值一致的系统最终状态。初始状态是用初始猜想变量的值来合成的。未由初始猜测变量指定的初始状态被初始化为零。输出变量的值是从求解器返回的最终状态派生出来的。如果求解器无法找到一个满足所有目标的最终状态,它将尝试至少返回一个运动上可行的状态。
创建一个ks
=simscape.multibody.KinematicsSolver(模型名)KinematicsSolver
中命名的模型的mdl
.对象包含适合于运动学分析的模型的表示。表示是创建对象时模型的快照。对模型的后续更改不会传递到对象。如果有必要,创建一个新对象来捕获这些更改。
模型必须包含Simscape多体网络,在创建模型之前需要将模型加载到内存中KinematicsSolver
对象。如果模型块具有MATLAB变量,则需要在模型工作区或MATLAB工作区中以数值方式定义这些变量KinematicsSolver
对象忽略连接块的任何接触和几个参数,如国家的目标,限制,驱动,模式配置. 例如,在分析过程中,两个实体可以相互穿透,即使存在空间接触力连接它们的块。块参数设置为运行时
在创建对象时计算,之后不能修改。
A.KinematicsSolver
对象是句柄对象。从它创建的变量不包含对象的副本,而是对它的引用。该变量充当指针或句柄。修改句柄也会修改对象及其所有剩余句柄。复制一个KinematicsSolver对象并添加一个帧变量到拷贝中,例如,将帧变量添加到对象中,也添加到它可能拥有的任何其他句柄中。
创建一个ks
= simscape.multibody.KinematicsSolver (___、名称、值)KinematicsSolver
对象,其附加选项由一个或多个指定名称、值
对参数。
frameVariables
|initialGuessVariables
|jointPositionVariables
|联合概率变量
|输出变量
|targetVariables
|addFrameVariables
|addInitialGuessVariables
|addOutputVariables
|addTargetVariables
|removeFrameVariables
|removeInitialGuessVariables
|removeOutputVariables
|removeTargetVariables
|clearFrameVariables
|clearInitialGuessVariables
|clearOutputVariables
|clearTargetVariables
|generateCode
|setVariableUnit
|解决
|视图解决方案
|closeViewer