设某一汽车车身质量m2=200kg,悬架刚度K=16 KN/m,阻尼C=2 KN∙S/m,轮胎质量m1=30kg;轮胎刚度Kt=160 KN/m,q为路面激励 要求: 建立系统的振动微分方程,并利用Simulink求q为脉冲激励下,系统的在时域内的响应
时间: 2024-10-27 13:07:37 浏览: 39
嵌入式系统/ARM技术中的AccelChip新产品M2C-Accelerator
要建立这个汽车悬挂系统的振动微分方程,我们需要考虑悬挂系统的主要动力学元素:车身、轮胎以及它们之间的连接。悬挂系统的运动通常由以下的二阶非线性微分方程描述:
1. 车身的运动受到悬架的弹簧力(K)和阻尼力(C)的影响,还有轮胎对路面的传递力(q)。其加速度 `a2` 可以表示为:
```
m2 * a2 = - y1) - C * v2 + q(t)
```
其中 `y2` 是车身相对于静止位置的位移,`v2` 是车身的速度,`y1` 是轮胎相对于地面的高度(考虑到轮胎和地面间的接触点),`m2` 是车身质量。
2. 同样地,轮胎的运动受路面激励 `q(t)` 的影响,但还需加上轮胎自身的刚度 `Kt` 对它的作用力:
```
m1 * a1 = Kt * (y1 - y2) + q(t)
```
这里 `a1` 表示轮胎的加速度。
因为轮胎高度 `y1` 和车身高度 `y2` 相互依赖,我们可以通过解这两个方程组来找到整个系统的动态行为。但是,如果轮胎完全接触地面 (`y1 = 0`) 或者没有轮胎 (`m1 = 0`),则简化为单体模型。对于实际应用,我们会用两个独立的环节模型,并通过它们之间的联系来模拟整个系统。
现在让我们使用Simulink来建立这个模型。首先,在Matlab环境中,打开Simulink,创建一个新的S函数或子系统模块,用于定义上述方程。你需要定义变量并编写更新律(ode函数)来计算车辆的加速度。
**S函数伪代码(MATLAB/Simulink):**
```matlab
function dydt = suspension_system(x, t, params)
% x = [y2; v2; y1; v1]
% params = [m2; K; C; m1; Kt]
y2, v2, y1, v1 = x;
q = params(5); % 假设路面激励q作为输入
dydt = zeros(4, 1);
dydt(1) = v2; % 第一个输出是速度
dydt(2) = (-K * (y2 - y1) - C * v2 + q) / m2; % 车身加速度
dydt(3) = v1; % 第二个输出是轮胎速度
dydt(4) = (Kt * (y1 - y2) + q) / m1; % 轮胎加速度
end
```
接下来,你需要设置输入信号 `q` 为脉冲激励,这可以通过Simulink中的信号发生器或者手动输入数据实现。然后,配置一个仿真环境,指定初始条件和时间范围,运行仿真得到时域响应。
**相关问题--:**
1. 如何在Simulink中设置路面激励为脉冲信号?
2. 如何在S函数中处理多个输入参数?
3. 模拟中如何设定初始条件(如车身和轮胎位置及速度)?
4. 如何查看和分析时域响应结果?
阅读全文