设计变量关联2D样条取值
Adams中设计变量的类型分为实数、整数、字符串和对象,而实数是设计变量最为频繁使用的类型,可以设置单位,定义标准值、范围和列表值,常用于表示硬点坐标、长度等。
3.1 VALAT函数
最简单地实现设计变量关联2D样条取值的方法是使用函数VALAT(X_array, Y_array, X_value),此函数返回Y数组中与X数组中的X值位于同一位置的Y值。
值得注意的是,VALAT()在数据点之间进行线性插值取值,数据点越密集的数组更容易产生可接受的结果。
例如,在Adams View界面command window中依次输入如下命令:
model create model=mod1
ariable create variable=x_array rea=-1,0,2,3
variable create variable=y_array rea= 1,2,3,4
variable create variable=xx rea=0.0
variable create variable=yy rea=(VALAT(x_array, y_array, xx))
依次修改xx的取值VALAT可以得到yy的值:
3.2 使用VALAT函数定义设计变量
2D样条的关联与上述数组类似,参考附件spline_test.cmd,在Adams View中定义2D样条new_data,信息如下:
定义设计变量dv_spline_input,信息如下:
定义设计变量dv_value_from_spline,如图1,信息如下:
其中,new_data.x表示X_array,new_data.y表示Y_array,dv_spline_input表示X_value = 0.4,则dv_value_from_spline根据dv_spline_input,参考样条new data插值取值57.5880859499。
图1 使用VALAT函数定义设计变量
参考附件objective_at_point.cmd文件,使用Adams View函数定义目标obj_angle_at_height,函数.func_angle_at_height的表达式为VALAT(analysis.point_location.y, analysis.driver_angle.r1, 100),如图2。
图2 使用VALAT函数定义目标
point_location和driver_angle均是在Adams View环境中定义的Request,输出类型均为Dispalcement,.y表示输出point_location的Y向位移,.r1表示输出driver_angle的X向角度,意在寻找当前仿真结果中point_location.y=100时,driver_angle.r1的取值。
-spline_test.cmd
-objective_at_point.cmd