Learning MSC.ADAMS/Controls
with MATLAB
1、基于 Matlab的控制系统设计简介
2,ADAMS/Controls 控制系统设计流程
3、例子 —— 双杆的控制系统设计
4、例子 —— 倒立单摆的控制系统设计
基于 Matlab的控制系统设计
例, 以二阶线性传递函数为被控对象,进行 PID控制。
sssG 25
13 3)(
2 ??
Simulink方式:
G(xG,yG)
m
L
x
V
H
?
例:倒立单摆的 PID控制系统设计
设摆杆偏离垂直直线的角度,?
摆杆重心的坐标,),(
GG yx
则有:
?
?
c o s
s in
ly
lxx
G
G
?
??
根据牛顿定律:建立水平和垂直运动状态方程:
摆杆围绕其重心的转动运动方程:
??? c o ss in HlVlI ????
其中,I 摆杆围绕其重心的转动惯量
摆杆重心的水平运动方程:
Hdt lxdm ?? 2
2 )s in( ?
摆杆重心的垂直运动方程:
mgVdtldm ??2
2 c o s ?
Hudt xdm ??2
2
小车的水平运动方程:
假设 ? 很小 1c o s,s in ?? ??? 则以上各式变为:
HuxM
mgV
Hlxm
HlVlI
??
??
??
??
??
????
??
0
)( ?
??
由此,得单级倒立摆的方程:
u
M m llmM
mll
M m llmM
glm
x
u
M m llmM
ml
M m llmM
glMmm
2
2
2
22
22
)()(
)()(
)(
??
?
?
??
?
??
?
??
?
?
??
?? ??
取,单级倒立摆的摆角 单级倒立摆的摆速
小车位置 小车速度
??)1(x
???)2(x
xx ?)3(
xx ??)4(
则建立倒立单摆的状态方程为:
BuAxx ???
其中,
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
000
1000
000
0010
2
1
t
t
A
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
4
3
0
0
t
t
B
2
2
423
2
22
221
)()(
)(
,
)(
)(
M m lImM
mlI
t
M m lImM
m g l
t
M m lImM
glm
t
M m lImM
glMmm
t
??
?
?
??
?
??
?
??
?
?
M-文件方式的 matlab控制系统仿真
0 2 4 6 8 10 12 14 16 18 20
- 0, 2
0
0, 2
t i m e ( s )
A
n
g
l
e
0 2 4 6 8 10 12 14 16 18 20
- 0, 5
0
0, 5
1
t i m e ( s )
A
n
g
l
e
r
a
t
e
0 2 4 6 8 10 12 14 16 18 20
- 0, 5
0
0, 5
t i m e ( s )
C
a
r
t
p
o
s
i
t
i
o
n
0 2 4 6 8 10 12 14 16 18 20
- 0, 5
0
0, 5
t i m e ( s )
C
a
r
t
r
a
t
e
ADAMS/Controls 控制系统设计流程
Design Process Before ADAMS/Controls
Improved Design Process with ADAMS/Controls
基于 ADAMS的控制系统设计的二个途径:
? 基于 ADAMS/View中的 Controls Toolkit:
针对具有复杂控制装置的机械系统
针对一般的控制环节
? 基于控制系统软件( MATLAB,EASY5或 MATRIX):
ADAMS/Controls 的应用
ADAMS/Controls 的设计流程
确定 ADAMS的输入和输出变量, 生成对象 /过程模型
建立控制系统模块
模型的仿真
建立机械系统的 ADAMS模型
天线模型的控制系统
? MSC.ADAMS模型的导入
? ADAMS/Controls 的载入
? MSC.ADAMS天线模型 仿真
MSC.ADAMS模型的导入
1、打开 ADAMS。
2、选择文件输入。
3、选择模型所在目录,OK。
4、在文件输入窗口,击右键,选择, Browse”,
并选择文件,antenna.cmd。
ADAMS/Controls 的载入
操作:
ADAMS/View=>Tools=>Plugin Manger:
选择 Load checkbox=>Controls
ADAMS 天线模型的介绍
?方位角马达通过旋转副约束与大地相连;
?减速齿轮通过旋转副约束与大地相连;
?圆盘通过旋转副约束与大地相连;
?高位轴承通过固定副约束与天线支撑相连;
?天线通过旋转副约束与高位轴承相连。
?天线支撑通过固定副约束与圆盘相连;
天线模型的分析
失效驱动下的试验仿真
操作:
? Edit>选择 Deactivate=>弹出数据导航表 =>双击模
型 main_olt=>选择 azimuth_motion_csd=>OK
ADAMS/CONTROLS 将,azimuth_motion_csd” 失效。
? 运行天线模型。
确定 ADAMS 对象的输入输出
?校验输入变量和输入函数
?校验输出变量和输出函数
?MSC.ADAMS 控制对象文件的产生
核实 MSC.ADAMS 对象的输入与输出流程
输入变量定义与修正
选择 Build>System
Elements>State Variable
>Modify
双击 main_olt,选择
,control_torque”,
按, ok”
选择 Build>System
Elements>State Variable
>New
定义
修正
确定输入函数
选择 Edit>Modify?数据
导航器 ?双击 main_olt,
选择
,azimuth_actuator”?O
K
VARVAL(id),变量函数,返回状态变量的当前值。
确定输出函数
天线的机械系统向控制系统输出的两个信号:
? 天线的方位角,azimuth_position;
? 马达转速,rotor_velocity。
Build?System Elements?State Variable?Modify?数据库
浏览器;
双击 main_olt?显示 ADAMS/VIEW变量表 ?选择
azimuth_posistion?OK;
显示修改状态变量对话框:
方位角变量表达式定义为:
AZ(.main_olt.bearings.MAR70,.main_olt.ground.MAR.26)
其中,
函数 AZ(To Marker,From Marker):
返回环绕 Z轴旋转的转角
马达转速变量 rotor_velocity:
函数 WZ(To Marker,From
Marker,About Marker ):
返回两标架角速度矢量差在 Z轴旋
转的分量。
控制对象的生成:
Control?Plant export:
在 Plant input 栏按右键选择 plant input>create?
完成以上过程, 构建的模型已经成功的转为
MATLAB可以读取的形式,
包括,
文件名,adm
文件名,cmd
文件名,m
控制系统设计
? Load ADAMS 变量
? 产生 Simulink 模块
在 Matlab工作窗口下:
who?
ADAMS_forces
ADAMS_inputs
ADAMS_joints
ADAMS_outputs
ADAMS_prefix
ADAMS_sysdir
ADAMS_uy_ids
ADAMS_mode
ADAMS_utidir
产生 Simulink 模块
在 MATLAB中输入, adams_sys”会产生如下的窗口:
S-Function,实现非线性
MSC.ADAMS 模型的
Adams_sub包括
s-function和其他变量
State-Space 是线性化
的 MSC.ADAMS的模
型。
Output File Prefix:
设置文件名,生成仿真
分析结果:
仿真结果文件,*.res
仿真要求文件,*.req
仿真图形文件,*.gra
仿真分析模式:
Discrete/continuous
动画显示:
interactive
初始化方式:
ADAMS_init
构造控制系统
仿真过程在 ADAMS中的重现:
范例:构建机械手臂模型
建立测量用传感器
在 JOINT1上按右键选择 measure 如下:
创建扭矩
ADAMS/Controls 控制模型输出
建立输入变量
重复,建立扭矩 2,Torque2
建立扭矩与变量的联系
模型输出,选择 control?plant export?
Matlab 控制
ADAMS 变量的载入
Simulink 模块的生成
Matlab 窗口下,adams_sys?
设计简单 PID控制器