Electronics 板


LINE

※ 引述《chongming ()》之铭言: : 大家好 小弟有一些问题 想跟高手们请教 : 以是我的想法: : 假若数位控制器 (0.001082*z^2 - 15.45*z + 15.45)/ (z^2 - 0.1137*z + 0.003233) : DIF为输入讯号 DIF_CN为输出讯号 DIFP为上一次输入讯号 DIFPP为上上次输入讯号 : DIF_CP为上一次输出讯号 DIF_CPP为上上次输出讯号 则我用shift左移一位为乘於二的 : 想法 右移为除想法 实现数位控制器 但问题是 算出来的结果经比例缩小後提供给PWM : 比较 输出PWM High Low的值 理因会因 data_read_possense改变而改变 但结果并非我的 : 预期 想跟高手请教可能是什麽问题 因为我对这方面没有经验(连下手都不知道怎下手) : 感激各位... : 则我想法如下: : if (reset = '1') then : DIFN <= (others => '0'); : DIFP <= (others => '0'); : DIFPP <= (others => '0'); : DIF_CN <= (others => '0'); : DIF_CP <= (others => '0'); : DIF_CPP <= (others => '0'); : zero_command <= "010100101111000110101001"; --1.62V 平衡点位置 : elsif rising_edge(clkin) then : DIF <= data_read_possense; : DIFN <= ( DIF(23)) & DIF(22 downto 0); : Kin1_R1 <= DIFN(23) & DIFN(13 downto 0) & "000000000"; --512倍 : Kin1_R2 <= DIFN(23) & DIFN(14 downto 0) & "00000000"; --256倍 : Kin1_R3 <= DIFN(23) & DIFN(15 downto 0) & "0000000"; --128倍 : Kin1_R4 <= DIFN(23) & DIFN(16 downto 0) & "000000"; --64倍 : Kin1_R5 <= DIFN(23) & DIFN(17 downto 0) & "00000"; --32倍 : Kin1_R6 <= DIFN(23) & DIFN(18 downto 0) & "0000"; --16倍 : Kin1_R7 <= DIFN(23) & DIFN(19 downto 0) & "000"; --8倍 : Kin1_R8 <= DIFN(23) & DIFN(20 downto 0) & "00"; --4倍 : Kin1_R9 <= DIFN(23) & DIFN(21 downto 0) & "0"; --2倍 : Kin1_R10 <= DIFN(23) & DIFN(22 downto 0); --1倍 : Kin1_R11 <= DIFN(23) & "0" & DIFN(22 downto 1); --0.5倍 : Kin1_R12 <= DIFN(23) & "00" & DIFN(22 downto 2); --0.25倍 : Kin1_R13 <= DIFN(23) & "000" & DIFN(22 downto 3); --0.125倍 : KIn1_R14 <= DIFN(23) & "0000" & DIFN(22 downto 4); --0.0625倍 : Kin1_R15 <= DIFN(23) & "00000" & DIFN(22 downto 5); --0.03125倍 : Kin1_R16 <= DIFN(23) & "000000" & DIFN(22 downto 6); --0.015625倍 : Kin1_R17 <= DIFN(23) & "0000000" & DIFN(22 downto 7); --0.0078125倍 : Kin1_R18 <= DIFN(23) & "00000000" & DIFN(22 downto 8); --0.00390625倍 : Kin1_R19 <= DIFN(23) & "000000000" & DIFN(22 downto 9); --0.0019531250 倍 : Kin1_R20 <= DIFN(23) & "0000000000" & DIFN(22 downto 10); --0.0009765625 倍 : Kin1_R21 <= DIFN(23) & "00000000000" & DIFN(22 downto 11); --0.0004882813倍 : Kin1_R22 <= DIFN(23) & "000000000000" & DIFN(22 downto 12); --0.00024414063倍 : Kin1_R23 <= DIFN(23) & "0000000000000" & DIFN(22 downto 13); --0.0001220703 倍 : Kin1_R24 <= DIFN(23) & "00000000000000" & DIFN(22 downto 14); --0.0000610352 倍 : Kin1_R25 <= DIFN(23) & "000000000000000" & DIFN(22 downto 15); --0.0000305176 倍 : Kin1_R26 <= DIFN(23) & "0000000000000000" & DIFN(22 downto 16); --0.0000152588 倍 : Kin1_R27 <= DIFN(23) & "00000000000000000" & DIFN(22 downto 17); --0.0001220703 倍 : Kin1_R28 <= DIFN(23) & "000000000000000000" & DIFN(22 downto 18); --0.0000610352 倍 : Kin1_R29 <= DIFN(23) & "0000000000000000000" & DIFN(22 downto 19); --0.0000305176 倍 : Kin1_R30 <= DIFN(23) & "00000000000000000000" & DIFN(22 downto 20); --0.0000152588 倍 : Kin1_R31 <= DIFN(23) & "000000000000000000000" & DIFN(22 downto 21); --0.0000152588 倍 : Kin1_R32 <= DIFN(23) & "0000000000000000000000" & DIFN(22); --0.0000152588 倍 : Kin2_R1 <= DIFP(23) & DIFP(13 downto 0) & "000000000"; --512倍 : Kin2_R2 <= DIFP(23) & DIFP(14 downto 0) & "00000000"; --256倍 : Kin2_R3 <= DIFP(23) & DIFP(15 downto 0) & "0000000"; --128倍 : Kin2_R4 <= DIFP(23) & DIFP(16 downto 0) & "000000"; --64倍 : Kin2_R5 <= DIFP(23) & DIFP(17 downto 0) & "00000"; --32倍 : Kin2_R6 <= DIFP(23) & DIFP(18 downto 0) & "0000"; --16倍 : Kin2_R7 <= DIFP(23) & DIFP(19 downto 0) & "000"; --8倍 : Kin2_R8 <= DIFP(23) & DIFP(20 downto 0) & "00"; --4倍 : Kin2_R9 <= DIFP(23) & DIFP(21 downto 0) & "0"; --2倍 : Kin2_R10 <= DIFP(23) & DIFP(22 downto 0); --1倍 : Kin2_R11 <= DIFP(23) & "0" & DIFP(22 downto 1); --0.5倍 : Kin2_R12 <= DIFP(23) & "00" & DIFP(22 downto 2); --0.25倍 : Kin2_R13 <= DIFP(23) & "000" & DIFP(22 downto 3); --0.125倍 : Kin2_R14 <= DIFP(23) & "0000" & DIFP(22 downto 4); --0.0625倍 : Kin2_R15 <= DIFP(23) & "00000" & DIFP(22 downto 5); --0.03125倍 : Kin2_R16 <= DIFP(23) & "000000" & DIFP(22 downto 6); --0.015625倍 : Kin2_R17 <= DIFP(23) & "0000000" & DIFP(22 downto 7); --0.0078125倍 : Kin2_R18 <= DIFP(23) & "00000000" & DIFP(22 downto 8); --0.00390625倍 : Kin2_R19 <= DIFP(23) & "000000000" & DIFP(22 downto 9); --0.0019531250 倍 : Kin2_R20 <= DIFP(23) & "0000000000" & DIFP(22 downto 10); --0.0009765625 倍 : Kin2_R21 <= DIFP(23) & "00000000000" & DIFP(22 downto 11); --0.0004882813倍 : Kin2_R22 <= DIFP(23) & "000000000000" & DIFP(22 downto 12); --0.00024414063倍 : Kin2_R23 <= DIFP(23) & "0000000000000" & DIFP(22 downto 13); --0.0001220703 倍 : Kin2_R24 <= DIFP(23) & "00000000000000" & DIFP(22 downto 14); --0.0000610352 倍 : Kin2_R25 <= DIFP(23) & "000000000000000" & DIFP(22 downto 15); --0.0000305176 倍 : Kin2_R26 <= DIFP(23) & "0000000000000000" & DIFP(22 downto 16); --0.0000152588 倍 : Kin6_R1 <= DIFPP(23) & DIFPP(13 downto 0) & "000000000"; --512倍 : Kin6_R2 <= DIFPP(23) & DIFPP(14 downto 0) & "00000000"; --256倍 : Kin6_R3 <= DIFPP(23) & DIFPP(15 downto 0) & "0000000"; --128倍 : Kin6_R4 <= DIFPP(23) & DIFPP(16 downto 0) & "000000"; --64倍 : Kin6_R5 <= DIFPP(23) & DIFPP(17 downto 0) & "00000"; --32倍 : Kin6_R6 <= DIFPP(23) & DIFPP(18 downto 0) & "0000"; --16倍 : Kin6_R7 <= DIFPP(23) & DIFPP(19 downto 0) & "000"; --8倍 : Kin6_R8 <= DIFPP(23) & DIFPP(20 downto 0) & "00"; --4倍 : Kin6_R9 <= DIFPP(23) & DIFPP(21 downto 0) & "0"; --2倍 : Kin6_R10 <= DIFPP(23) & DIFPP(22 downto 0); --1倍 : Kin6_R11 <= DIFPP(23) & "0" & DIFPP(22 downto 1); --0.5倍 : Kin6_R12 <= DIFPP(23) & "00" & DIFPP(22 downto 2); --0.25倍 : Kin6_R13 <= DIFPP(23) & "000" & DIFPP(22 downto 3); --0.125倍 : Kin6_R14 <= DIFPP(23) & "0000" & DIFPP(22 downto 4); --0.0625倍 : Kin6_R15 <= DIFPP(23) & "00000" & DIFPP(22 downto 5); --0.03125倍 : Kin6_R16 <= DIFPP(23) & "000000" & DIFPP(22 downto 6); --0.015625倍 : Kin6_R17 <= DIFPP(23) & "0000000" & DIFPP(22 downto 7); --0.0078125倍 : Kin6_R18 <= DIFPP(23) & "00000000" & DIFPP(22 downto 8); --0.00390625倍 : Kin6_R19 <= DIFPP(23) & "000000000" & DIFPP(22 downto 9); --0.0019531250 倍 : Kin6_R20 <= DIFPP(23) & "0000000000" & DIFPP(22 downto 10); --0.0009765625 倍 : Kin6_R21 <= DIFPP(23) & "00000000000" & DIFPP(22 downto 11); --0.0004882813倍 : Kin6_R22 <= DIFPP(23) & "000000000000" & DIFPP(22 downto 12); --0.00024414063倍 : Kin6_R23 <= DIFPP(23) & "0000000000000" & DIFPP(22 downto 13); --0.0001220703 倍 : Kin6_R24 <= DIFPP(23) & "00000000000000" & DIFPP(22 downto 14); --0.0000610352 倍 : Kin6_R25 <= DIFPP(23) & "000000000000000" & DIFPP(22 downto 15); --0.0000305176 倍 : Kin6_R26 <= DIFPP(23) & "0000000000000000" & DIFPP(22 downto 16); --0.0000152588 倍 : Kout2_R1 <= DIF_CP(23) & DIF_CP(13 downto 0) & "000000000"; --512倍 : Kout2_R2 <= DIF_CP(23) & DIF_CP(14 downto 0) & "00000000"; --256倍 : Kout2_R3 <= DIF_CP(23) & DIF_CP(15 downto 0) & "0000000"; --128倍 : Kout2_R4 <= DIF_CP(23) & DIF_CP(16 downto 0) & "000000"; --64倍 : Kout2_R5 <= DIF_CP(23) & DIF_CP(17 downto 0) & "00000"; --32倍 : Kout2_R6 <= DIF_CP(23) & DIF_CP(18 downto 0) & "0000"; --16倍 : Kout2_R7 <= DIF_CP(23) & DIF_CP(19 downto 0) & "000"; --8倍 : Kout2_R8 <= DIF_CP(23) & DIF_CP(20 downto 0) & "00"; --4倍 : Kout2_R9 <= DIF_CP(23) & DIF_CP(21 downto 0) & "0"; --2倍 : Kout2_R10 <= DIF_CP(23) & DIF_CP(22 downto 0); --1倍 : Kout2_R11 <= DIF_CP(23) & "0" & DIF_CP(22 downto 1); --0.5倍 : Kout2_R12 <= DIF_CP(23) & "00" & DIF_CP(22 downto 2); --0.25倍 : Kout2_R13 <= DIF_CP(23) & "000" & DIF_CP(22 downto 3); --0.125倍 : Kout2_R14 <= DIF_CP(23) & "0000" & DIF_CP(22 downto 4); --0.0625倍 : Kout2_R15 <= DIF_CP(23) & "00000" & DIF_CP(22 downto 5); --0.03125倍 : Kout2_R16 <= DIF_CP(23) & "000000" & DIF_CP(22 downto 6); --0.015625倍 : Kout2_R17 <= DIF_CP(23) & "0000000" & DIF_CP(22 downto 7); --0.0078125倍 : Kout2_R18 <= DIF_CP(23) & "00000000" & DIF_CP(22 downto 8); --0.00390625倍 : Kout2_R19 <= DIF_CP(23) & "000000000" & DIF_CP(22 downto 9); --0.0019531250 倍 : Kout2_R20 <= DIF_CP(23) & "0000000000" & DIF_CP(22 downto 10); --0.0009765625 倍 : Kout2_R21 <= DIF_CP(23) & "00000000000" & DIF_CP(22 downto 11); --0.0004882813倍 : Kout2_R22 <= DIF_CP(23) & "000000000000" & DIF_CP(22 downto 12); --0.00024414063倍 : Kout2_R23 <= DIF_CP(23) & "0000000000000" & DIF_CP(22 downto 13); --0.0001220703 倍 : Kout2_R24 <= DIF_CP(23) & "00000000000000" & DIF_CP(22 downto 14); --0.0000610352 倍 : Kout2_R25 <= DIF_CP(23) & "000000000000000" & DIF_CP(22 downto 15); --0.0000305176 倍 : Kout2_R26 <= DIF_CP(23) & "0000000000000000" & DIF_CP(22 downto 16); --0.0000152588 倍 : Kout2_R27 <= DIF_CP(23) & "00000000000000000" & DIF_CP(22 downto 17); --0.0019531250 倍 : Kout2_R28 <= DIF_CP(23) & "000000000000000000" & DIF_CP(22 downto 18); --0.0009765625 倍 : Kout2_R29 <= DIF_CP(23) & "0000000000000000000" & DIF_CP(22 downto 19); --0.0004882813倍 : Kout6_R1 <= DIF_CPP(23) & DIF_CPP(13 downto 0) & "000000000"; --512倍 : Kout6_R2 <= DIF_CPP(23) & DIF_CPP(14 downto 0) & "00000000"; --256倍 : Kout6_R3 <= DIF_CPP(23) & DIF_CPP(15 downto 0) & "0000000"; --128倍 : Kout6_R4 <= DIF_CPP(23) & DIF_CPP(16 downto 0) & "000000"; --64倍 : Kout6_R5 <= DIF_CPP(23) & DIF_CPP(17 downto 0) & "00000"; --32倍 : Kout6_R6 <= DIF_CPP(23) & DIF_CPP(18 downto 0) & "0000"; --16倍 : Kout6_R7 <= DIF_CPP(23) & DIF_CPP(19 downto 0) & "000"; --8倍 : Kout6_R8 <= DIF_CPP(23) & DIF_CPP(20 downto 0) & "00"; --4倍 : Kout6_R9 <= DIF_CPP(23) & DIF_CPP(21 downto 0) & "0"; --2倍 : Kout6_R10 <= DIF_CPP(23) & DIF_CPP(22 downto 0); --1倍 : Kout6_R11 <= DIF_CPP(23) & "0" & DIF_CPP(22 downto 1); --0.5倍 : Kout6_R12 <= DIF_CPP(23) & "00" & DIF_CPP(22 downto 2); --0.25倍 : Kout6_R13 <= DIF_CPP(23) & "000" & DIF_CPP(22 downto 3); --0.125倍 : Kout6_R14 <= DIF_CPP(23) & "0000" & DIF_CPP(22 downto 4); --0.0625倍 : Kout6_R15 <= DIF_CPP(23) & "00000" & DIF_CPP(22 downto 5); --0.03125倍 : Kout6_R16 <= DIF_CPP(23) & "000000" & DIF_CPP(22 downto 6); --0.015625倍 : Kout6_R17 <= DIF_CPP(23) & "0000000" & DIF_CPP(22 downto 7); --0.0078125倍 : Kout6_R18 <= DIF_CPP(23) & "00000000" & DIF_CPP(22 downto 8); --0.00390625倍 : Kout6_R19 <= DIF_CPP(23) & "000000000" & DIF_CPP(22 downto 9); --0.0019531250 倍 : Kout6_R20 <= DIF_CPP(23) & "0000000000" & DIF_CPP(22 downto 10); --0.0009765625 倍 : Kout6_R21 <= DIF_CPP(23) & "00000000000" & DIF_CPP(22 downto 11); --0.0004882813倍 : Kout6_R22 <= DIF_CPP(23) & "000000000000" & DIF_CPP(22 downto 12); --0.00024414063倍 : Kout6_R23 <= DIF_CPP(23) & "0000000000000" & DIF_CPP(22 downto 13); --0.0001220703 倍 : Kout6_R24 <= DIF_CPP(23) & "00000000000000" & DIF_CPP(22 downto 14); --0.0000610352 倍 : Kout6_R25 <= DIF_CPP(23) & "000000000000000" & DIF_CPP(22 downto 15); --0.0000305176 倍 : Kout6_R26 <= DIF_CPP(23) & "0000000000000000" & DIF_CPP(22 downto 16); --0.0000152588 倍 : Kout6_R27 <= DIF_CPP(23) & "00000000000000000" & DIF_CPP(22 downto 17); --0.0019531250 倍 : Kout6_R28 <= DIF_CPP(23) & "000000000000000000" & DIF_CPP(22 downto 18); --0.0009765625 倍 : Kout6_R29 <= DIF_CPP(23) & "0000000000000000000" & DIF_CPP(22 downto 19); --0.0004882813倍 : DIF_CN <= (Kin6_R7 + Kin6_R8 + Kin6_R9 + Kin6_R10 + Kin6_R12 + Kin6_R13 + Kin6_R14 + Kin6_R17 + Kin6_R18 + Kin6_R21 + Kin6_R22) : -(Kin2_R7 + Kin2_R8 + Kin2_R9 + Kin2_R10 + Kin2_R12 + Kin2_R13 + Kin2_R14 + Kin2_R17 + Kin2_R18 + Kin2_R21 + Kin2_R22) : +(Kout2_R14 + Kout2_R15 + Kout2_R16 + Kout2_R18 + Kout2_R22 + Kout2_R23 + Kout2_R25 + Kout2_R26 + Kout2_R27) : -(Kin1_R20 + Kin1_R24 + Kin1_R25 + Kin1_R27 + Kin1_R28 + Kin1_R29 + Kin1_R31 + Kin1_R32) : -(Kout6_R19 + Kout6_R20 + Kout6_R22 + Kout6_R25 + Kout6_R26 + Kout2_R27 + Kout2_R28 + Kout2_R29); : DIF_CPP <= DIF_CP; : DIF_CP <= DIF_CN; : DIFPP <= DIFP; : DIFP <= DIFN; --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.156.79







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Boy-Girl 或 站内搜寻

TOP