adams函数使用.doc

第四章:为被控对象的数使输出建立ADAMS模型本章主要内容:为PlantExport建立模型的步骤ADAMS变量的类型建立输入状态变量建立输出状态变量建立被控对象的输入与输出在被控对象的输入或输出中状态变量的顺序为PlantExport指定被控对象的输入输出练习二:建立状态变量为PlantExport建立模型的步骤为了输出被控对象的模型,必须定义被控对象的数使输入输出。按照下面的数使步骤去做:1.建立状态变量,而这些状态变量就是数使被控对象的输入输出。2.建立PlantInputs和PlantOutputs,数使它们中都包含了第一步建立的数使状态变量。3.在ADAMS/Controls下的数使PlantExport对话框中输入专门的PlantInputsPlantOutputs,就可以输出被控对象文件。数使都包含一系列的数使状态变量ADAMS中的变量类型ADAMS/Solver变量ADAMS/View变量真正的状态变量,其值在每一步仿真中都要计算。数使ADAMS/Solver变量的数使值可以是在ADAMSfunctionbuilder中创建的任何函数。只是数使一个预处理的实体。它仅仅是数使对于要素参数值的一个位置占有者。当生成一个.adm文件时,数使这些实体将被评估并被看作是数使数值而输入到Solver数据表中。

ADAMS/View变量可以是在ADAMSexpressionbuilder创建的任何表达式。PlantInputPlantOutputADAMSPlantADAMS/Solver变量ADAMS/View变量ADAMS/Variable(在A/ViewdatabasenavigatorStateVariable(在A/View菜单build下的systemelementsVARIABLE(在ADAMS/Solver的数据表中)Variable(在A/ViewdatabasenavigatorDesignVariable(在A/View菜单build下的systemelements建立输入状态变量输入变量建立状态变量以控制输入。设置function=0(通常)如果要进行初始静态仿真,则要设置初始值将输入状态变量赋值给激励者使用VARVAL函数将定义被控对象输入的状态变量赋值给模型中的激励者(例如:力)。建立输出状态变量建立正确的运行时间表达式,向CSS提供一个输出。例如:方位角,仰角创建PlantInput和PlantOutputs在ADAMS模型中创建PlantInputs和PlantOutputs,为ADAMS被控对象提供输入和输出。

为ADAMS被控对象指定一个PlantInputs和一个PlantOutputs,他们可以包含多个变量。都包含一系列的状态变量在PlantInput/Output基本要素中状态变量的顺序在PlantInput/Output基本要素中状态变量的顺序非常重要,因为它决定了在CSS中必须定义的变量顺序。PlantInputPlantOutputADAMSPlant为PlantExport指定被控对象的输入输出只要创建了PlantInputs和PlantOutputs,就把它们引入PlantExport对话框中。使用plantinputs和outputs代替状态变量,允许用户更直接的编辑被控对象的输入及输出(例如:对于数量众多的状态变量,使用PlantInput/Output就能编辑,而用不着在PlantExport对话框中一个一个的输入)。练习二:建立状态变量及PlantInputs/Outputs在本次练习中,将建立一个模型控制球在平衡装置上的位置。因此,需要为这个ball_beam模型的非线性输出,创建状态变量及一个plantinputplantoutput(下面就是一般步骤,若要精确步骤请查看附录)。

1.从ADAMS/Controls中打开Workshop2-General文件夹中的‘ball_beam.cmd’文件。2.对球和横板模型进行10秒200步的仿真—球会从板上掉下来,因为横板有一个初始速度。我们将试图通过控制一个加在横板上的力矩,而让球平衡在横板中心外的某一点上。3.创建3个状态变量,他们将用于被控对象(这个机械系统)的通信。由于你将要使ADAMS模型与现有的控制系统兼容,所以要使用下面的3个状态变Beam_AnglePositionTorque_In个变量中有2个是被控对象的输出,按照下面的函数定义变量:Beam_Angle=在前视图中横板的w.r.t.水平角度:AZ(.ball_beam.beam.cm)Position=球的质心沿着横板上表面的位置,初始值为0,其值向右增长:DX(.ball_beam.ball.cm,ball_beam.beam.ref,ball_beam.beam.ref)5.对模型再次进行10秒200步的仿真,然后在PostProcessor查看Beam_Angle和Position变量的值看上去是否正确。6.给Torque_In状态变量指定一个值(例如,torque=5)。

下一步将要把这个值与加在横板上力矩连建立联系。7.让横板上的力矩(SforceSFO)从状态变量Torque_In上得到它的值。在Sforce的函数定义中使用VARVAL()便可达到目的。8.对系统进行仿真,横板将在提供的力矩作用下旋转。在状态变量中改变力矩的值并再次仿真,确认变量值被力矩SFO1获得。9.依次打开BuildSystemElementsStateVariableModify,将状态变量Torque_In的值改回到零。10.BuildControlsToolkitPlantInput,创建一个PlantInput。PlantInputName:MDI_PINPUTVariableName:Torque_In11.BuildControlsToolkitPlantOutput,创建一个PlantOutput。PlantOutputName:MDI_POUTPUTVariableName:Beam_Angle,Position注意:看你的输出中变量顺序是否正确(它们必须和现有的控制模同12.输出被控对象,使用ControlsPlantExportFilePrefixball_testPlantInputMDI_PINPUTPlantOutputMDI_POUTPUTControlPackageMATLAB13.打开MATLAB。

14.键入‘ball_test’—我们刚刚从ADAMS中输出的.m文件—这将创建在MATLAB中所需要的状态变量。15.键入‘adams_sys’—这个将创建一个plant,你能够在MATLAB中使用16.选择FileOpen,打开ball_beam.mdl。这将打开预先做好的MATLAB控 制示意图。从‘adams_sys’中将plant 复制到这个ball beam控制模型中。 现在,在你使用MATLAB仿真这个结合的控制/机械系统前,先设置仿真环 17.设置仿真参数(Simulation Simulation Parameters): End time=4 Solver=ode15s(stiffintegrator) 接下来,设置ADAMS plant 属性 18. 双击‘Mechanical Dynamics’模块。 19. 设置‘Output files’的前缀名为‘ball_results’ 注意:确认有引号 20.设置simulation mode discrete21. 设置animation mode 为interactive 22. 选择‘ok’保存 23. 对含有ADAMS 模块的控制系统进行仿真SimulationStart 24. 在MATLAB中查看结果: 如果在MATLAB中波形图没有显示,双击‘position’‘force input’等的 示波器标志。 25. 打开ADAMS/PPT 选择File Import 26. 选择‘Analysis Files’ 27. 选择‘ball_results.gra’或‘aplant_out.gra’文件(如果你使用了默认的输 出名字) 现在你可以制作机械系统的动画了。

更多内容请点击【技术术语】专栏