公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Translation_Bot
Community Manager
Community Manager
Community Manager

大家好,
希望大家都过得好。

我需要你的建议和帮助来完成我的以下任务:
" 注意:一个很长的问题 "

我有 psoc5 lp、一个 mosfet (bsl802sn) 和漏极电阻 2.2 欧姆,源分流电阻为 100m 欧姆。

我的第一项任务是在分流电阻器上保持所需的直流电压。

为此,我正在做的是从分流电阻器两端获取参考电压,将其连接到 psoc 5 中的 DELSIG ADC(差分模式),将其转换为样本,设置所需的电压(介于 20 到 50mv dc 之间),实现 pid 控制器,计算控制输出并发送到 VDAC,vdac 连接到 mosfet 的栅极并即使我更改 vdd,它也会控制栅极并在分流电阻处保持所需的直流电压的 mosfet 的电压范围为 2 到 4 伏,但存在一些错误,但运行良好。
我不确定这种方法是好还是有其他方法可以完成我的第一项任务。

我的第二项任务是:
这是第一项任务的延续,在这项任务中,我必须将分流处的输出直流电压塑成矩形波为此,我想在 PID 中设置两个所需电压,一个为零,一个为零,再次介于(20mv 到 50mv)之间,然后在两个频率介于 1 Hz 到 2kHz 之间的所需电压之间振荡,因此将得到一个高电平电压等于我们所需电压的矩形波。 而且,如果我的 vdd 因任何原因在 2 到 4 伏特之间发生变化,我想要的电压也就不应该改变。
对于这个任务,我很困惑这是我的任务 2 的适用解决方案还是有其他方法?

第三项任务是像方波一样生成正弦波。 并通过以正弦波方式更改 pid 中的所需电压来将峰值电压设置为峰值电压。

我不确定我所认为的方法是实际和适用的方法,还是有其他方法可以完成这些任务。 如果有人不明白我的观点,请告诉我,我会分享更多细节,

谢谢你抽出宝贵时间阅读我的长篇查询。
谢谢。

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-5-3-1/confusion-in-controlling-voltage-with-PID/td-p/651470

0 点赞
1 解答
Translation_Bot
Community Manager
Community Manager
Community Manager

对于第 3 部分,你可以使用这个项目作为参考

使用 WaveGen 和 PWM (SPWM) 生成正弦波

但是,你对规格的描述相当模糊。 我相信你想要控制电流而不是电压,你需要决定是要控制每脉冲电流还是平均脉冲电流。

 

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-5-3-1/confusion-in-controlling-voltage-with-PID/m-p/652435

在原帖中查看解决方案

0 点赞
5 回复数
Translation_Bot
Community Manager
Community Manager
Community Manager

对于第 3 部分,你可以使用这个项目作为参考

使用 WaveGen 和 PWM (SPWM) 生成正弦波

但是,你对规格的描述相当模糊。 我相信你想要控制电流而不是电压,你需要决定是要控制每脉冲电流还是平均脉冲电流。

 

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-5-3-1/confusion-in-controlling-voltage-with-PID/m-p/652435

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

你好
希望你过得愉快。
我决定在我的项目中使用SPWM,并在门口使用SPWM信号以正弦波模式切换mosfet。

你分享的以下 使用Wav eGen和PWM(SPWM)生成正弦波
的项目对我来说有点难以理解,你能指导我如何更改其中的pwm开关频率吗?而且 Fout 是调制信号(即正弦波)的频率,对吧? 以及我怎样才能改变正弦波的振幅?而且我看到的是 pin_150 的 SPWM,你能指导我在哪个引脚上看到波浪生成产生的正弦波。 这样我就能看到正弦波及其等效生成的SPWM信号的画面。
谢谢

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-5-3-1/confusion-in-controlling-voltage-with-PID/m-p/678482

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

该项目的目标是产生 PWM 生成的正弦波 (SPWM) 信号。 这是项目示意图:

WaveGen_PWM_02a_basic_A.png

输出正弦频率由 WaveGen 缓冲区长度 (32)、PWM 周期 (256) 和 DDS 频率 (12.5 Hz) 定义:Fout = Fdds x (256/32) = 12.5Hz x 8 = 100 Hz

通过更改 DDS 频率,可以更改正弦频率:

double Fout = 100.0; // required sine output frequency (Hz)
double Fdds = Fout * ((double) WaveGen_1_NumSamples / 256.0 ); // (PWM_1_ReadPeriod = 255 for 8-bit)   
DDS_1_Start();
DDS_1_SetFrequency(Fdds);

 

PWM 开关频率和输出正弦频率由每个周期的多个正弦点(这里是 32)相连,不能更改。 这里的 PWM 时钟是:

clk_pwm = Fds * 256 * 256 = (Fout * 32/256) * 256 * 256 = Fout * 32 * 256 = Fout * 32 * 256

正弦波的振幅是通过使用 API 生成 WaveGen RAM 缓冲区波形来设置的:

// Fill Buffer with 1 period of Sine wave
WaveGen_1_CreateSineWave_C(128, 0);  // sine centered at 128u

 

其中 128-是正弦振幅,它可以在 [0 到 128] 范围内变化。

 

WaveGen 将正弦值保存在内存中,只有在 PWM 的要求下才将其发送到 PWM 比较寄存器。 你看不见,因为它是虚拟的。

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-5-3-1/confusion-in-controlling-voltage-with-PID/m-p/678808

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

谢谢 的回复。

是的,我想控制电流。我以为我可以通过控制分流电压来控制电流,因为分流电阻器在我的应用中是固定的
,我想控制电压很容易。

让我用另一种方式告诉你我想如何实现
第 3 部分我想通过分流电阻器控制电流,比如说 0 到 200mA 的峰值到峰值(我应该从 0 到 500mA 之间改变这个峰值到峰值的值),但这个电流必须是正弦波形的。 不是以直流为单位,如果 mosfet 的 vdd 发生变化(2 到 4 伏),则电流峰值变为峰值及其波形应保持不变。
所以我的想法是,为了通过分流器获得正弦波模式电流,我必须以正弦波模式
提供栅极电压,如果我的 vdd 从 2 伏特变为 4 伏,为了使其峰值和形状保持不变,我必须设计一个闭环反馈控制器,通过分流器检查和维持电流的 ptp 值和波形。
因此,简而言之,以正弦波模式通过分流电阻器保持稳定的电流,峰值和频率可以变化。

我就是这么想的,但我不确定这是正确的方法还是还有其他方法。

谢谢



smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-5-3-1/confusion-in-controlling-voltage-with-PID/m-p/653210

0 点赞
Translation_Bot
Community Manager
Community Manager
Community Manager

谢谢

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/PSoC-5-3-1/confusion-in-controlling-voltage-with-PID/m-p/694344

0 点赞