Electronics 板


LINE

大家好 小弟有一些問題 想跟高手們請教 以是我的想法: 假若數位控制器 (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燈, 水草

請輸入看板名稱,例如:WOW 或 站內搜尋

TOP