上次介绍了adams与matlab联合仿真有关的操作流程,输入和输出变量的设计都借助于VARVAL函数 ,但是在我搭建模型时遇到了输入变量设计为恒定角速度时,联合仿真结果却与adams单独仿真结果相差巨大的情况,猜测可能是VARVAL函数接受的输入仅为力和力矩,最后在偶然间看到这篇文章之后设计变量使用,选择使用设计变量来作为角速度输入,本篇文章是对引用文章复现所做的一些整理。
首先搭建一个物理模型,如图所示
对于上述物体,右侧物体绕着左侧物体以恒定角速度进行旋转。
1、首先创建设计变量wx如图所示,在菜单栏“设计探索”种找到“设计变量”。
2、在设计变量里修改变量名称和标准值,如图:
3、将设计变量带入到旋转副的驱动里(如何为旋转副添加驱动,这是基本知识,在这里不展示了),进入旋转副驱动 里,在“..."里进入如下界面,在右下角”获取对象数据“下拉菜单里选择“设计变量”,在右侧空白区域点击鼠标,在新的界面里选择对应的设计变量,然后点击下方的”插入对象名称“得到图5所示:
4、此时用设计变量表示角速度完成,接下来就是创建与matlab的联合仿真,过程见adams与matlab联合仿真,在此不赘述。如图6所示:
5、创建m文件 初始化设计变量,程序如图:
clear
clc
Controls_Plant_1 %adams生成的文件名
cmd1='variable modify variable_name =.ex0.w real_value=0!';%设计变量修改
cmd2='variable modify variable_name =.ex0.wx real_value=0.279!';%设计变量修改
ADAMS_init=[cmd1 cmd2];%参数初始化
对于上面的程序,”.ex0.w"和“.ex.wx"都是设计变量,文末用”!“结尾,不然只能运行一行。
6、初始化之后记得修改simulink 为交互式(这地方不知道是不是我的matlab有问题,不用交互式设计变量无法修改),修改结果如图中红圈所示:
如此即完成了设计变量控制恒定角速度的全过程。