Repositori internship Mesin 19 di ICoDes (Remote).
Advisor: Prof. Yul Yunazwin Nazaruddin
Mentor: Fadillah Adamsyah Ma'ani
Member: | No. | NIM | Nama |
---|---|---|---|
1. | 13119001 | Muhammad Harza | |
2. | 13119005 | Fachriza Afif Ma'ani | |
3. | 13119032 | Muhammad Axel Dhiya | |
4. | 13119043 | Muhammad Akif Miftahun Najakhi | |
5. | 13119049 | Georgius Harry Setiawan Soetandyo |
Sources:
Why: Instalasi package Python pada conda relatif lebih mudah dibandingkan dengan pip.
# Membuat environment pada conda. Disarankan menggunakan environment.
# Apabila ada error, tinggal delete environment nya, ga perlu reinstall conda.
# (-n myenv) --> Nama environment
# (python=3.9) --> Versi Python (3.9.x)
conda create -n myenv python=3.9
# Activate an environment
# (myenv) --> Nama environment
conda activate myenv
# Install package
conda install numpy # Install package numpy
conda install -c intel numpy # Install package numpy pada channel intel
# Pakai yang ini kalau CPU kalian Intel.
conda install jupyter # Untuk keperluan jupyter notebook & jupyter lab
conda install -c conda-forge pandas matplotlib # Bisa juga tanpa -c conda-forge
# Btw, di conda juga ada pip, jadi kalian juga bisa pakai
# pip install <package>
# Diutamakan pakai [conda install]. Conda otomatis install dependencies dari suatu package.
# Untuk belajar dan riset, kita bakal sering pakai jupyter notebook atau jupyter lab
jupyter notebook # Buka jupyter notebook
Visual Studio Code adalah suatu code edittor yang di dalamnya terdapat tools yang mempermudah pengguna saat menulis kode, seperti autocompletion, auto indentation, code formatting, dan terminal. Visual studio code ini enak banget buat ngetik dan ngedit kode. Setelah selesai uji coba di Jupyter Notebook, biasanya kode akan dibuat kaya semacam library supaya bisa digunakan di pekerjaan selanjutnya. Oleh karena itu, kita bakal bikin kode tersebut di script (.py).
Sources:
Buat simulasi state-space atau transfer-function dengan menggunakan, Python, dan numpy, lalu plot hasilnya menggunakan library matplotlib. Soalnya adalah sebagai berikut (reference):
Notes:
Yang bebas tolong diseragamin ya. Kode perlu disesuaikan dengan format:
def dynamics(t, x, u):
'''
DESC:
Function untuk ngituing dynamics (x_dot)
INPUT:
t : numpy array (1,) atau float, waktu
x : numpy array (3,), state
u : numpy array (1,) atau float, input
OUTPUT:
x_dot : numpy array (3,), x_dot pada waktu t
'''
x_dot = ...
return x_dot
class Euler():
def __init__(self, dynamics):
'''
DESC:
Class untuk simulasi dengan metode Euler
INPUT:
dynamics : Python function untuk ngitung x_dot
'''
self.dynamics = dynamics
def simulate(self, t, x0, u):
'''
DESC:
Method untuk simulasi
INPUT:
t : numpy array (N,), waktu simulasi
x0 : numpy array (3,), initial state
u: numpy array (N,), input
OUTPUT:
t : numpy array (N,), waktu simulasi
x : numpy array (N, 3), state
y : numpy array (N,), output
'''
return t, x, y
# Cara pakenya
sim = Euler(dynamics)
t, x, y = sim.simulate(t, x0, u)