世纪电源网社区logo
社区
Datasheet
标题
返回顶部
原创

(PSIM仿真)简单图解,如何将硬件PID调试转换为C语言程序代码

  [复制链接]
查看: 8611 |回复: 82
1
闪烁
  • 积分:14805
  • |
  • 主题:37
  • |
  • 帖子:957
积分:14805
版主
  • 2018-5-4 14:09:58
1、简单BUCK电路,电压环控制,输入50V,输出10V;
2、先搭接好电路,控制环路;
3、调用PID模块调试合适的PID参数(只用了P和I);
4、将调试好的参数转换成C语言;
//********************PID参数*********************//        
double PWM_PID=0;
const double PID_K1=0.0525;         //k1=kp*(1+Ts/ki)
const double PID_K2=0.05;             //k2=kp    (Kp=0.05  Ki=1/1000  Ts=1/20000)  Ts控制采样频率
double PID_Error_0=0;
double PID_Error_1 =0;
//*************************************************//

/***************输入量获取**************/
Vref=in[0];
V1=in[1];
/*************比例积分运算**************/
   PID_Error_1 = PID_Error_0;                           //存储当前偏差
   PID_Error_0 = Vref-V1;                                  //偏差计算(积分)                        

  PWM_PID+=( PID_K1 *  PID_Error_0-  PID_K2 *  PID_Error_1 );

/***************PID输出限幅**************/
if(PWM_PID<0)
   PWM_PID=0;
if(PWM_PID>1)
   PWM_PID=1;

out[0]= PWM_PID;


5、硬件模块和C语言控制效果对比;


BUCK硬件电路图.png
电路图对比.png
环路输出对比图.png

仿真文件.rar

417.46 KB, 下载次数: 358, 下载积分: 财富 -2

售价: 10 财富  [记录]

评分

参与人数 2财富 +1021币 +10收起理由
贤阁主 + 10赞一个!
admin + 10

查看全部评分

鹊踏枝
  • 积分:7
  • |
  • 主题:0
  • |
  • 帖子:1
积分:7
LV1
本网技工
  • 2018-5-4 14:18:42
 
感谢楼主!
hm492464387
  • 积分:606
  • |
  • 主题:2
  • |
  • 帖子:26
积分:606
LV6
高级工程师
  • 2018-5-5 10:36:08
 
感谢楼主的对比实验,C语音模块可大大简化硬件仿真图,使复杂的硬件图简化很多。
michaelwanger
  • 积分:24
  • |
  • 主题:0
  • |
  • 帖子:4
积分:24
LV1
本网技工
  • 2018-6-29 00:04:15
 
请教:用哪个版本才能打开?谢谢!
wsyy1998
  • 积分:187
  • |
  • 主题:1
  • |
  • 帖子:10
积分:187
LV2
本网技师
  • 2018-8-5 11:02:20
 
同问!
闪烁
  • 积分:14805
  • |
  • 主题:37
  • |
  • 帖子:957
积分:14805
版主
  • 2018-8-21 10:48:40
 
我用的是这个版本 PSIM Professional Version 9.0.3.400
汪洋
  • 积分:15
  • |
  • 主题:0
  • |
  • 帖子:1
积分:15
LV1
本网技工
  • 2019-3-13 14:46:04
 
同问
z450165485
  • 积分:302
  • |
  • 主题:0
  • |
  • 帖子:40
积分:302
LV4
初级工程师
  • 2018-11-8 18:19:43
 
好的,谢谢
zxjwwwh
  • 积分:116
  • |
  • 主题:1
  • |
  • 帖子:1
积分:116
LV2
本网技师
  • 2018-11-9 12:44:00
 
学习一下,能免积分码?
闪烁
  • 积分:14805
  • |
  • 主题:37
  • |
  • 帖子:957
积分:14805
版主
  • 2018-11-9 13:18:01
 
???
liujinming513
  • 积分:321
  • |
  • 主题:1
  • |
  • 帖子:38
积分:321
LV4
初级工程师
  • 2019-3-21 20:41:13
 
if(Time_20KHz==50)   这个是什么意思,我把他改了为何结果不对了
cf200300
  • 积分:641
  • |
  • 主题:5
  • |
  • 帖子:101
积分:641
LV6
高级工程师
  • 2019-10-21 23:58:00
 
你把他改成什么了,如果改为60,也是对的,只是延迟多一些
cf200300
  • 积分:641
  • |
  • 主题:5
  • |
  • 帖子:101
积分:641
LV6
高级工程师
  • 2019-11-16 13:42:07
 
采样50次
cf200300
  • 积分:641
  • |
  • 主题:5
  • |
  • 帖子:101
积分:641
LV6
高级工程师
  • 2019-11-21 23:31:10
 
或者说,每50步采样一次,采样20k
liukuailai
  • 积分:319
  • |
  • 主题:0
  • |
  • 帖子:41
积分:319
LV4
初级工程师
  • 2019-12-10 19:57:42
  • 倒数8
 
仿真步长设置的是1u,意思也就是每50us实际执行一次PI计算
cf200300
  • 积分:641
  • |
  • 主题:5
  • |
  • 帖子:101
积分:641
LV6
高级工程师
  • 2019-12-13 23:47:33
  • 倒数7
 
每50步采样一次
cf200300
  • 积分:641
  • |
  • 主题:5
  • |
  • 帖子:101
积分:641
LV6
高级工程师
  • 2019-11-16 13:42:45
 
多回复就有积分
嘎巴大队长
  • 积分:307
  • |
  • 主题:1
  • |
  • 帖子:9
积分:307
LV4
初级工程师
  • 2018-11-27 14:34:31
 
谢谢楼主
可乐尼洛
  • 积分:151
  • |
  • 主题:3
  • |
  • 帖子:9
积分:151
LV2
本网技师
  • 2018-11-28 17:58:52
 
请问采样频率怎么体现啊,怎么知道是20000啊
cf200300
  • 积分:641
  • |
  • 主题:5
  • |
  • 帖子:101
积分:641
LV6
高级工程师
  • 2019-10-21 23:35:57
 
这是你自己根据项目的精度(现在开关频率基本在几十K左右)决定的
kk12568tw
  • 积分:153
  • |
  • 主题:0
  • |
  • 帖子:3
积分:153
LV2
本网技师
  • 2018-12-6 16:00:02
 
就是需要此如此的教學~
闪烁
  • 积分:14805
  • |
  • 主题:37
  • |
  • 帖子:957
积分:14805
版主
  • 2018-12-6 16:14:03
 
下面是参赛的贴,请多多指教
http://bbs.21dianyuan.com/forum. ... &fromuid=123174
MoonBlade
  • 积分:246
  • |
  • 主题:0
  • |
  • 帖子:6
积分:246
LV3
助理工程师
  • 2019-1-14 14:17:28
 
能否电邮一份spim文件,realmadridwinner@126.com,万分感谢
闪烁
  • 积分:14805
  • |
  • 主题:37
  • |
  • 帖子:957
积分:14805
版主
  • 2019-1-14 14:20:04
 
MoonBlade
  • 积分:246
  • |
  • 主题:0
  • |
  • 帖子:6
积分:246
LV3
助理工程师
  • 2019-1-16 09:04:21
 
谢谢啦
liujinming513
  • 积分:321
  • |
  • 主题:1
  • |
  • 帖子:38
积分:321
LV4
初级工程师
  • 2019-3-20 23:13:21
 
liujinming513
  • 积分:321
  • |
  • 主题:1
  • |
  • 帖子:38
积分:321
LV4
初级工程师
  • 2019-3-20 23:12:54
 
感谢楼主
slim443
  • 积分:580
  • |
  • 主题:2
  • |
  • 帖子:129
积分:580
LV6
高级工程师
  • 2019-3-1 16:56:30
 
版主要是多点转化的步骤就太完美了,比直接上结果图要好
xiefei19890524
  • 积分:296
  • |
  • 主题:0
  • |
  • 帖子:22
积分:296
LV3
助理工程师
  • 2019-3-24 20:01:30
 
XUEXI
yzwzbin_cool
  • 积分:360
  • |
  • 主题:4
  • |
  • 帖子:89
积分:360
LV4
初级工程师
  • 2019-3-28 17:36:43
 
下来学习下
zxs2000
  • 积分:690
  • |
  • 主题:3
  • |
  • 帖子:148
积分:690
LV6
高级工程师
  • 2019-3-30 14:11:22
 
学习        谢谢分享               
power_wei
  • 积分:213
  • |
  • 主题:0
  • |
  • 帖子:11
积分:213
LV3
助理工程师
  • 2019-4-23 11:23:51
 
学习论文!!
power_wei
  • 积分:213
  • |
  • 主题:0
  • |
  • 帖子:11
积分:213
LV3
助理工程师
  • 2019-4-23 11:25:14
 
楼主有没有使用DSP做的仿真?想学习
闪烁
  • 积分:14805
  • |
  • 主题:37
  • |
  • 帖子:957
积分:14805
版主
  • 2019-4-23 13:49:28
 
没有,我用的PSIM版本比较低,还不能搭建DSP的仿真。
power_wei
  • 积分:213
  • |
  • 主题:0
  • |
  • 帖子:11
积分:213
LV3
助理工程师
  • 2019-5-4 12:51:56
 
是的,一直找不到高版本的PSIM破解版,前几天搞破解还把现有的PSIM搞坏了
lovenevol
  • 积分:110
  • |
  • 主题:0
  • |
  • 帖子:3
积分:110
LV2
本网技师
  • 2019-5-9 18:00:56
 
谢谢分享。。。。。。
gbpvz
  • gbpvz
  • 离线
  • LV3
  • 助理工程师
  • 积分:211
  • |
  • 主题:0
  • |
  • 帖子:39
积分:211
LV3
助理工程师
  • 2019-5-9 18:09:44
 
谢谢分享
anfe09
  • anfe09
  • 离线
  • LV6
  • 高级工程师
  • 积分:411
  • |
  • 主题:0
  • |
  • 帖子:22
积分:411
LV6
高级工程师
  • 2019-5-15 10:39:20
 
下载学习,感谢分享
贤阁主
  • 积分:1298
  • |
  • 主题:2
  • |
  • 帖子:50
积分:1298
LV6
高级工程师
  • 2019-5-21 18:45:48
 
感谢楼主分享。
allnights
  • 积分:1394
  • |
  • 主题:16
  • |
  • 帖子:210
积分:1394
LV6
高级工程师
  • 2019-5-27 14:08:07
 
这是岁月的痕迹,顶
zst588
  • zst588
  • 离线
  • LV6
  • 高级工程师
  • 积分:411
  • |
  • 主题:2
  • |
  • 帖子:103
积分:411
LV6
高级工程师
  • 2019-5-29 10:15:12
 
很好很强大!谢谢分享!
zst588
  • zst588
  • 离线
  • LV6
  • 高级工程师
  • 积分:411
  • |
  • 主题:2
  • |
  • 帖子:103
积分:411
LV6
高级工程师
  • 2019-5-29 11:11:10
 
很好,很强大!谢谢楼主分享!
熊紅
  • 熊紅
  • 在线
  • LV6
  • 高级工程师
  • 积分:1041
  • |
  • 主题:0
  • |
  • 帖子:75
积分:1041
LV6
高级工程师
  • 2019-6-4 22:49:18
 
謝謝分享,學習了
w297126377
  • 积分:163
  • |
  • 主题:0
  • |
  • 帖子:9
积分:163
LV2
本网技师
  • 2019-7-8 09:48:32
 
不错,学习了,感谢。楼主如果有更多的关于C-block的应用,能否分享出来,万分感谢。
ruanhuaijun
  • 积分:449
  • |
  • 主题:8
  • |
  • 帖子:58
积分:449
LV6
高级工程师
  • 2019-7-17 08:14:12
 
LZ,可否不要把附加都提这么高的售价啊,买穷了
cf200300
  • 积分:641
  • |
  • 主题:5
  • |
  • 帖子:101
积分:641
LV6
高级工程师
  • 2019-11-16 13:40:44
 
多回复就有钱了
ruanhuaijun
  • 积分:449
  • |
  • 主题:8
  • |
  • 帖子:58
积分:449
LV6
高级工程师
  • 2019-7-17 14:35:39
 
好像如何转换的好像没有说
cf200300
  • 积分:641
  • |
  • 主题:5
  • |
  • 帖子:101
积分:641
LV6
高级工程师
  • 2019-10-21 23:54:37
 
说的很清楚了,非常棒
xu12140309
  • 积分:178
  • |
  • 主题:0
  • |
  • 帖子:6
积分:178
LV2
本网技师
  • 2019-7-25 09:32:57
 
不错,学习了
tinachen
  • 积分:187
  • |
  • 主题:0
  • |
  • 帖子:15
积分:187
LV2
本网技师
  • 2019-8-21 13:05:13
 
谢谢分享
kaisachaoren
  • 积分:383
  • |
  • 主题:2
  • |
  • 帖子:37
积分:383
LV4
初级工程师
  • 2019-10-6 18:59:35
 
好好学习学习
kaisachaoren
  • 积分:383
  • |
  • 主题:2
  • |
  • 帖子:37
积分:383
LV4
初级工程师
  • 2019-10-7 21:05:24
 
好好学习一下
llj2719
  • 积分:153
  • |
  • 主题:0
  • |
  • 帖子:8
积分:153
LV2
本网技师
  • 2019-10-11 22:12:22
 
谢谢分享
Fly_Lyle
  • 积分:688
  • |
  • 主题:4
  • |
  • 帖子:30
积分:688
LV6
高级工程师
  • 2019-10-19 16:54:36
 
挺好的!!!
theodore
  • 积分:120
  • |
  • 主题:0
  • |
  • 帖子:24
积分:120
LV2
本网技师
  • 2019-10-20 13:27:30
 
厉害
硬件研发工程师
  • 积分:682
  • |
  • 主题:0
  • |
  • 帖子:120
积分:682
LV6
高级工程师
  • 2019-11-2 16:14:13
 
编写软件,我觉得好难好难。
硬件研发工程师
  • 积分:682
  • |
  • 主题:0
  • |
  • 帖子:120
积分:682
LV6
高级工程师
  • 2019-11-2 16:15:57
 
里面没有仿真文件,只有AD的原理图。
Gakki男票
  • 积分:160
  • |
  • 主题:0
  • |
  • 帖子:4
积分:160
LV2
本网技师
  • 2019-11-18 17:33:29
 
我怎么打开AD原理图是空的?
闪烁
  • 积分:14805
  • |
  • 主题:37
  • |
  • 帖子:957
积分:14805
版主
  • 2019-11-18 17:45:46
 
那不是AD原理图,那是PSIM仿真软件的工程文件,下载个PSIM9.03就可以打开
Gakki男票
  • 积分:160
  • |
  • 主题:0
  • |
  • 帖子:4
积分:160
LV2
本网技师
  • 2019-11-18 18:54:12
 
好的,十分感谢
阴天雨
  • 积分:136
  • |
  • 主题:0
  • |
  • 帖子:4
积分:136
LV2
本网技师
  • 2019-11-3 10:05:05
 
最近正在学习,十分受用
wx1040
  • wx1040
  • 离线
  • LV6
  • 高级工程师
  • 积分:732
  • |
  • 主题:6
  • |
  • 帖子:32
积分:732
LV6
高级工程师
  • 2019-11-16 09:03:13
 
if(Time_20KHz==50)  这个语句是什么意思呢?
cf200300
  • 积分:641
  • |
  • 主题:5
  • |
  • 帖子:101
积分:641
LV6
高级工程师
  • 2019-11-16 13:39:38
 
采样50次
wx1040
  • wx1040
  • 离线
  • LV6
  • 高级工程师
  • 积分:732
  • |
  • 主题:6
  • |
  • 帖子:32
积分:732
LV6
高级工程师
  • 2019-11-16 16:13:41
 
为啥要采50次?是频率嘛?
cf200300
  • 积分:641
  • |
  • 主题:5
  • |
  • 帖子:101
积分:641
LV6
高级工程师
  • 2019-11-16 22:38:43
 
这个与步长有关
wx1040
  • wx1040
  • 离线
  • LV6
  • 高级工程师
  • 积分:732
  • |
  • 主题:6
  • |
  • 帖子:32
积分:732
LV6
高级工程师
  • 2019-11-18 10:13:05
 
还是不太懂,能否说得再详细一点
cf200300
  • 积分:641
  • |
  • 主题:5
  • |
  • 帖子:101
积分:641
LV6
高级工程师
  • 2019-11-18 23:11:10
 
步长是1u,即1M的频率,1M/20K=50,说明采样50次
cf200300
  • 积分:641
  • |
  • 主题:5
  • |
  • 帖子:101
积分:641
LV6
高级工程师
  • 2019-11-19 00:02:13
 
或者说,每50步采样一次,采样20k
wx1040
  • wx1040
  • 离线
  • LV6
  • 高级工程师
  • 积分:732
  • |
  • 主题:6
  • |
  • 帖子:32
积分:732
LV6
高级工程师
  • 2019-11-19 08:33:06
 
谢谢谢谢!
cf200300
  • 积分:641
  • |
  • 主题:5
  • |
  • 帖子:101
积分:641
LV6
高级工程师
  • 2019-11-19 23:45:33
 
客气
Gakki男票
  • 积分:160
  • |
  • 主题:0
  • |
  • 帖子:4
积分:160
LV2
本网技师
  • 2019-11-18 17:32:10
 
这仿真文件里面怎么只有几张截图?里面有一个AD的文件,打开怎么是空的?
Gakki男票
  • 积分:160
  • |
  • 主题:0
  • |
  • 帖子:4
积分:160
LV2
本网技师
  • 2019-11-18 20:07:56
 
您好,我想请教您一下,您在《(PSIM仿真)简单图解,如何将硬件PID调试转换为C语言程序代码 》一文中,里面的C程序
const double PID_K1=0.0525;         //k1=kp*(1+Ts/ki)
const double PID_K2=0.05;             //k2=kp    (Kp=0.05  Ki=1/1000  Ts=1/20000)  Ts控制采样频率
PWM_PID+=( PID_K1 *  PID_Error_0-  PID_K2 *  PID_Error_1 );
这几行程序表达了什么意思呢?我读不懂,请您赐教,不胜感激。
liukuailai
  • 积分:319
  • |
  • 主题:0
  • |
  • 帖子:41
积分:319
LV4
初级工程师
  • 2019-12-10 14:45:49
  • 倒数10
 
这里几行应该只是个例子,实际模型中Kp=0.05 T=0.001 那么Ki=Kp/T=50
liukuailai
  • 积分:319
  • |
  • 主题:0
  • |
  • 帖子:41
积分:319
LV4
初级工程师
  • 2019-12-10 19:35:01
  • 倒数9
 
我的意思没表达清楚,再说一下以免误解,如图中Ki应该写成Ti更加利于学习,根据增量式PI公式就是这样的,通常Ki用来表示积分系数,Ti指的是积分时间常数
无标题.png
bywind
  • bywind
  • 离线
  • LV6
  • 高级工程师
  • 积分:811
  • |
  • 主题:2
  • |
  • 帖子:119
积分:811
LV6
高级工程师
  • 2019-11-18 20:31:18
 
谢谢分享
GMarlon
  • 积分:138
  • |
  • 主题:0
  • |
  • 帖子:6
积分:138
LV2
本网技师
  • 2019-12-3 17:33:29
 
刚学,试试看看
liukuailai
  • 积分:319
  • |
  • 主题:0
  • |
  • 帖子:41
积分:319
LV4
初级工程师
  • 2019-12-10 10:54:42
 
强大的楼主
chair2020
  • 积分:280
  • |
  • 主题:0
  • |
  • 帖子:33
积分:280
LV3
助理工程师
  • 2020-1-7 21:15:58
  • 倒数6
 
多谢分享
爱学习的小董董
  • 积分:129
  • |
  • 主题:1
  • |
  • 帖子:3
积分:129
LV2
本网技师
  • 2020-1-18 15:56:20
  • 倒数5
 
怎么下载
fengxiaoxiao
  • 积分:166
  • |
  • 主题:0
  • |
  • 帖子:10
积分:166
LV2
本网技师
  • 2020-1-21 14:28:18
  • 倒数4
 
非常有用的案例,感谢作者的分享
kidultbin
  • 积分:379
  • |
  • 主题:0
  • |
  • 帖子:40
积分:379
LV4
初级工程师
  • 2020-2-9 23:19:54
  • 倒数3
 
realmetoo
  • 积分:133
  • |
  • 主题:1
  • |
  • 帖子:3
积分:133
LV2
本网技师
  • 2020-2-14 11:07:59
  • 倒数2
 
Vref=in[0];
V1=in[1];
为啥C 模块输入端在赋值右边呢
realmetoo
  • 积分:133
  • |
  • 主题:1
  • |
  • 帖子:3
积分:133
LV2
本网技师
最新回复
  • 2020-2-14 11:09:27
  • 倒数1
 
Vref=in[0];
V1=in[1];
为啥C 模块输入端在赋值右边呢//////////////////////////////看错了
热门技术、经典电源设计资源推荐

世纪电源网总部

地 址:天津市南开区黄河道大通大厦5层

电 话:400-022-5587

传 真:(022)27690960

邮 编:300110

E-mail:21dy#21dianyuan.com(#换成@)

世纪电源网分部

广 东:(0755)28285637 /(13823562357)

北 京:(010)69525295 /(15901552591)

上 海:(021)24200688 /(13585599008)

香 港:HK(852)92121212

China(86)15220029145

网站简介 | 网站帮助 | 意见反馈 | 联系我们 | 广告服务 | 法律声明 | 友情链接 | 清除Cookie | 小黑屋 | 不良信息举报

Copyright 2008-2020 21dianyuan.com All Rights Reserved    备案许可证号为:津ICP备10002348