Skip to Content
DocsCoursesEE275C1. Python Basics

C1. Python Basics

C1.1. Prerequisite

  1. Download and install Anaconda 3  before class.

    • Anaconda 3 is a Python distribution which will be the compiler for our Python codes;
    • We are going to use it to create virtual environment to ensure everybody in this class is on the same page;
    • The version does not matter if we use virtual environment. I installed Anaconda3-2022.10-Windows-x86_64.exe for my Windows machine.
    • For Windows PCs, you can set up a virtual environment following these steps:
      • Open anaconda prompt, or alternatively, you can add anaconda to system path (the Windows environment variable).
        D:\Programs\anaconda3 D:\Programs\anaconda3\Scripts D:\Programs\anaconda3\Library\bin
        After doing this, you can call python.exe and pip.exe in your command prompt (cmd.exe)
      • Create a virtual environment python 3.10 under the name “main”:
        • conda create -n main python=3.10
        • Type y to confirm downloading the packages and wait.
      • Activate it
        • conda activate main
      • Now, if you run command pip install, the packages will be installed for this virtual environment
        • pip install matplotlib pandas numba control dearpygui
      • Open file explorer.exe at current directory
        • explorer.exe .
      • Create a file named my_dearpygui_demo.py and paste the following codes and save
        import dearpygui.dearpygui as dpg import dearpygui.demo as demo dpg.create_context() dpg.create_viewport(title='Custom Title', width=600, height=600) demo.show_demo() dpg.setup_dearpygui() dpg.show_viewport() dpg.start_dearpygui() dpg.destroy_context()
      • Run python codes
        • python my_dearpygui_demo.py
        • Have fun!
      • You can check existing virtual environment by typing: conda env list
    • Jupyter notebook/lab
      • Open cmd.exe and type jupyter lab. It will fire up jupyter lab in your default browser.
      • I often use jupyter lab to do derivation verification and here is an example (you need to pip install sympy):
        from sympy import * from IPython.display import display, Latex # display result without need of print (matlab like) from IPython.core.interactiveshell import InteractiveShell; InteractiveShell.ast_node_interactivity = "all" # use mathjax init_printing(use_latex='mathjax') # Define symbols t, p, a, b, c, d, e = symbols('t, p, a, b, c, d, e') L_σ = Symbol(r'L_\sigma') M_σ = Symbol(r'M_\sigma') i_alpha = Function(r'i_{\alpha}')(t) i_beta = Function(r'i_{\beta}')(t) i_abs = Matrix(2, 1, [i_alpha, i_beta]) Theta = Function(r'\varTheta')(t) Omega = Theta.diff(t) # Display stuff display(i_abs) display(Theta, Omega) a=100 a 100+a # Rotation Matrix P = Matrix(2,2, [ cos(Theta), sin(Theta), \ -sin(Theta), cos(Theta)] ) P_inv = P.T # Full Park transformation (power invariant) T = sqrt(2/3)*Matrix(3,3, [ cos(Theta), cos(Theta-2*pi/3), cos(Theta-4*pi/3), -sin(Theta), -sin(Theta-2*pi/3), -sin(Theta-4*pi/3), 1/sqrt(2), 1/sqrt(2), 1/sqrt(2)] ) T_inv = T.T # Verify inverse equals transpose display(simplify(T*T_inv)) display(simplify(T_inv*T)) # Matrix Labcσs = Matrix(3,3, [L_σ, M_σ, M_σ, \ M_σ, L_σ, M_σ, \ M_σ, M_σ, L_σ] ) display(Labcσs) Ldqnσs = T * Labcσs * T_inv display(simplify(Ldqnσs)) # LaTeX latex(simplify(Ldqnσs))
      • ctrl+enter to execute and stay at current block.
      • shift+enter to execute and move to next block.
  2. Download and install Visual Studio Code  before class. VS code is a popular editor for programmers.

    • You need to install extension for Python
    • We can then take advantage of its super-cool jupyter notebook compatibility.
      • Option 1: to activate a regular jupyter notebook, press ctrl+shift+p, type create: new jupyter notebook.
      • Option 2: use the magic command #%% in your regular .py file.
        • ctrl+enter to execute and stay at current block.
        • shift+enter to execute and move to next block.
    • Alternative editor I very like is sublime text 4 

C1.2. Outline

  1. Numerical simulation essentials
    • Euler method (ode1)
    • Runge Kutta method (ode4)
    • Learn concept of a variable step size solver
    • Solve for some example systems
  2. Numba accelerated simulation
  3. Separation between simulation framework and motor dynamics

C1.3. My Python Tutorials

Donwload jupyter notebook .ipynb file here. .

C1.?. Learn Python in one video by Derek Banas (N4mEzFDjqtA)

(need access to Youtube)

C1.?. Quiz

What is the difference between lists and tuples?

Lists
  • Lists are mutable - they can be changed
  • Slower than tuples
  • Syntax: a_list = [1, 2.0, 'Hello world']

Tuples

  • Tuples are immutable - they can’t be changed
  • Tuples are faster than lists
  • Syntax: a_tuple = (1, 2.0, 'Hello world')

Is Python case-sensitive?

Yes
Last updated on