首页/文章/ 详情

Adams技术技巧 | 设计变量关联2D样条取值

2年前浏览1851

设计变量关联2D样条取值

1概述
计变量表示Adams模型中可以更改的对象。例如,设计变量可以表示设计点的位置、力的大小或弹簧的刚度。在模型中输入设计变量后,可以自动多次运行设计变量范围内的仿真分析,以了解变量的敏感性或找到最佳值。

Adams中设计变量的类型分为实数、整数、字符串和对象,而实数是设计变量最为频繁使用的类型,可以设置单位,定义标准值、范围和列表值,常用于表示硬点坐标、长度等。

2问题描述
以钢板弹簧建模为例,可以使用设计变量定义弹性模量,建立同类型不同刚度的板簧模型。基于板簧建模工具箱进行DOE分析获得弹性模量与刚度的2D样条,对于卷耳位置或同类型的板簧,便可以通过设计变量关联此2D样条,自动根据刚度和曲线辨识弹性模量,实现板簧模型的自动更新。
此类问题可以结为如何使用实数类型的设计变量关联试验或仿真获取的2D样条取值。

3实现方法

3.1 VALAT函数

最简单地实现设计变量关联2D样条取值的方法是使用函数VALAT(X_array, Y_array, X_value),此函数返回Y数组中与X数组中的X值位于同一位置的Y值。

-X_array:X数组,至少两个实数数组确定样条曲线范围,升序排列;
-Y_array:Y数组,包含与X数组相同数量的实数数组;
-X_value:需索引的X值。

值得注意的是,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的值:

xx:-2, -1, 0, 1, 2, 3, 4
yy:0, 1, 2, 2.5, 3, 4, 5
xx = -2、1和4时,yy= 0、2.5和5均是通过定义的x_array和y_array线性插值取值。

3.2 使用VALAT函数定义设计变量

2D样条的关联与上述数组类似,参考附件spline_test.cmd,在Adams View中定义2D样条new_data,信息如下:

Object Name : .spline_test.new_data
Object Type : Spline
Parent Type : Model
Adams ID : 1
Active : NO_OPINION
Spline Points:
(X = 0.0, Y = 0.0)
(X = 2.0E-02, Y = 0.219684217)
(……)
(X = 0.4, Y = 57.5880859499)
(……)

定义设计变量dv_spline_input,信息如下:

Object Name : .spline_test.dv_spline_input
Object Type : Variable
Parent Type : Model
Real Value(s) : 0.4
Units : no_units

定义设计变量dv_value_from_spline,如图1,信息如下:

Object Name : .spline_test.dv_value_from_spline
Object Type : Variable
Parent Type : Model
Real Value(s):57.5880859499 VALAT(new_data.x, new_data.y, dv_spline_input)

其中,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函数定义设计变量

4VALAT函数引申应用
VALAT函数关联2D样条取值的前提是需要在建模阶段定义样条,其实VALAT函数也支持在仿真结束之后计算Y值。

参考附件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的取值。

5附件

点击下载:→model06

直接下载压缩文件,其中有如下两个cmd文件,使用任一版本Adams打开即可:

-spline_test.cmd

-objective_at_point.cmd

附件

免费model06.zip
其他软件Adams科普理论代码&命令
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2022-01-06
最近编辑:2年前
MSC软件
模拟现实 交付确信
获赞 110粉丝 348文章 145课程 2
点赞
收藏

作者推荐

未登录
还没有评论

课程
培训
服务
行家

VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈