From 9d9501ad97d8c6f54ee5d2f96d298f15e557f816 Mon Sep 17 00:00:00 2001 From: EmanuelFeru Date: Sun, 6 Mar 2022 11:43:50 +0100 Subject: [PATCH 1/4] Fix: field weakening #164 --- Inc/BLDC_controller.h | 4 +- Inc/rtwtypes.h | 4 +- Src/BLDC_controller.c | 83 +++++++++++++++++++++++++------------- Src/BLDC_controller_data.c | 4 +- 4 files changed, 60 insertions(+), 35 deletions(-) diff --git a/Inc/BLDC_controller.h b/Inc/BLDC_controller.h index 73f7876..9d663c2 100644 --- a/Inc/BLDC_controller.h +++ b/Inc/BLDC_controller.h @@ -3,9 +3,9 @@ * * Code generated for Simulink model 'BLDC_controller'. * - * Model version : 1.1296 + * Model version : 1.1297 * Simulink Coder version : 8.13 (R2017b) 24-Jul-2017 - * C/C++ source code generated on : Tue Oct 20 17:29:57 2020 + * C/C++ source code generated on : Sun Mar 6 11:02:11 2022 * * Target selection: ert.tlc * Embedded hardware selection: ARM Compatible->ARM Cortex diff --git a/Inc/rtwtypes.h b/Inc/rtwtypes.h index e6b2250..3f68038 100644 --- a/Inc/rtwtypes.h +++ b/Inc/rtwtypes.h @@ -3,9 +3,9 @@ * * Code generated for Simulink model 'BLDC_controller'. * - * Model version : 1.1296 + * Model version : 1.1297 * Simulink Coder version : 8.13 (R2017b) 24-Jul-2017 - * C/C++ source code generated on : Tue Oct 20 17:29:57 2020 + * C/C++ source code generated on : Sun Mar 6 11:02:11 2022 * * Target selection: ert.tlc * Embedded hardware selection: ARM Compatible->ARM Cortex diff --git a/Src/BLDC_controller.c b/Src/BLDC_controller.c index 439c623..ae63bd4 100644 --- a/Src/BLDC_controller.c +++ b/Src/BLDC_controller.c @@ -3,9 +3,9 @@ * * Code generated for Simulink model 'BLDC_controller'. * - * Model version : 1.1296 + * Model version : 1.1297 * Simulink Coder version : 8.13 (R2017b) 24-Jul-2017 - * C/C++ source code generated on : Tue Oct 20 17:29:57 2020 + * C/C++ source code generated on : Sun Mar 6 11:02:11 2022 * * Target selection: ert.tlc * Embedded hardware selection: ARM Compatible->ARM Cortex @@ -1019,6 +1019,8 @@ void BLDC_controller_step(RT_MODEL *const rtM) int32_T rtb_Sum1_jt; int16_T rtb_Merge_m; int16_T rtb_Merge1; + uint16_T rtb_Divide14_e; + uint16_T rtb_Divide1_f; int16_T rtb_TmpSignalConversionAtLow_Pa[2]; int32_T rtb_Switch1; int32_T rtb_Sum1; @@ -2116,20 +2118,15 @@ void BLDC_controller_step(RT_MODEL *const rtM) /* End of Switch: '/Switch2' */ - /* Switch: '/Switch2' incorporates: - * Constant: '/z_ctrlTypSel' - * Constant: '/CTRL_COMM2' - * Constant: '/a_phaAdvMax' - * Constant: '/id_fieldWeakMax' - * RelationalOperator: '/Relational Operator1' + /* Product: '/Divide14' incorporates: + * Constant: '/r_fieldWeakHi' + * Constant: '/r_fieldWeakLo' + * Sum: '/Sum1' + * Sum: '/Sum3' */ - if (rtP->z_ctrlTypSel == 2) { - rtb_Saturation1 = rtP->id_fieldWeakMax; - } else { - rtb_Saturation1 = rtP->a_phaAdvMax; - } - - /* End of Switch: '/Switch2' */ + rtb_Divide14_e = (uint16_T)(((int16_T)(DataTypeConversion2 - + rtP->r_fieldWeakLo) << 15) / (int16_T)(rtP->r_fieldWeakHi - + rtP->r_fieldWeakLo)); /* Switch: '/Switch2' incorporates: * Constant: '/n_fieldWeakAuthHi' @@ -2151,25 +2148,53 @@ void BLDC_controller_step(RT_MODEL *const rtM) /* End of Switch: '/Switch2' */ - /* Product: '/Divide3' incorporates: + /* Product: '/Divide1' incorporates: * Constant: '/n_fieldWeakAuthHi' * Constant: '/n_fieldWeakAuthLo' - * Constant: '/r_fieldWeakHi' - * Constant: '/r_fieldWeakLo' - * Product: '/Divide1' - * Product: '/Divide14' - * Product: '/Divide2' - * Sum: '/Sum1' * Sum: '/Sum2' - * Sum: '/Sum3' * Sum: '/Sum4' */ - rtDW->Divide3 = (int16_T)(((uint16_T)(((uint32_T)(uint16_T)(((int16_T) - (DataTypeConversion2 - rtP->r_fieldWeakLo) << 15) / (int16_T) - (rtP->r_fieldWeakHi - rtP->r_fieldWeakLo)) * (uint16_T)(((int16_T) - (rtb_Saturation - rtP->n_fieldWeakAuthLo) << 15) / (int16_T) - (rtP->n_fieldWeakAuthHi - rtP->n_fieldWeakAuthLo))) >> 15) * - rtb_Saturation1) >> 15); + rtb_Divide1_f = (uint16_T)(((int16_T)(rtb_Saturation - + rtP->n_fieldWeakAuthLo) << 15) / (int16_T)(rtP->n_fieldWeakAuthHi - + rtP->n_fieldWeakAuthLo)); + + /* Switch: '/Switch1' incorporates: + * MinMax: '/MinMax1' + * RelationalOperator: '/Relational Operator6' + */ + if (rtb_Divide14_e < rtb_Divide1_f) { + /* MinMax: '/MinMax' */ + if (!(rtb_Divide14_e > rtb_Divide1_f)) { + rtb_Divide14_e = rtb_Divide1_f; + } + + /* End of MinMax: '/MinMax' */ + } else { + if (rtb_Divide1_f < rtb_Divide14_e) { + /* MinMax: '/MinMax1' */ + rtb_Divide14_e = rtb_Divide1_f; + } + } + + /* End of Switch: '/Switch1' */ + + /* Switch: '/Switch2' incorporates: + * Constant: '/z_ctrlTypSel' + * Constant: '/CTRL_COMM2' + * Constant: '/a_phaAdvMax' + * Constant: '/id_fieldWeakMax' + * RelationalOperator: '/Relational Operator1' + */ + if (rtP->z_ctrlTypSel == 2) { + rtb_Saturation1 = rtP->id_fieldWeakMax; + } else { + rtb_Saturation1 = rtP->a_phaAdvMax; + } + + /* End of Switch: '/Switch2' */ + + /* Product: '/Divide3' */ + rtDW->Divide3 = (int16_T)((rtb_Saturation1 * rtb_Divide14_e) >> 15); /* End of Outputs for SubSystem: '/Field_Weakening_Enabled' */ } diff --git a/Src/BLDC_controller_data.c b/Src/BLDC_controller_data.c index 16686aa..626c537 100644 --- a/Src/BLDC_controller_data.c +++ b/Src/BLDC_controller_data.c @@ -3,9 +3,9 @@ * * Code generated for Simulink model 'BLDC_controller'. * - * Model version : 1.1296 + * Model version : 1.1297 * Simulink Coder version : 8.13 (R2017b) 24-Jul-2017 - * C/C++ source code generated on : Tue Oct 20 17:29:57 2020 + * C/C++ source code generated on : Sun Mar 6 11:02:11 2022 * * Target selection: ert.tlc * Embedded hardware selection: ARM Compatible->ARM Cortex From bf60799358f6ab375b6524468c6a64654dd99734 Mon Sep 17 00:00:00 2001 From: Emanuel Feru Date: Sun, 6 Mar 2022 11:45:39 +0100 Subject: [PATCH 2/4] Added webview link --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 79c77e0..4111291 100644 --- a/README.md +++ b/README.md @@ -97,6 +97,12 @@ In all FOC control modes, the controller features maximum motor speed and maximu - The controller parameters are given in [this table](https://github.com/EFeru/bldc-motor-control-FOC/blob/master/02_Figures/paramTable.png) +### FOC Webview + +To explore the controller without a Matlab/Simulink installation click on the link below: + +[https://eferu.github.io/bldc-motor-control-FOC/](https://eferu.github.io/bldc-motor-control-FOC/) + --- ## Example Variants From 44418475695d7e8aeeb9c91fe73a5e71b06f5f3a Mon Sep 17 00:00:00 2001 From: Emanuel Feru Date: Sun, 6 Mar 2022 13:55:21 +0100 Subject: [PATCH 3/4] Added wiki links in the Contents --- README.md | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/README.md b/README.md index 4111291..1dbd45c 100644 --- a/README.md +++ b/README.md @@ -8,14 +8,13 @@ This repository implements Field Oriented Control (FOC) for stock hoverboards. C - smooth torque output and improved motor efficiency. Thus, lower energy consumption - field weakening to increase maximum speed range - Table of Contents ======================= +* **Wiki:** please check the wiki pages for [Getting Started](https://github.com/EFeru/hoverboard-firmware-hack-FOC/wiki#getting-started) and for [Troubleshooting](https://github.com/EFeru/hoverboard-firmware-hack-FOC/wiki#troubleshooting) * [Hardware](#hardware) * [FOC Firmware](#foc-firmware) * [Example Variants](#example-variants) -* [Wiki](#wiki) * [Projects and Links](#projects-and-links) * [Contributions](#contributions) @@ -120,11 +119,6 @@ To explore the controller without a Matlab/Simulink installation click on the li Of course the firmware can be further customized for other needs or projects. ---- -## Wiki -Please check the wiki for [Getting Started](https://github.com/EFeru/hoverboard-firmware-hack-FOC/wiki#getting-started) and for [Troubleshooting](https://github.com/EFeru/hoverboard-firmware-hack-FOC/wiki#troubleshooting) - - --- ## Projects and Links From ff42d9787e34aa2891ced527d1115b073d3a9337 Mon Sep 17 00:00:00 2001 From: Emanuel Feru Date: Sun, 6 Mar 2022 12:25:19 +0100 Subject: [PATCH 4/4] Create build_on_commit.yml Update build_on_commit.yml Update build_on_commit.yml Update build_on_commit.yml Update build_on_commit.yml Removed Travis Upload build artifact Updated build artifact Update build_on_commit.yml Update build_on_commit.yml Create download_build.png --- .github/workflows/build_on_commit.yml | 41 ++++++++++++++ .travis.yml | 55 ------------------- README.md | 2 +- docs/pictures/wiki_unlock/download_build.png | Bin 0 -> 36919 bytes 4 files changed, 42 insertions(+), 56 deletions(-) create mode 100644 .github/workflows/build_on_commit.yml delete mode 100644 .travis.yml create mode 100644 docs/pictures/wiki_unlock/download_build.png diff --git a/.github/workflows/build_on_commit.yml b/.github/workflows/build_on_commit.yml new file mode 100644 index 0000000..8434f9f --- /dev/null +++ b/.github/workflows/build_on_commit.yml @@ -0,0 +1,41 @@ +name: Build + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + # Get required packages + - uses: actions/checkout@v2 + - uses: fiam/arm-none-eabi-gcc@v1 + with: + release: '9-2019-q4' + + # Build with make + - name: make + env: + VARIANT: VARIANT_ADC + run: make + + # Build with Platformio + - name: PlatformIO Install + run: | + python -m pip install --upgrade pip + pip install --upgrade platformio + - name: PlatformIO Run + run: pio run + + - name: 'Upload Build Artifact' + uses: actions/upload-artifact@v3 + with: + path: ${{github.workspace}}/.pio/build/** + name: ${{github.event.repository.name}}_build_${{github.run_number}} + retention-days: 5 + diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index b0ebc5d..0000000 --- a/.travis.yml +++ /dev/null @@ -1,55 +0,0 @@ -notifications: - email: true - -os: linux - -jobs: - fast_finish: true - include: - - - name: make (gcc-arm-none-eabi-7) - script: make - env: VARIANT=VARIANT_ADC - language: c - addons: - apt: - packages: - - libc6-i386 - install: - - pushd . - - cd ~ - - mkdir arm-gcc-toolchain - - wget -O $HOME/arm-gcc-toolchain/gcc.tar.bz2 https://developer.arm.com/-/media/Files/downloads/gnu-rm/7-2018q2/gcc-arm-none-eabi-7-2018-q2-update-linux.tar.bz2?revision=bc2c96c0-14b5-4bb4-9f18-bceb4050fee7?product=GNU%20Arm%20Embedded%20Toolchain,64-bit,,Linux,7-2018-q2-update - - cd arm-gcc-toolchain - - tar -jxf gcc.tar.bz2 --strip=1 - - popd - - export PATH=$HOME/arm-gcc-toolchain/bin:$PATH - before_script: arm-none-eabi-gcc --version - - - name: make (gcc-arm-none-eabi-5) - script: make - env: VARIANT=VARIANT_ADC - language: c - addons: - apt: - packages: - - libc6-i386 - install: - - pushd . - - cd ~ - - mkdir arm-gcc-toolchain - - wget -O $HOME/arm-gcc-toolchain/gcc.tar.bz2 https://developer.arm.com/-/media/Files/downloads/gnu-rm/5_4-2016q3/gcc-arm-none-eabi-5_4-2016q3-20160926-linux.tar.bz2?revision=111dee36-f88b-4672-8ac6-48cf41b4d375?product=GNU%20Arm%20Embedded%20Toolchain,32-bit,,Linux,5-2016-q3-update - - cd arm-gcc-toolchain - - tar -jxf gcc.tar.bz2 --strip=1 - - popd - - export PATH=$HOME/arm-gcc-toolchain/bin:$PATH - before_script: arm-none-eabi-gcc --version - - - name: platformio - script: platformio run - language: python - install: - - pip install -U platformio - - platformio update - cache: - - directories: "~/.platformio" diff --git a/README.md b/README.md index 4111291..2938466 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # hoverboard-firmware-hack-FOC -[![Build Status](https://app.travis-ci.com/EFeru/hoverboard-firmware-hack-FOC.svg?branch=master)](https://app.travis-ci.com/EFeru/hoverboard-firmware-hack-FOC) +[![Build status](https://github.com/EFeru/hoverboard-firmware-hack-FOC/actions/workflows/build_on_commit.yml/badge.svg)](https://github.com/EFeru/hoverboard-firmware-hack-FOC/actions/workflows/build_on_commit.yml) [![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) [![paypal](https://www.paypalobjects.com/en_US/i/btn/btn_donate_SM.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=CU2SWN2XV9SCY¤cy_code=EUR&source=url) diff --git a/docs/pictures/wiki_unlock/download_build.png b/docs/pictures/wiki_unlock/download_build.png new file mode 100644 index 0000000000000000000000000000000000000000..b673643b41bc1254d70d587cb90a34226c8a9196 GIT binary patch literal 36919 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 k-)#E3;^BF#{qKV$Zrt7e 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 z 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