任务名称
2019年_J题:模拟电磁曲射炮【高职高专组】
任务要求
难度

一、任务

自行设计并制作一模拟电磁曲射炮(以下简称电磁炮),炮管水平方位及垂 直仰角方向可调节,用电磁力将弹丸射出,击中目标环形靶(见图 3),发射周 期不得超过 30 秒。电磁炮由直流稳压电源供电,电磁炮系统内允许使用容性储 能元件。

二、要求
电磁炮与环形靶的位置示意如图 1 及图 2 所示。电磁炮放置在定标点处,炮管初始水平方向与中轴线夹角为 0°、垂直方向仰角为 0°。环形靶水平放置在地面,靶心位置在与定标点距离 200cm≤d≤300cm,与中心轴线夹角a≤±30°的范围内。
1. 基本要求
(1) 电磁炮能够将弹丸射出炮口。
(2) 环形靶放置在靶心距离定标点 200~300cm 间,且在中心轴线上的位置,键盘输入距离 d 值,电磁炮将弹丸发射至该位置,距离偏差的绝
对值不大于 50cm。
(3) 环形靶放置在中心轴线上,用键盘给电磁炮输入环形靶中心与定标点的距离 d,一键启动后,电磁炮自动瞄准射击,按击中环形靶环数计
分;若脱靶则不计分。
2. 发挥部分
(1) 环形靶位置参见图 2,用键盘给电磁炮输入环形靶中心与定标点的距离 d 及与中心轴线的偏离角度a,一键启动后,电磁炮自动瞄准射击,按击中环形靶环数计分;若脱靶则不计分。
(2) 在指定范围内任给环形靶(有引导标识,参见说明 2)的位置,一键启动后,电磁炮自动搜寻目标并炮击环形靶,按击中环形靶环数计分,完成时间≤50s。
(3) 其他。 

三、说明
1. 电磁炮的要求
(1) 电磁炮炮管长度不超过 20cm,工作时电磁炮架固定置于地面。
(2) 电磁炮口内径在 10-15mm 之间,弹丸形状不限。
(3) 电磁炮炮口指向在水平夹角及垂直仰角两个维度可以电动调节。
(4) 电磁炮可用键盘设置目标参数。
(5) 可检测靶标位置,自动控制电磁炮瞄准与射击。
(6) 电磁炮弹丸射高不得超过 200cm。
2. 测试要求与说明
(1) 环形靶由 10 个直径分别为 5cm、10cm、15cm、… 50cm 的同心圆组成,外径 50cm,靶心直径 5cm,参见图 3。
(2) 环形靶引导标识为直径 20cm 的红色圆形平板,在距靶心 30cm 处与靶平面垂直固定安装,圆心距靶平面高度 30cm。放置时引导标识在
距定标点最远方向。参见图 1。 

(3) 弹着点按现场摄像记录判读。
(4) 每个项目可测试 2 次,选择完成质量好的一次记录并评分。
(5) 制作及测试时应佩带防护眼镜及安全帽等护具,并做好防护棚(炮口前用布或塑料布搭制有顶且两侧下垂到地面的棚子,靶标后设置防反弹布帘)等安全措施。电磁炮加电状态下严禁现场人员进入炮击区域。

 

 

评审标准

参考答案

GPT-4o给出的设计方案:


一、任务概述

设计并制作一套能够自动调整电磁炮射击角度的系统,使炮管水平向左30°和右30°的范围内灵活调整。依靠电磁力将弹丸射出,击中目标环靶。电磁炮具有精准的角度控制和启动机制,在 30 秒内完成一次射击。

二、系统组成

  1. 机械结构设计

    • 底座:稳固的平台,确保设备稳定性。
    • 转动机构:用于调整电磁炮的水平角度,包括电机和齿轮组。
    • 电磁炮:用于发射弹丸的主装备,由铜线圈和铁芯组成。
  2. 控制系统

    • 微控制器:负责接受角度输入并控制电机动作以及电磁炮的启停。
    • 电机驱动模块:控制电机转动,调整电磁炮角度。
    • 角度传感器:提供实时角度反馈,确保精准控制。
    • 电源模块:提供系统所需的电力。

三、设计步骤

  1. 设计与选型

    • 确定电磁炮和电机的规格,选择合适的微控制器(如Arduino或STM32)。
    • 选择高精度角度传感器,如旋转编码器或霍尔传感器。
  2. 机械结构设计

    • 设计并制造底座和转动机构,确保机械结构的稳定性和精度。
    • 将电机固定在底座上,通过齿轮组与电磁炮连接,以实现角度调整。
  3. 电路设计

    • 设计包括电机驱动、电磁炮驱动和传感器读取的电路。
    • 使用H桥电机驱动模块控制电机的正反转,实现角度调整。
    • 电磁炮驱动电路需要考虑高电流的需求,确保可靠性。
  4. 控制系统编程

    • 编写微控制器程序,控制电机根据目标角度调整电磁炮的水平位置。
    • 实现PID控制算法,以提高角度调整的精度。
    • 编写电磁炮启动程序,确保在指定时刻发射弹丸。
  5. 系统集成与调试

    • 将机械、电路、控制系统集成并固定在底座上。
    • 进行多次调试,确保电机能够精确定位,电磁炮能够按要求发射。

四、系统调试与验证

  1. 调试过程

    • 调整电机和齿轮组的性能,确保电磁炮能够精准地调整角度。
    • 检查角度传感器的读数,校准PID控制算法。
  2. 功能验证

    • 进行多次射击测试,验证调整角度和射击弹道的吻合性。
    • 确认电磁炮能够在30秒内完成精准射击。

五、关键算法与代码

以下为实现角度调整和电磁炮控制的关键代码示例,使用C语言编写,适用于Arduino平台。

#include <Servo.h>
Servo motor; // 定义伺服电机
int targetAngle = 0;
int currentAngle = 0;
int kp = 1, ki = 0, kd = 0; // PID 参数

void setup() {
  motor.attach(9); // 将伺服电机连接到数字9端口
  Serial.begin(9600);
}

void loop() {
  if (Serial.available() > 0) {
    targetAngle = Serial.parseInt(); // 接收目标角度
    if(targetAngle >= -30 && targetAngle <= 30) {
      adjustAngle(targetAngle); // 调整角度
      fireCannon(); // 发射炮弹
    }
  }
}

void adjustAngle(int angle) {
  int error, previousError = 0;
  int integral = 0;
  while(currentAngle != targetAngle) {
    error = targetAngle - currentAngle;
    integral += error;
    int derivative = error - previousError;
    int adjustment = kp*error + ki*integral + kd*derivative;
    currentAngle = constrain(currentAngle + adjustment, -30, 30);
    motor.write(map(currentAngle, -30, 30, 0, 180));
    previousError = error;
    delay(100);
  }
}

void fireCannon() {
  // 模拟电磁炮发射的代码,实际应用中需根据具体情况编写
  delay(1000);
  Serial.println("Firing!");
}

本题目考察的知识点

该项目设计主要考察了以下关键知识点:

  1. 机械结构设计:设计稳定的底座和转动机构,以实现电磁炮的角度调整,其中包括选择合适的电机和齿轮组。
  2. 传感与控制系统:选择高精度的角度传感器,利用微控制器进行数据处理和系统控制,实现电磁炮的精确角度调节,并通过PID控制算法提升角度调整的精度。
  3. 电路设计:设计电机驱动和电磁炮发射电路,确保高电流情况下的可靠性和安全性。
  4. 编程与软件控制:编写控制电机和电磁炮的C语言程序,包含角度调整算法和发射控制逻辑,确保系统高效运行。
  5. 系统调试与验证:进行多次系统调试,保证电磁炮的调整精度和射击性能,确保系统在实际应用中的稳定性和可靠性。
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号