全文框架

1.硬件笔记

1.1充放电回路

电容充电电路采用继电器对充电电路部分的通断进行控制,放电电路部分通过70TPS12单向可控硅对电路开关进行控制。由此实现单片机对各部分开关的控制,
D2作用为释放线圈多余能量。
三极管Q1放大输入信号,使其能驱动继电器

1.2 数字电位器电路

数字电位器用于控制ZVS的电压输出大小

芯片资料:(控制程序在后面)


数字电位器选用具有100抽头的X9C503芯片,可调电阻范围为0-50k欧,可以通过单片机调节数字电位器进而对ZVS升压模块输出电压进行控制,电路图如图 所示。

1.3 ZVS模块

原理:
它通常被用于产生高频正弦波的场合,电磁炮中这个电路可用于逆变升压,整流后的高压电可以给电容充电。
这里有一个简化版的ZVS,以说明其原理。

当电源电压作用于 V+,电流开始同时通过两侧的初级并施加到 MOS 的漏极(D) 上。电压会同时出现在 MOS 的门极(G)上并开始将 MOS 开启。因为没有任何两个元件是完全一样的,一个 MOS 比另一个开的快一些,更多的电流将流过这个 MOS 。通过导通侧初级绕组的电流将另一侧 MOS 的门极电压拉低并开始关断它。图中电容和初级的电感发生 LC 谐振并使电压按正弦规律变化。如果没有这个电容,通过 MOS 的电流会一直增大,直到器件损坏。
假设 Q1 首先开启。当 Z 点电压跟着 LC 谐振的半个周期上升到峰值再回掉时, Y 点电压会接近 0。随着 Z 点电压下降到 0, Q1 的门极(G)电压消失, Q1 关闭。同时 Q2 开启,此时 Y 点电压开始上升。 Q2 的导通把 Z 点电压拉低到接近地, 这可以确保 Q1 完全关断。 Q2完成 LC 振荡的半周后会重复同样的过程,此振荡器继续循环工作。为了防止本电路从电源拉取巨大的峰值电流而损坏,增加了 L1 在变压器抽头处和 V+之间作为缓冲。 LC 阻抗限制着实际的电流(L1只是减少峰值电流 ,因为电感有续流作用)。
此振荡器是一个零电压开关电路( zero-voltage switching ZVS ),这意味着 MOS 将在其两端电压为零时关断。这对 MOS 有好处,因为它允许 MOS 在承受应力比较低的时候进行开关动作, 这意味着不再需要像硬开关变换器那样的巨大散热器。

原理图及器件选型

原理分析:
上电瞬间,假设 Q1 通得多那么一点, T1 的感应电流使 B 点之电动势略高于 A 点,而且 Q2 处于有一点导通的状态,这些条件都是有利于彻底关断 Q2 的,那么 Q2 就关断, Q1 导通,T1 的感应电流彻底把 C1 充成 B+ 、 A- ,
然后,C1 放电完(或者 A 点电位有那么一点点的正),而且 Q1 处于导通状态,马上 Q1 之 G 极通过D4 , C1, Q1 被拉到相当低的电位而截止, Q2 之 G 极自然被 R4 拉到 5V 而导通,完成了在零电压状态时的切换,然后 T1 的感应电流彻底把 C1 充成 A+ 、 B- ,之后 C1 放电完毕又致 Q1 导通 Q2 截止。如此循环下去。
原理图中器件作用:
1.R1为驱动电阻,阻值较小,用于防止震荡;R2为GS电阻,阻值较大,用于结电容放电,加快开关速度。
2. 稳压二极管将MOS的门极(G)的电压限制在稳压二极管(12V、15V、18V)的击穿电压之内
3. 当一侧MOS导通时,UF4007将另一侧MOS的门极(G)电压拉低 
4.谐振部分电容耐压要高,最好选电磁炉电容。
5.mos管耐压要四倍的输入电压以上

2.部分代码(STM32)

2.1 数字电位器控制代码

//片选信号PB6
#define CS_H GPIO_SetBits(GPIOE,GPIO_Pin_4)
#define CS_L GPIO_ResetBits(GPIOE,GPIO_Pin_4)
//方向选择引脚PB7
#define UD_H GPIO_SetBits(GPIOE,GPIO_Pin_5)
#define UD_L GPIO_ResetBits(GPIOE,GPIO_Pin_5)
//脉冲信号引脚PB8
#define INC_H GPIO_SetBits(GPIOE,GPIO_Pin_6)
#define INC_L GPIO_ResetBits(GPIOE,GPIO_Pin_6)/*X9C103初始化*/
void x9c_init(void)
{IO_Init();x9c_dec_step(99);x9c_inc_step(1);
}
/*递增*/
void x9c_inc_step(unsigned char num)
{unsigned char i=0;UD_H;CS_L;for(i=num;i>0;i--){INC_H;delay_us(20);INC_L;delay_us(100);}INC_H;CS_H;
}
/*递减*/
void x9c_dec_step(unsigned char num)
{unsigned char i=0;UD_L;CS_L;for(i=num;i>0;i--){INC_H;delay_us(20);INC_L;delay_us(100);}INC_H;CS_H;
}

2.2舵机控制代码

void setHorizontalAngle(int angle)
{uint32_t compare=0;//if(angle>30) angle=30;//if(angle<-30) angle=-30;if(angle>=0)compare = 1.515*40000/20+(2.48-1.515)*40000*angle/20/135;elsecompare = 1.515*40000/20-(1.515-0.49)*40000*(-angle)/20/135;TIM_SetCompare3(TIM4,compare);
}
void setVerticalAngle(int angle)
{uint32_t compare=0;if(angle>90) angle=90;if(angle<0) angle=0;if(angle>=0)compare = 2.14*40000/20-(2.14-0.57)*40000*angle/20/225;elsecompare = 2.14*40000/20+(2.5-2.14)*40000*(-angle)/20/45;TIM_SetCompare4(TIM4,compare);
}
void Servo_Reset(void)
{setHorizontalAngle(0);setVerticalAngle(42);
}void Servo_cruise(){uint16_t delta = 2574;uint8_t dir = 0;setHorizontalAngle(-30);USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);while(1){TIM_SetCompare3(TIM4, delta);if(dir==0){if(x_pos<-2&&x_pos>-5) break;delta += 4;}else if(dir == 1){if(x_pos>2&&x_pos<5) break;delta -= 4;}if(dir==0&&delta>=3445){dir = 1;delay_ms(50);}else if(dir==1&&delta<=2574){dir = 0;delay_ms(50);}delay_ms(5);}USART_ITConfig(USART1, USART_IT_RXNE, DISABLE);
}

2.3 PID控制代码

PID pid_A;
PID pid_B;Float speed1;
Float speed2;
float kp = 0.17/2;// 0.05
float ki = 0.15/2;//0.05
float kd = 0.2/2;
/*float kp = 0.35;
float kd = 0.5;*/
//float kp = 0.000175f;
//float kd = 0.00025f;void PID_init(void){pid_A.exception = 0;pid_A.cur_error = 0;pid_A.last_error = 0;pid_A.last_last_error = 0;pid_A.Kp = kp;pid_A.Ki = ki;pid_A.Kd = kd;pid_A.deltaU = 0;pid_A.U = 0;
}void PID_setException_A(float exception){pid_A.exception = exception;
}
void PID_setException_B(float exception){
}
void PID_cal_A(void){pid_A.cur_error = x_pos - pid_A.exception;pid_A.deltaU = pid_A.Kp*(pid_A.cur_error-pid_A.last_error) + pid_A.Ki*pid_A.cur_error + pid_A.Kd*(pid_A.cur_error-2*pid_A.last_error+pid_A.last_last_error);pid_A.U += pid_A.deltaU;pid_A.last_last_error = pid_A.last_error;pid_A.last_error = pid_A.cur_error;PWM_limitAmp_A();
}
void PID_cal_B(void){
}
void PWM_limitAmp_A(void){if(pid_A.U >= 1000)pid_A.U = 1000;if(pid_A.U <= -1000)pid_A.U = -1000;
}
void PWM_limitAmp_B(void){
}
void PID_setMotor_A(void){TIM_SetCompare3(TIM4, 3000+pid_A.U);
}
void PID_setMotor_B(void){
}

实物图

电磁炮设计笔记(2019全国大学生电子设计竞赛H题)相关推荐

  1. 2019全国大学生电子设计大赛H题 模拟电磁炮系统全国一等奖

    2019全国大学生电子设计大赛H题 模拟电磁炮系统全国一等奖 作者 xxx 队友 阿华 狗子 (想要比赛指导的可以xian鱼搜索 电子设计竞赛国一竞赛指导(发布人为晨星)) (想要源码和我比赛时候准备 ...

  2. 线路负载及故障检测装置(2019全国大学生电子设计大赛C题:国家级一等奖)

      这个东西是今年(2019年)全国大学生电子设计大赛C题,经过4天3夜得辛苦奋斗,完成得题目要求得指标,最后也取得了一个不错得成绩.   题目要求如下:   题目三个大的要求:测电容.电感.电阻值, ...

  3. 2019全国大学生电子设计大赛(回忆录)

    全国大学生电子设计大赛可以说是电子信息类专业在大学时最重要.同时也是最有含金量的几个赛事之一,也是我一进大学就听学长们无数此提起的一场四天三夜的盛会.我也是从大一开始便期待着,准备着.大二暑假有幸参加 ...

  4. 2021/1/12 2019全国大学生电子设计大赛 - F题纸张计数 (纯模电设计方案 全国一等奖)

    写在开头 研究生考试结束了,也算是闲下来了,打算把以前没有写.没有整理的一些东西重新整理一下,恰好翻到了这个资料,重温一下旧梦. F题纸张计数 (测电容) 1.1 题目 具体的题目文件我会发在附录里面 ...

  5. 2021年全国大学生电子设计大赛(一)赛题解析与预测

    2021年全国大学生电子设计大赛赛题解析与预测 参考链接 往年赛题解析: 2015年无人机赛题: (2015)基本目标: (2015)发挥目标: (2015)赛题分解: 2017年赛题分析: (201 ...

  6. 全国大学生电子设计竞赛(二)--电源常用技术与算法

    电源常用技术与算法 1 有效值检波技术 1.1 均值检波技术 1.2 峰值检波技术 1.3 均方根值检波技术 2 高精度采样技术 2.1 AD的选择 2.1.1 A/D转换器的性能指标 2.1.2 A ...

  7. 全国大学生电子设计竞赛(一)--电源简介

    第一章 电源简介 1.1 电源分类 1.1.1 电源与电源转换器   我们常提到的"电源"概念,指的是把其他形式的能量,如机械能.化学能.风能.热能.太阳能等直接转换成电能的装置, ...

  8. 全国大学生电子设计竞赛(四)--双极性跟踪可调精密直流电源的设计

    双极性跟踪可调精密直流电源的设计 一.方案论证 1.1 误差反馈回路方案选择 1.2 DA反馈电路方案选择 1.3 总体方案论证 二.电路与程序设计 2.1整流电路 2.2 场效应管电路 2.3 反馈 ...

  9. 2017年全国大学生电子设计大赛A题(微电网模拟系统)

    小编参加过三届全国大学生电子设计竞赛,做的均为电源题目,故留下此电源题提详细的方案和设计思路步骤,供后来者学习取经,如有不足之处欢迎留言提问.点击此处访问小编的个人小站:www.zhiguoxin.c ...

最新文章

  1. 一:HDFS 用户指导
  2. 18.绝对路径和相对路径
  3. 影响网站各个页面权重高低的因素有哪些?
  4. [No0000D2]ClearCSharp编程清理脚本批处理bat
  5. 无插件,无com组件,利用EXCEL、WORD模板做数据导出(一)
  6. WCF性能优势体现 【转】
  7. flutter 禁止冒泡_【Flutter】Switch开关组件
  8. java随机输出_用java随机输出汉字
  9. 机器学习常用公式(二)
  10. FFmpeg入门知识(二):Windows环境下编译FFMPEG源码
  11. 【图像融合】基于matlab curvelet变换图像融合(评价指标)【含Matlab源码 781期】
  12. 《HelloGitHub》第 13 期
  13. phpcms开发微信小程序api
  14. C++——次幂运算表示
  15. 西班牙知名导演:电影产业应与NFT及社区做结合
  16. read: unexpected EOF!
  17. 手机连接Charles代理,手机上不了网
  18. Element Plus 跟踪表格数据总数,包括查询、筛选等操作
  19. 爬虫实战【12】使用cookie登陆豆瓣电影以及获取单个电影的所有短评
  20. 统计学——小样本容量置信区间

热门文章

  1. 五四青年节54行代码向祖国告白
  2. 破、立、行,网贷雷潮背后的消亡与新生 | 一点财经
  3. win10 + hadoop2.7.3 + idea 运行第一个MapReduce项目:WordCount
  4. ubuntu14.04 安装NVIDIA 显卡驱动QuardroP4000
  5. 室内定位新技术:UWB室内定位-室内人员定位-新导智能
  6. JavaScript严格模式约束规则
  7. 【统计学】基本Stata使用手册(4):工具变量法
  8. 天梯赛7-3 A-B
  9. udig设置样式在Geoserver使用出现汉字乱码问题
  10. 用C/C++进行随机分组